Articles

ทำไมต้อง Python

In ไม่มีหมวดหมู่ on กันยายน 5, 2010 by chevap9414 ติดป้ายกำกับ: ,

Python เป็นภาษาหลักในการพัฒนาโปรแกรม เพราะว่าจะได้เหมือนกับที่ชาวบ้านที่ทำงานด้วยกันใช้ ผมก็ไม่ได้มีส่วนร่วมในการตัดสินใจอะไรมากนักแต่ใช้ๆ ไปแล้วก็รู้สึกว่ามันพอได้ หลายอาจคิดว่าภาษาที่ชาวบ้านที่ใช้กันมีเยอะไป เช่น Java, C++ เป็นต้น ทำไมต้องแหลกแนวออกไปทำอะไรวิตถารด้วย ก็เลยอยากจะพูดถึง Python ซักหน่อย

จุดประสงค์ ประเด็นคือเราอยากจะได้ภาษาอะไรที่เขียนง่ายๆ โดยเฉพาะงานด้าน Text processing และบำรุงรักษาง่ายๆ ประมาณว่าเขียนไปแล้วชาวบ้านหรือตัวเองเอาไปแก้ได้

SOP เนื่องจากต้องการความง่ายก็เลยมองหาภาษาพวก SOP (Script-Oriented Programming) ตัวอย่างที่หลายคนน่าจะรู้จักคงจะเป็น PHP, ASP, Perl อะไรแบบนั้นประมาณเขียนสั้นๆ ง่ายๆ ใช้เฉพาะทาง Python ก็เป็นภาษาหนึ่งในตระกูล SOP ที่มีคะแนนความเป็นสคริป ( ที่อาจจะไม่เป็นทางการเท่าไหร่ ) อยู่ในอันดับต้นๆ ทีเดียว ถ้าตามเข้าไปดูในเวปก็จะเห็นว่าเขาให้ความสำคัญ กับขนาดของโปรแกรมที่ต้องพิมพ์เข้าไปมากเหมือนกัน อย่างเขียนโปรแกรม Hello World ถ้าใช้ Python เขียนต้องพิมพ์ 19 ตัวอักษร แต่ถ้าใช้ Java ต้องพิมพ์ 115 ตัวอักษร เท่านี้ก็น่าจะเห็นภาพว่าทำไม Python ได้คะแนนดีกว่า แต่ตัวที่ได้คะแนนดีกว่าในการทำสอบ 3 อันดับแรกคือ sh, Ruby และ Perl ตามลำดับ ( ซึ่งส่วนตัวแล้วชอบ Ruby มากกว่าในแง่ความสวยงาม เอาไว้พูดถึงคราวหน้า ) สิ่งนึงที่ทำให้ Python ได้เปรียบในเรื่องความสั้นเพราะเปิดปิด block ด้วยย่อหน้า (indent) แทนที่จะเป็น { } เหมือน Java หรือ Begin End แบบ Pascal

Text processing ถ้ามองในแง่ Text processing โดยเฉพาะการใช้ Regular expression แล้ว Python ทำได้ค่อนข้างดีในด้านความสะดวกถ้าเทียบกับ Java หรือ C# แต่อย่างไรก็ตาม ถ้าเทียบความสะดวกของการใช้ Regular expression ของ Perl แล้ว Python ก็จัดว่าค่อนข้างห่วย ทั้งในด้านความเร็วและความสะดวก ใช้ Python ประมาณว่าต้องเรียก m = re.match เพื่อที่จะ match แล้วค่อยเอาตัวแปรที่ return ออกมาจาก re.match ซึ่งในที่นี้คือ m มาดูอีกทีว่า match ได้อะไรบ้าง ซึ่งผมคิดว่ามันก็ธรรมดา เพียงแต่ว่า Perl มันสะดวกกว่าเพราะใช้ /patern/ ได้เลย แถมตอนดูว่าได้อะไรบ้างก็ดูจาก $1, $2 …. ได้เลย

การบำรุงรักษา แต่ถ้ามาดูเรื่องการบำรุงรักษาแล้ว Python ที่มีความเป็น OOP แบบมั่วๆ ผสม Functional programming บ้าง ก็ยังดีกว่า Perl ในด้านการบำรุงรักษา Perl ดูเหมือนการใช้งาน OOP ต้องทำแบบอ้อมๆ แถมการเปิดไฟล์อย่างเดียว ก็ทำได้หลายแบบทำให้คนมาอ่านหรือมา hack code งงตาแตกได้ Python ทำอะไรแบบ OOP ได้หลาย อย่างมี Class มีกลไกสำหรับทำ sub class ได้สบายๆ เราประกาศแบบนี้ได้เลย
class Foo:
def method1(self):
do something

แต่ก็จะเห็นว่ามีอะไรแปลกคือตัวแปล self ในที่นี้ self จะอ้างถึง object นั้นๆ ซึ่งถ้าเป็นภาษาอื่นที่ support OOP ก็มันจะคิดว่า การอ้างใช้สิ่งต่างๆ เป็น object member อยู่แล้ว แต่ Python ไม่ต้องออกมันเองเช่นจะใช้ method ชื่อ foo ( จากใน methon ใน class นั้น ) ก็ต้องเรียก self.foo() แทนที่จะเรียก foo() เฉยๆ ได้แบบในภาษา OOP อื่น

ที่มา : http://www.ideezign.com/index.php?topic=172.0

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

%d bloggers like this: