@FordAntiTrust

ภาษาโปรแกรมมิ่งไพธอน (Python programming language)

ทำรายงานเรื่องไพธอน แล้วก็ส่งไปแล้ว เลยคิดว่าถ้าทำแล้วแค่ส่งให้อาจารย์แล้วก็กองไว้ตรงนั้น มันจะมีประโยชน์อะไร เอามาเผยแพร่น่าจะได้ประโยชน์กว่าเยอะเลย ;)


ข้อมูลเบื้องต้น

ไพธอน (Python) เป็นภาษาโปรแกรมในลักษณะภาษาอินเตอร์พรีเตอร์โปรแกรมมิ่ง (Interpreted programming language) ผู้คิดค้นคือ Guido van Rossum ในปี 1990 ซึ่งไพธอนเป็น การจัดการชนิดของตัวแปรแบบแปรผันตามข้อมูลที่บรรจุอยู่ (Fully dynamically typed) และใช้การจัดการหน่วยความจำเป็นอัตโนมัติ (Automatic memory management) โดยได้เป็นการพัฒนาและผสมผสานของภาษาอื่น ๆ ได้แก่ ABC, Modula-3, Icon, ANSI C, Perl, Lisp, Smalltalk และ Tcl และภาษาไพธอนยังเป็นแนวคิดที่ทำให้เกิดภาษาใหม่ ๆ ซึ่งได้แก่ Ruby และ Boo เป็นต้น

ไพธอนนั้นพัฒนาเป็นโครงการ Open source โดยมีการจัดการแบบไม่หวังผลกำไรโดย Python Software Foundation และสามารถหาข้อมูลและตัวแปรภาษาได้จากเว็บไซต์ของไพธอนเอง ที่ http://www.python.org/ ซึ่งในปัจจุบัน (ณ.วันที่ 29 มิถุนายน 2006) Python ได้พัฒนาถึงรุ่นที่ 2.4.3 (ออกวันที่ 29 มีนาคม 2006) และรุ่นทดสอบการทำงาน หรือ beta นั้นอยู่ที่รุ่น 2.5 ซึ่งออกเมื่อ 20 มิถุนายน 2006


ประวัติ

Python 1.0

ไพธอนสร้างขึ้นครั้งแรกในปี 1990 โดย Guido van Rossum ที่ CWI (National Research Institute for Mathematics and Computer Science) ในประเทศเนเธอร์แลนด์ โดยได้นำความสำเร็จของภาษาโปรแกรมมิ่งที่ชื่อ ABC มาปรับใช้กับ Modula-3, Icon, C, Perl, Lisp, Smalltalk และ Tcl โดย Duido van Rossim ถือว่าเป็นผู้ริเริ่มและคิดค้น แต่เค้าก็ยังคิดว่าผลงานอย่างไพธอนนั้น เป็นผลงานความรู้ที่ทำขึ้นเพื่อความสนุกสนานโดยได้อ้างอิงงานชิ้นนี้ของเขาว่าเป็น Benevolent Dictator for Life (BDFL) ซึ่งผลงานที่ถูกเรียกว่าเกิดจากความสนุกสนานเหล่านี้นั้นมักถูกเรียกว่า BDFL เพราะมักเกิดจากความไม่ตั้งใจ และความอยากที่จะทำอะไรที่เป็นอิสระนั้นเอง ซึ่งคนที่ถูกกล่าวถึงว่าทำในลักษณะแบบนี้ก็ได้แก่ Linus Torvalds ผู้สร้าง Linux kernel, Larry Wall ผู้สร้าง Perl programming language และคนอื่น ๆ อีกมากมาย

โดยที่ในไพธอน 1.2 นั้นได้ถูกปล่อยออกมาในปี 1995 โดย Guido ได้กลับมาพัฒนาไพธอนต่อที่ Corporation for National Research Initiatives (CNRI) ที่ เรสตัน, มลรัฐเวอร์จิเนีย ประเทศสหรัฐอเมริกา โดยที่ในขณะเดียวกันก็ได้ปล่อยรุ่นใหม่ ในหมายเลขรุ่น 1.6 ออกมาโดยอยู่ที่ CNRI เช่นกัน

ซึ่งหลังจากปล่อยรุ่น 1.6 ออกมาแล้ว Guido van Rossum ก็ได้ออกจาก CNRI  เพื่อทำงานให้การทำธุรกิจพัฒนาซอฟต์แวร์แบบเต็มตัว โดยก่อนที่จะเริ่มทำงานธุรกิจ เขาก็ได้ทำให้ไพธอนนั้นอยู่บนสัญญาลิขสิทธิ์แบบ General Public License (GPL) โดยที่ CNRI และ Free Software Foundation (FSF) ได้รวมกันเปิดเผยรหัสโปรแกรมทั้งหมด เพื่อให้ไพธอนนั้นได้ชื่อว่าเป็นซอฟต์แวร์เสรี และเพื่อให้ตรงตามข้้อกำหนดของ GPL-compatible ด้วย (แต่ยังคงไม่สมบูรณ์เพราะการพัฒนาในรุ่น 1.6 นั้นออกมาก่อนที่จะใช้สัญญาลิขสิทธิ์แบบ GPL ทำให้ยังมีบางส่วนที่ยังเปิดเผยไม่ได้)

และในปีเดียวกันนั้นเอง Guido van Russom ก็ได้รับรางวัลจาก FSF ในชื่อว่า “Advancement of Free Software”

โดยในปีนั้นเองไพธอน 1.6.1 ก็ได้ออกมาเพื่อแก้ปัญหาข้อผิดพลาดของตัวซอฟต์แวร์และให้เป็นไปตามข้อกำหนดของ GPL-compatible license อย่างสมบูรณ

Python 2.0

ในปี 2000 Guido และ Python Core Development team ได้ย้ายการทำงานไป BeOpen.com โดยที่พวกเขาได้ย้ายจาก BeOpen PythonLabs team โดยในไพธอนรุ่นที่ 2.0 นั้นได้ถูกนำออกเผยแพร่ต่อบุคคลทั่วไปจากเว็บไซต์ BeOpen.com และหลังจากที่ไพธอนออกรุ่นที่ 2.0 ที่ BeOpen.com แล้ว Guido และนักพัฒนาคนอื่น ๆ ในทีม PythonLabs ก็ได้เข้ารวมกับทีมงาน Digital Creations

ไพธอนรุ่น 2.1 ได้สืบทอนการทำงานและพัฒนามาจาก 1.6.1 มากกว่าไพธอนรุ่น 2.0 และได้ทำการเปลี่ยนชื่อสัญญาลิขสิทธิ์ใหม่เป็น Python Software Foundation License โดยที่ในไพธอนรุ่น 2.1 alpha นั้นก็ได้เริ่มชื่อสัญญาสิขสิทธิ์นี้และผู้เป็นเจ้าของคือ Python Software Foundation (PSF) โดยที่เป็นองค์กรที่ไม่หวังผลกำไรเช่นเดียวกับ Apache Software Foundation

อนาคต

ผู้พัฒนาไพธอนมีการประชุมและถกเถียงกันในเรื่องของความสามารถใหม่ ๆ ในไพธอนรุ่นที่ 3.0 โดยมีชื่อโครงการว่า Python 3000 (Py3K) โดยที่จะหยุดการสนับสนุนโค้ดโปรแกรมจากรุ่น 2.x โดยที่ทำแบบนี้เพื่อทำการปรับปรุงเปลี่ยนแปลงการทำงานของภาษาให้ดียิ่งขึ้นตามคำแนะนำที่ว่า “reduce feature duplication by removing old ways of doing things” (ลดทอนคุณสมบัติที่ซ้ำซ้อนด้วยการยกเลิกเส้นทางที่เดินผ่านมาแล้ว) โดยในตอนนนี้ยังไม่มีตารางงานของไพธอน รุ่น 3.0 แต่อย่างใด แต่ Python Enhancement Proposal (PEP) ได้มีการวางแผนไว้แล้ว โดยได้วางแผนไว้ดังนี้


หลักปรัชญาของภาษาไพธอน

ไพธอนเป็นภาษาที่สามารถสร้างงานได้หลากหลายกระบวนทัศน์ (Multi-paradigm language) โดยจะมองอะไรที่มากกว่าการ coding เพื่อนำมาใช้งานตามรูปแบบเดิม ๆ แต่จะเป็นการนำเอาหลักการของกระบวนทัศน์ (Paradigm) แบบ Object-oriented programming, Structured programming, Functional programming และ Aspect-oriented programming นำเอามาใช้ทั้งแบบเดียว ๆ และนำมาใช้ร่วมกัน ซึ่งไพธอนนั้นเป็น ภาษาที่มีการตรวจสอบชนิดตัวแปรแบบยืดหยุ่น (dynamically type-checked) และใช้ Garbage collection ในการจัดการหน่วยความจำ


ข้อเด่นของภาษาไพธอน


Category และ Application Domains

ภาษาไพธอนนั้น จัดอยู่ใน Category ภาษาที่สามารถสร้างงานได้หลากหลายกระบวนทัศน์ (Multi-paradigm language) โดยรองรับทั้ง Object-oriented programming, Imperative, Functional programming และ Logic programming ซึ่งไพธอนสามารถนำไปพัฒนาซอฟต์แวร์ประยุกต์ได้มากมาย ได้แก่

Web และ Internet Development

ไพธอนนั้นมีการสนับสนุนในด้า้นของ Web Development ในโซลูชันระดับสูงด้วย Zope, mega frameworks อย่าง Django และ TurboGears และรวมไปถึง Content Management Systems ขั้นสูงอย่าง Plone และ CPS จึงทำให้ไพธอนนั้นเป็น Common Gateway Interface (CGI) ระดับสูงที่มีประสิทธิภาพที่ดีที่สุดตัวหนึ่งในตลาด

Database Access

ไพธอนนั้นสนับสนุนการเข้าถึงข้อมูลในฐานข้อมูลของผู้ผลิตฐานข้อมูลต่าง ๆ มากมาย โดยผ่านทาง ODBC Interfaces และ Database Connection Interface อื่น ๆ ซึ่งสามารถทำงานร่วมกับ  MySQL, Oracle, MS SQL Server, PostgreSQL, SybODBC และอื่น ๆ ที่จะมีมาเพิ่มเติมอีกในอนาคต

Desktop GUIs

เมื่อไพธอนได้ติดตั้งลงบนเครื่องของคุณแล้ว จะมี Tk GUI development library ซึ่งเป็น libraries ที่มีความสามารถเทียบเท่า Microsoft Foundation Classes (MFC, ซึ่งคล้าย ๆ กับ win32 extensions), wxWidgets, GTK, Qt, Delphi และอื่น ๆ ทำให้สามารถพัฒนาซอฟต์แวร์ประยุกต์ต่าง ๆ แบบ Graphic user interface ได้

Scientific และ Numeric computation

ไพธอนรองรับการทำงานของนักวิทยาศาสตร์ในเรื่องของทฤษฎีการคำนวณ, Bioinformatics และ Physics เป็นต้น

Education

ไพธอนนั้นเป็นภาษาที่เหมาะกับการเรียนการสอนในวิชา programming อย่างมาก โดยสามารถนำไปใช้ในระดับเบื้องต้นถึงระดับสูง ซึ่ง Python Software Foundation นั้นได้มีหลักสูตรสำหรับการเรียนการสอนในด้านนี้อยู่แล้ว ซึ่งสามารถนำเอา pyBiblio  และ Software Carpentry Course มาเรียนเพื่อเสริมความรู้ได้

Network programming

เป็นการเพิ่มความามารถจาก Web และ Internet Development ไพธอนนั้นสนับสนุนในการเขียนโปรแกรมในระดับต่ำในด้านของ network programming ที่ง่ายต่อการพัฒนา sockets และ รวมไปถึงการทำงานร่วมกับ mudules อย่าง Twisted และ Framework สำหรับ Asyncronous network programming

Software build และ Testing

ไพธอนนั้นสนับสนุนการพัฒนาซอฟต์แวร์ที่มีการควบคุมการพัฒนาและจัดการระบบทดสอบต่าง ๆ โดยใช้เครื่องมือในการพัฒนาที่สนับสนุนการเขียนโปรแกรมในไพธอนเอง ซึ่งตัวไพธอนนั้นได้มาพร้อมกับ

Game และ 3D Graphics Rendering

ไพธอนนั้นได้ถูกใช้ในตลาดพัฒนาเกมส์ทั้งเชิงธุรกิจและสมัครเล่น โดยมีการสร้าง Framework สำหรับพัฒนา Game บนไพธอนซึ่งชื่อว่า PyGame และ PyKyra ซึ่งยังรวมไปถึงการทำ 3D Graphics Rendering ที่ไพธอนมี libraries ทางด้านงานนี้อยู่มากมาย


ซอฟต์แวร์ที่เขียนด้วยไพธอน


ตัวอย่างความสำเร็จของไพธอน

Industrial Light & Magic

Google

NASA


Language Evaluation Criteria

ด้วยความที่ไพธอนนั้นผสมผสานการสร้างภาษาที่สวยงาม ทำให้การอ่านหรือเข้าใจโค้ด (Readability) ต่าง ๆ นั้นทำได้ง่าย รวมถึงการเขียนโค้ด (Writability) ที่กระชับและสั้นในการเขียน รวมถึงมีประสิทธิภาพ ทำให้มีเสถียรภาพ (Reliability) สูงขึ้นและมีความรวดเร็วในการทำงานอีกด้วย และในด้านค่าใช้จ่าย (Cost) ในการพัฒนาซอฟต์แวรจากไพธอนนั้นในประเทศไทยนั้นยังต้องใช้ค่าใช้จ่ายค่อนข้างสูง เพื่อให้ได้มาซึ่งซอฟต์แวร์ที่ดี เพราะผู้เชี่ยวชาญที่เขียนไพธอนได้มีเสถียรภาพนั้นยังมีน้อย ทำให้ค่าตัวสำหรับผู้พัฒนานั้นสูงตามไปด้วย ถึงแม้ว่าเครื่องมือในการพัฒนานั้นจะฟรี และเป็น Open source ก็ตาม แต่ค่าใช้จ่ายในด้านบุคลากรนั้นมีมากกว่าค่าเครื่องมือพัฒนา


ข้อมูลอ้างอิง

คำสั่งการใช้งานต่าง ๆ ของ Python สามารถอ่านได้จาก Python Programming Language Documentation ที่ http://docs.python.org

Exit mobile version