วันพุธที่ 19 สิงหาคม พ.ศ. 2558

ประวัติ เเละ ข้อมูลเบื่องต้นของ " Python "

ประวัติ Python 

     ก่อนอื่นน่ะครับผมจะพูดถึงเรื่องของการเขียนภาษา Python ก่อนเลยน่ะครับว่าเป็นมาอย่างไร(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/ ซึ่งในปัจจุบัน (ณ.วันที่ 14 กันยายน 2015) Python ได้พัฒนาถึงรุ่นที่ 3.5.0 (ออกวันที่ 13 กันยายน 2015) 

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

  • ง่ายต่อการเรียนรู้ โดยภาษาไพธอนมีโครงสร้างของภาษาไม่ซับซ้อนเข้าใจง่าย ซึ่งโครงสร้างภาษาไพธอนจะคล้ายกับภาษาซีมาก เพราะภาษาไพธอน สร้างขึ้นมาโดยใช้ภาษาซี ทำให้ผู้ที่คุ้นเคยภาษาซี อยู่แล้วใช้งานภาษาไพธอนได้ไม่ยาก นอกจากนี้โดยตัวภาษาเองมีความยืดหยุ่นสูงทำให้การจัดการกับงานด้านข้อความ และ Text File ได้เป็นอย่างดี
  • ไม่ต้องเสียค่าใช้จ่ายใดๆ ทั้งสิ้น เพราะตัวแปรภาษาไพธอนอยู่ภายใต้ลิขสิทธิ์ Python Software Foundation License (PSFL) ซึ่งเป็นของ Python Software Foundation (PSF) ซึ่งมีลักษณะคล้ายกับ ลิขสิทธิ์แม่แบบอย่าง General Public License (GPL) ของ Free Software Foundation (FSF)
  • ใช้ได้หลายแพลตฟอร์ม ในช่วงแรกภาษาไพธอนถูกออกแบบใช้งานกับระบบ Unix อยู่ก็จริง แต่ในปัจจุบันได้มีการพัฒนาตัวแปลภาษาไพธอน ให้สามารถใช้กับระบบปฏิบัติการอื่นๆ อาทิเช่น Linux Platform, Windows Platform, OS/2, Amiga, Mac OS X และรวมไปถึงระบบปฎิบัติการทีี่ .NET Framework, Java virtual machine ทำงานได้ ซึ่งใน Nokia Series 60 ก็สามารถทำงานได้เช่นกัน
  • ภาษาไพธอนถูกสร้างขึ้นโดยได้รวบรวมเอาส่วนดีของภาษาต่างๆ เข้ามาไว้ด้วยกัน อาทิเช่น ภาษา ABC, Modula-3, Icon, ANSI C, Perl, Lisp, Smalltalk และ Tcl
  • ไพธอนสามารถรวมการพัฒนาของระบบเข้ากับ COM, .NETและ CORBA objects
  • สำหรับ Java libraries แล้วสามารถใช้ Jython เพื่อทำการพัฒนาซอฟต์แวร์จากภาษาไพธอนสำหรับ Java Virtual Machine
  • สำหรับ .NET Platform แล้ว สามารถใช้ IronPython ซึ่งเป็นการพัฒนาของ Microsoft เพื่อจะทำให้ไพธอนนั้นสามารถทำงานได้บน .Net Framework ซึ่งใช้ชื่อว่า Python for .NET
  • ไพธอนนั้นสนับสนุน Internet Communications Engine (ICE) และการรวมกันของเทคโนโลยีอื่น ๆ อีกมากมายในอนาคต
  • บางครั้งนักพัฒนาอาจจะพบว่าไพธอนไม่สามารถทำงานบางอย่างได้ แต่นักพัฒนาต้องการให้มันทำงานได้ ก็สามารถพัฒนาเพิ่มได้ในรูปแบบของ extension modules ซึ่งอยู่ในรูปแบบของโค้ด C หรือ C++ หรือใช้ SWIG หรือ Broost.Python
  • ภาษาไพธอนเป็นสามารถพัฒนาเป็นภาษาประเภท Server side Script คือการทำงานของภาษาไพธอนจะทำงานด้านฝั่ง Server แล้วส่งผลลัพธ์กลับมายัง Client ทำให้มีความปลอดภัยสูง และยังใช้ภาษาไพธอนนำมาพัฒนาเว็บเซอร์วิสได้อีกด้วย
  • ใช้พัฒนาระบบบริหารการสร้างเว็บไซต์สำเร็จรูปที่เรียกว่า Content Management Systems (CMS) ซึ่ง CMS ที่มีชื่อเสียงมาก และเบื้องหลังทำงานด้วยไพธอนคือ Plone http://www.plone.org/

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
     ไพธอนนั้นสนับสนุนการพัฒนาซอฟต์แวร์ที่มีการควบคุมการพัฒนาและจัดการระบบทดสอบต่าง ๆ โดยใช้เครื่องมือในการพัฒนาที่สนับสนุนการเขียนโปรแกรมในไพธอนเอง ซึ่งตัวไพธอนนั้นได้มาพร้อมกับ
  • Scons สำหรับ build โปรแกรม
  • Buildbot และ Apache Gump ที่ใช้สำหรับงาน Automated continuous compilation และ Testing
  • Roundup หรือ Trac สำหรับ bug tracking และ project management
     Game และ 3D Graphics Rendering
     ไพธอนนั้นได้ถูกใช้ในตลาดพัฒนาเกมส์ทั้งเชิงธุรกิจและสมัครเล่น โดยมีการสร้าง Framework สำหรับพัฒนา Game บนไพธอนซึ่งชื่อว่า PyGame และ PyKyra ซึ่งยังรวมไปถึงการทำ 3D Graphics Rendering ที่ไพธอนมี libraries ทางด้านงานนี้อยู่มากมาย

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

  • BitTorrent เป็นการพัฒนาโดยระบบการจัดการไฟล์ BitTorrent, การจัดการ การกระจายตัวของ Package ข้อมูลใน Tracker และการเข้ารหัสส่วนข้อมูลต่าง ๆ
  • Blender ซอฟต์แวร์ open source สำหรับทำ 3D modeling
  • Chandler ซอฟต์แวร์จัดการข้อมูลส่วนบุคคล (Personal Information Manager, PIM) โดยมีส่วนเพิ่มเติมทั้งงานปฎิทิน, อีเมล, ตารางงาน และข้อมูลโน็ตต่าง ๆ ซึ่งทำงานคล้าย ๆ กับ Outlook ของ Microsoft
  • Civilization IV วีดิโอเกมส์ และยังเป็นเกมส์ที่ใช้ boost.python เพื่อทำการควบคุมส่วนประกอบต่าง ๆ ภายในเกมส์ ซึ่งรวมไปถึงรูปแบบ, หน้าตา และเนื้อหาของเกมส์ด้วย
  • Mailman หนึ่งในซอฟต์แวร์ E-Mail mailing lists ที่ได้รับความนิยมสูงสุด
  • Kombilo ระบบจัดการฐานข้อมูลของเกมส์โกะ
  • MoinMoin ระบบ Wiki ที่ได้รับความนิยมสูงตัวหนึ่ง
  • OpenRPG ระบบเกมส์เสมือนแบบ Role Playing Games ลน Internet
  • Plone ระบบ Content Management System
  • Trac ระบบติดตามติดตามข้อผิดพลาดและจัดการข้อมูลด้านการพัฒนาซอฟต์แวร์ด้วย MoinMoin ที่เป็น wiki และ Subversion เพื่อทำระบบ Source version control
  • Turbogears ระบบพัฒนาซอฟต์แวร์ Framework โดยรวมเอา Cherrypy, SQLObject, MochiKit และ KID templates
  • ViewVC ระบบ Web-based สำหรับจัดการด้าน CVS และ SVN repositories
  • Zope ระบบพัฒนาซอฟต์แวร์บนอินเทอร์เน็ตแบบ web-application platform
  • Battlefield 2 เกมส์ First Person Shooter ที่ได้ใช้ไพธอนในการทำ Configuration scripts
  • Indian Ocean Tsunami Detector ซอฟต์แวร์สำหรับมือถือเพื่อแจ้งเตือน Tsunami
  • EVE Online เกมส์แบบ Multi Massive Online Role Playing Game ซึ่งเป็นเกมส์ที่ได้รับอันดับสูงมากบน MMORPG.com
  • SPE – Stani’s Python Editor เป็น Free และ open-source สำหรับงานพัฒนาซอฟต์แวร์ด้วยไพธอน โดยมีทั้งแบบ Python IDE for Windows, Linux \& Mac with wxGlade (GUI designer), PyChecker (Code Doctor) และ Blender (3D)

ตัวอย่างความสำเร็จของ Python

Industrial Light & Magic
  • "ไพธอนเป็นกุญแจสำหรับการสร้างผลงานที่ดี ถ้าไม่มีมันแล้วงานอย่าง Star Wars: Episode II ก็เป็นเรื่องที่ยากมากที่จะสำเร็จ ด้วยวิธีการ  crowd rendering เพื่อส่งไปทำการ batch processing ในการ compositing video นั้นเป็นเรื่องที่ง่ายไปเลยเมื่อใช้การพัฒนาระบบด้วยไพธอน"  Tommy Burnette, Senior Technical Director, Industrial Light & Magic
  • "ไพธอนอยู่ทุก ๆ ที่ใน ILM มันช่วยให้เราสามารถที่จะทำงานกับภาพกราฟฟิกที่ถูกสร้างสรรค์ได้ง่ายและรวดเร็ว" Philip Peterson, Principal Engineer, Research & Development, Industrial Light & Magic
Google
  • "ไพธอนมีความสำคัญต่อ Google มาก เพราะตั้งแต่เริ่มมี Google เราก็ใช้มันสร้างระบบของเรา และยังคงเป็นส่วนสำคัญจนทุกวันนี้ โดยในทุก ๆ วันเหล่าวิศวะกรของ Google ใช้ไพธอนในการทำงานอยู่ตลอดเวลา เพื่อค้นหาข้อมูลบนโลกของอินเทอร์เน็ตอย่างไม่มีทีสิ้นสุด" Peter Norvig, Director of Search Quality, Google, Inc.
NASA
  • NASA ใช้ไพธอนในการพัฒนา การจัดการ Model, Integration และ ระบบ Transformation ในงาน CAD/CAE/PDM โดยพวกเราเลือกไพธอนเพราะมีความสามารถในการสร้างงานให้ออกมาได้อย่างรวดเร็วและมีประสิทธิภาพสูง โดยสิ่งที่สำคัญคือ code ในการเขียนนั้นสะอาดและง่ายต่อการจัดการดูแลในภายหลัง อีกทั้งยังมี libraries ให้ใช้อย่างมากมายทำการ Integration ของระบบนั้นเป็นไปอย่างชาญฉลาดและรวดเร็วแถมยังทำระบบที่สามารถเชื่อมต่อการกับระบบอื่น ๆ ได้อย่างดี ซึ่งไพธอนนั้นตอบโจทย์ของเราได้ทั้งหมด"  Steve Waterbury, Software Group Leader, NASA STEP Testbed


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


ไม่มีความคิดเห็น:

แสดงความคิดเห็น