tool ในการพัฒนา Python ครับ

คือพึ่งหัดเขียน python ครับ จะใช้ python พัฒนาตัว Media Player ที่สามารถตรวจสอบลิขสิทธิ์ของไฟล์ครับ

อยากทราบว่าใช้ tool อะไรในการพัฒนาครับ

ขอคำแนะนำด้วยครับ

ขอบคุณครับ

ถ้าสำหรับการ edit/debug แนะนำ eclipse + plugin ชื่อ pydev ครับ อาจจะดูโหดไปนิด แต่ถ้าเครื่องมี ram เหลือเฟือก็ใช้ไปเลยครับ

ลองใช้ตัวนี้ดู SPE (Stani's Python Editor) ผมว่าพอใช้ได้เลยครับ

ผมใช้แต่ vim มาตลอดเลย แต่แค่นี้ก็น่าจะพอแล้วนี่ครับ

ใช้ Vim เวลาทำงานร่วมกันเป็นหมู่คณะ จะมึนๆ ครับ (โตยเฉพาะเรื่อง TAB/Space เพราะแต่ละคนใช้ไม่เหมือนกัน) แล้วยัง integrate กับ SVN/CVS ลำบากนิดหน่อย

ปัญหานี้ผมก็เจอ -_-'

ปัญหานี้น่าสนใจครับ ลองดูพวกโปรเจ็ค open source ระดับโลกทั้งหลาย มีคนเป็นร้อยเลย แต่ทำไมดูเหมือนเขาไม่ค่อยมีปัญหา ยิ่งเป็น python แบบนี้ ไม่ vim ก็ emacs สองตัวแค่นี้แหละครับ eclipse อย่าหวังจะได้แอ้ม (หรือเปล่า?) .. น่าคิดนะครับ :-)

ทำไมถึงคิดว่าคนเป็นร้อยจะต้องใช้ Vim หรือ emacs เท่านั้นล่ะครับ ทั้งๆ ที่ eclipse มี debug, unit testing, เชื่อมต่อกับ SVN, CVS, Bugzilla, Trac, Jira ได้

ผมยังคิดว่าคนมากๆ สิ่งที่จะทำให้ developer แต่ละคนทำงานร่วมกันได้อย่างราบรื่นน่าจะเป็นการทำ version control และ Bug tracker (เช่น bugzilla ข้างต้น) ดังนั้นถ้า IDE/Editor ดัวใดที่ประสานสองสิ่งนี้เข้าด้วยกันได้ ก็น่าจะเป็นที่นิยมมากกว่า

ขอตอบแบบคนไม่ชอบใช้ IDE นะครับ เพราะผมก็ไม่ค่อยชอบใช้ IDE

ผมมองว่า IDE เป็นเครื่องมืออำนวยความสะดวกอย่างหนึ่ง ซึ่งมีเครื่องมืออื่น ๆ หลาย ๆ ชิ้นรวมกันที่ทำงานออกมาได้เหมือนกัน สำหรับคนที่พัฒนาโปรแกรมบน Windows อาจคุ้นเคยกับ IDE มากกว่า ในทางกลับกัน คนที่พัฒนาโปรแกรมบน Linux หรือ UNIX Like ต่าง ๆ อาจคุ้นเคยกับเครื่องมือเล็ก ๆ หลาย ๆ ชิ้นมากกว่า

ข้อดีของ IDE อย่าง eclipse คือ สะดวก เพราะเปิดโปรแกรมเดียวทำงานได้ทุกอย่าง (บางอย่างทำได้มากกว่า บางอย่างทำได้น้อยกว่า แต่ผมคิดว่าความสามารถน่าจะสูสีกับเครื่องมือชิ้นเล็ก ๆ หลาย ๆ ชิ้นรวมกัน) แต่ปัญหาที่นักพัฒนาโปรแกรมหัวโบราณ (อย่างผม) ไม่ค่อยชอบในตัว IDE คือ ความช้าหนืดของมัน ซึ่งเป็นเรื่องธรรมดา ก็ในเมื่อมันมีทุกอย่างในตัวมันเอง และหลาย ๆ อย่างในทุกอย่าง ผมก็ไม่เคยเปิดใช้งาน

จะสังเกตได้ว่า ภาษาเขียนโปรแกรมที่มาจาก Open Source จะไม่ค่อยมี IDE เจ๋ง ๆ ให้ใช้ (Python, Ruby, PHP, Perl, etc.) แต่จะมีเครื่องมือแบบ command line มาให้ใช้บ้างเล็กน้อย เพราะมันเป็นวัฒนธรรมการพัฒนาโปรแกรมอย่างหนึ่ง ซึ่งไม่น่าจะเกี่ยวว่าอันไหนดีกว่าอันไหน เรื่องนี้มันเลยมีผลไปถึงการพัฒนาโปรแกรม Open Source อื่น ๆ ด้วย

ที่ผมไม่ชอบ IDE อีกอย่างคือ Usability ของมัน แต่อันนี้อาจจะเป็นเฉพาะผม เพราะผมไม่ค่อยชอบเปิดเมนูโปรแกรมดูว่ามันทำอะไรได้บ้าง เลยไม่ค่อยรู้ว่าอะไรอยู่ตรงไหน และผมมองว่ายิ่งใช้เมาส์น้อยเท่าไร ยิ่งพัฒนาโปรแกรมเร็วขึ้นเท่านั้น บวกกับความรู้สึกที่ว่า เวลาใช้ IDE แล้วต้องใช้เมาส์เยอะ เลยทำให้ไม่อยากใช้ IDE

แต่สิ่งที่สำคัญที่สุดคือ ทุกคนสารถทำงานร่วมมือกันได้ โดยไม่มีเรื่องเครื่องมือมาเป็นเงื่อนไขครับ ;D

mk's picture

ผมอ่านแล้วไม่ค่อยเก็ตครับว่ามัน integrate กับ version control ยากยังไง คือปกติผมก็เซฟแล้ว commit ก็ไม่น่าจะมีอะไรพิสดาร?

sugree's picture

ท่าไม้ตาย

# vim: ft=python ts=4 sw=4 sta et sts=4 ai:

เจ๋ง

khao_lek's picture

คุณ cwt ครับ เราจะแก้ไข eclipse ไม่ให้แจ้งเตือน pydev ได้ยังงัยครับ

มันเตือนว่าอะไรเหรอครับ ?

khao_lek's picture

มันขึ้นเป็นpopup ว่า "Unlicensed version of Pydev Extensions" นะครับ
แล้วมันจะนับถอยหลัง 10 วินาทีให้เรากด ok จึงค่อยหายไปนะครับ รู้สึกรำคาญนะครับ
ขึ้นบ่อยมาก

ลง pydev เฉยๆ อย่าลง pydev extension ครับ ตัวนั้นไม่ฟรี และเท่าที่ผมลองใช้ มัน 'ไม่ฉลาดพอ' ดังนั้นผมเลยรู้สึกว่าไม่คุ้มกับราคาครับ

ถ้าลงไปแล้วก็ไปที่ Help -> Software Updates -> Manage Configuration

แล้วไป disable มันซะ เหลือไว้แต่ pydev เฉยๆ ครับ

ลอง Komodo Edit หรือยังครับ เป็น Free version ของ Komodo IDE
http://www.activestate.com/Products/komodo_edit/

ผมใช้ gedit ครับก็โอเคดีเหมือนกัน

มือใหม่เหมือนกันครับ ผมใช้หลายๆตัวประกอบกัน คือเวลา Design พวก GUI ก็ทำใน BOA หลังจากนนั้นก็ก๊อป code มาวางใน eclipse เพราะเจ้าตัวนี้มันดีก็คือมันสามารถ list พวก member ต่างๆให้เราดูได้เพราะบางทีมันจำไม่ได้เยอะมาก แต่กลับไม่สามารถสร้าง GUI ได้ แต่ตัว Boa คือสร้าง GUI ได้แต่เวลาเขียน code มันไม่ค่อยช่วยเราเลย บางครั้งก็ใช้ PythonCard ในการสร้าง GUI ก็มี มึนเหมือนกัน แต่ก็เข้าใจว่ามันเป็น Open source น่ะมันถึงได้เป็นลักษณะนี้ ไม่เหมือน Visual Studio เขาพัฒนาทุอย่างรวมใน IDE ไปเลย แต่ผมก็เลือกใช้ Python น่ะ มีเหตุผลคือ ลดเวลาในการ code มากไม่เหมือน Visual C มันคนละรุ่นกัน (เปรียบมวย)แต่ก็อีกแหละมันแล้วแต่ความถนัดของแต่ละคน ปัจจุบันภาษา C ผมมีใว้ใช้ในการทำงานกับ Hardware เช่นพวก Micro Controller ทั้ง AVR และ ARM ส่วน Application บน PC ผมเลือกใช้ Python มันก็ได้ตามเราต้องการน่ะครับ งานที่ใช้ส่วนมากคือการโปรแกรมเพื่อควบคุม Hardware อีกทีครับโดยมี Interface เป็น GUI

ใน Linux สำหรับ Arm ก็มี Python นะครับ เอ แต่ว่ามีใครใข้ Arm + Linux ในงาน embedded หรือเปล่า?

ปัจจุบันผมทำงานทางด้าน RFID อยู่ Reader ที่เราใช้อยู่ และก็ใช้ใน Application ส่วนมากของเรา OS คือ Linux ซีพียูคือ ARM ของ Intel ปัจจุบันเราออกแบบ Software ด้วยภาษา Python เพื่อ Upload ไปใว้ในตัว Reader แล้วสั่งให้มันทำงานแบบ Stand Alone ไม่ต้องใช้คอมพิวเตอร์ทำโปรแกรมสั่งงานอีกที ในนั้นมีตัวแปลภาษา Python อยู่แล้ว และก็มี Lib ของมันอยู่เป็นจำนวนมาก สดวกง่ายในการใช้งานมากครับ ผมว่าไอเดียนี้ดีมากในการ Develop งานพวก Embeded ในบ้านเราครับ

อ่านแล้วเห็นว่าน่าสนใจมากครับ
พอแนะนำ web หรือ เอกสารสำหรับการศึกษาด้วยตัวเอง
ในเรื่องเหล่านี้ได้บ้างมั้ยครับ

khao_lek's picture

น่าสนใจมากเลยครับ ถ้ามี codenone meeting อีกอยากให้มาโชว์หน่อยนะครับ

WingIDE ครับ ใช้ตัวนี้แัล้วเขียน python เพลินขึ้นอีกเยอะเลยครับ

wing ไหนครับ ตัวฟรีหรือเปล่าครับ

พอดีได้ทดลองใช้ PyScript มาเป็นระยะเวลาหนึ่งรู้สึกว่าชอบครับเลยเอามาบอกต่อ หา download เองน่ะครับ แต่ต้อง download rpyc 2.60 แล้วเปลี่ยนชื่อเป็น rpyc แล้วก็อปทั้งอันไปใว้ใน c:\python25\lib\site-packages น่ะครับ หลังจากนั้นก็เปิด Pyscript แล้วไปที่เมนู Run แล้วเลือกที่ Python Engine แล้วให้เลือก Renote เพราะไม่งั้นเวลาเขียน code error โปรแกรมจะปิดหรือไม่ก็ค้าง วิธีนี้คือการ run โดยการ run แบบ remote ครับ ลองใช้ดูครับ

ไม่ฟรีครับ ต้องเสียตังค์ -_-" พอดีผมได้งบประมาณซื้อมาน่ะครับ แต่เค้ามีรุ่น lite เข้าใจว่าใช้ฟรีนะครับ น่าจะโอเคเหมือนกัน ลองไปดูที่ www.wingware.com ครับ

ผมใข้Eric

อ่ะ ผมเพิ่งลองใช้ wing101 ก็เข้าท่าดีเหมือนกันหนะคับ

ผมใช้ PythonWin อยู่ครับ ใช้ง่ายดีเหมือนกันนะครับ

ย้าย Codenone

ประกาศย้าย Codenone ไปใช้ Forum ของ Blognone แทนครับ ตามไปตั้งกระทู้ต่อได้ที่ Codenone Forum (รายละเอียดอ่านจากกระทู้ ย้าย Codenone ไปรวมกับ Blognone)

กระทู้เก่าๆ จะย้ายตามไปในภายหลัง ตอนนี้ปิดการโพสต์กระทู้ไว้ เหลือไว้เฉพาะอ้างอิงเท่านั้น