เอกสารไพธอนโปรแกรมมิ่ง ภาษาไทย

สำหรับใครที่อยากศึกษาภาษาไพธอน สามารถดาวน์โหลดได้จาก ที่นี่ หรือ ไปอ่านที่ Scribd (เลื่อนไปอ่านด้านล่างก็ได้ Embed ไว้แล้วครับ) โดยในนั้นมีเนื้อหาดังนี้

เนื้อหาหลัก

  1. แนะนำภาษาไพธอน (ประวัติ, หลักปรัชญาของภาษา, ข้อดีและเด่นของภาษา, ฯลฯ)
  2. การแสดงผลเบื้องต้น
  3. การตั้งชื่อตัวแปร และคำสงวน
  4. การคำนวณทางคณิตศาสตร์
  5. ชนิดของตัวแปร
  6. การเปรียบเทียบ
  7. นิพจน์ทางตรรกะศาสตร์
  8. ช่วงของการทำงานและช่วงชีวิตของตัวแปร
  9. การควบคุมทิศทางของโปรแกรม
  10. การสร้างฟังก์ชั่น
  11. การใส่ข้อมูลผ่านคีย์บอร์ด

ภาคผนวก

  1. เรื่องที่ห้ามลืมในไพธอน
  2. การติดตั้ง Python, wxPython และ Stani’s Python Editor
  3. อธิบายส่วนต่าง ๆ พอสังเขปของโปรแกรม SPE
  4. การเขียน, Debug และสั่งให้โปรแกรมทำงาน
  5. ข้อมูลอ้างอิง

โดยเนื้อหาทั้งหมดนี้ได้รับการแก้ไขให้มีข้อผิดพลาดน้อยที่สุดเท่าที่จะทำได้ครับ (แก้ไขและเข้าเล่มรายงานไปแล้ว 3 รอบ กว่าจะลงตัว เสียตังจริง ๆ ตู T_T )

โดยเอกสารดังกล่าวนี้อยู่บนลิขสิทธิ์ของ Creative Commons แบบ Creative Commons Attribution-NonCommercial-NoDerivs 2.5 License โดยการนำไปเผยแพร่ต้องบ่งบอกถึงที่มาของเอกสาร และห้ามนำไปทำการค้าหรือ เพิ่มเติมส่วนหนึ่งส่วนใดของเอกสาร โดยไม่แจ้งให้ทราบล่วงหน้ากับผู้จัดทำก่อน เพื่อประโยชน์สูงสุดของผู้จัดทำ และตัวผู้นำไปใช้ศึกษาและเผยแพร่นั้นเอง

หวังว่าจะมีประโยชน์ในการศึกษาภาษาโปรแกรมมิ่งไพธอนที่กำลังเติบโตอย่างสูงมากในตอนนี้

และถ้ามีเวลาจะเขียนเพิ่มในส่วนของ OOP และ GUI ด้วยครับ ;)

ภาษาโปรแกรมมิ่งไพธอน (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) ได้มีการวางแผนไว้แล้ว โดยได้วางแผนไว้ดังนี้

  • ทำการเพื่อส่วนสนับสนุนชนิดตัวแปรให้มากขึ้น
  • สนับสนุนการทำงานของชนิดตัวแปรแบบ unicode/str และ separate mutable bytes type
  • ยกเลิกการสนับสนุนคุณสมบัติของ classic class, classic division, string exceptions และ implicit relative imports
  • ฯลฯ

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

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


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

  • ง่ายต่อการเรียนรู้ โดยภาษาไพธอนมีโครงสร้างของภาษาไม่ซับซ้อนเข้าใจง่าย ซึ่งโครงสร้างภาษาไพธอนจะคล้ายกับภาษาซีมาก เพราะภาษาไพธอน สร้างขึ้นมาโดยใช้ภาษาซี ทำให้ผู้ที่คุ้นเคยภาษาซี อยู่แล้วใช้งานภาษาไพธอนได้ไม่ยาก นอกจากนี้โดยตัวภาษาเองมีความยืดหยุ่นสูงทำให้การจัดการกับงานด้านข้อความ และ 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 ทางด้านงานนี้อยู่มากมาย


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

  • 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)

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

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

Language Evaluation Criteria

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


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

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

o3 หนังสือแนว Open Source Enterprise Data Networking Magazine

พอดีว่านั่งหาข้อมูลทำรายงานไปเรื่อย ๆ ดันไปเจอของดีเข้า คือ o3 Magazine ( http://www.o3magazine.com/ ) ครับ ซึ่งตอนนี้ถึงเล่มที่ 4 แล้ว ลองโหลดเล่มเก่า ๆ และเล่มใหม่ล่าสุดมาอ่านดูนะ ความรู้แน่นมาก แถมฟรี ด้วย ;)

สำหรับคนที่ยังไม่รู้ว่า Fedora Linux Core 4 คืออะไร ?

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

Download

Notebook สำหรับเด็กขายฝันเกินไปหรือเปล่า ?

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

ซึ่งเรื่อง Notebook สำหรับเด็กไม่ค่อยเห็นด้วยเท่าไหร่ ไม่ว่าจะยกเหตุผลใดๆ มาอ้างก็ตาม ผมมี Notebook ใช้ตั้งแต่ ม.5 ตอนนี้ ปี 3 แล้ว ใช้มา 2 เครื่อง และ Desktop อีก 1 เครื่อง

เรื่อง MIT Notebook นี้ จริงๆ แล้วไม่เหมาะกับการเรียนการสอนในไทยเท่าไหร่ และประเทศพัฒนาหลายๆ ประเทศ ที่นักเรียนกว่า 30 – 40% สามารถซื้อ Notebook ได้ แต่ก็ไม่ค่อยมีใครใช้ มาแทนการใช้งานหนังสือเท่าไหร่

เพราะหนังสือ เป็นสิ่งที่ดีที่สุดในการเรียนรู้ และไม่ทำลายสายตาเท่ากับจอคอมพิวเตอร์ ถึงแม้จะเป็นจอ LCD กรือ OLED ก็ตามที ก็ไม่ได้ดีไปกว่ากระดาษธรรมดาที่มีตัวหนังสือให้อ่าน และมันสามารถอ่านได้ทุกๆ ที่โดยที่ไม่ต้องมากังวลว่าแบตจะหมด หรือไม่ต้องมานั่งปั้นไฟ แบบ MIT Notebook ตัวนี้ แถม หนังสือมันทำให้เราฝึกการเขียน วิเคราะห์ ย่อความ หรือการเรียบเรียงใหม่อีกมากมาย

ถึง Notebook จะสะดวก แต่มันทำให้คนเรายึดติดมันมากเกินไป ผมมี eBook ในเครื่องกว่า 10GB และ VDO Training อีก 20 GB ผมเปิดๆ ดู เปิดๆ อ่าน ก็สะดวกดี แต่ …….

พอเราอยู่นอกบ้าน มันไม่สะดวกเท่าหนังสือ การหยิบจับมันง่ายกว่ามาก หลายๆ คนคงบอกว่า Notebook มันเก็บหนังสือได้มากกว่ากระเป๋าหนังสือ 100 เล่ม อันนี้ไม่เถียง แต่ผมเถียงในเรื่องของคำว่า “พยายาม” ตอนผมเรียน ม.ปลาย หนังสือที่ผมเอาไปเรียนก็ว่าเยอะแล้วนะ แต่ตอนมาเรียน มหาลัยฯ เยอะกว่าหลายเท่า และในปัจจุบัน หนังสือเรียนรุ่นๆ ใหม่ๆ ของเด็กประถม ก็น่าอ่านกว่าแต่ก่อนเยอะ แต่เนื้อหามากขึ้นลึกขึ้น พอสมควร ผมถามว่า Notebook ไม่ใช่สิ่งที่มาแทนที่หนังสือ และไม่สามารถทดแทนได้ ไม่ว่าจะยังไงก็ตาม ผมยังเห็นคนที่เรียนด้านคอมฯ และคนทำวิจัยเก่งๆ ที่มี Notebook ดีๆ มี External H/D ความจุสูง ยังซื้อหนังสือ Text Book มาอ่านอยู่เลย ทั้งๆ ที่มีให้โหลดแบบ PDF กันดาดดืน ด้วยเหตุผลที่ว่า ความรู้สึกที่ได้อ่าน และโน๊ตลงไปมันทดแทนไม่ได้ และความสะดวกในการหยึบอ่านมันมีมากกว่า อ่านที่ไหนก็ได้ ไม่ต้องคิดมาก

อีกอย่างที่ผมว่าไม่เหมาะสมคือ ความรับผิดชอบในสิ่งของ ของเด็กๆ ระดับเล็ก แม้แต่ ม.ต้น บางคนก็มีความรับผิดชอบที่ต่ำ และเกรงว่าจะเป็นภัยต่อตัวเด็กในเรื่องของอาชญากรรม ด้านการลักขโมย และลักทรัพย์ครับ เรื่องนี้น่าเป็นห่วงมากกว่าครับ

ต่อมาคือค่าใช้จ่ายในการดูแลรักษา และการสอนการใช้งาน อย่าลืมว่าระบบที่แน่นอนแล้วคือ Linux แน่นอน ซึ่ง ok linux ในปัจจุบันใช้งานง่าย และไม่ซับซ้อน แต่ปัญหาไม่ใช่อยู่เพียงแค่นี้ ปัญหาคือความเคยชิน มากกว่า ระบบ linux นั้นทำงานได้ดีในการทำงานระดับ Office ครับ คือทำงาน Word Processing, Speadheet, Presentation Slide , ฯลฯ ซึ่งซอฟต์แวร์พวกนี้ รองรับระบบไฟล์บางอย่างของ microsoft ได้ยาก เช่นไฟล์ .doc ซึ่งเป็นของ microsoft word เป็นต้น ซอฟต์แวร์ openoffice หรือ koffice ของ linux ยังคงอ่านไฟล์ของ microsoft word ยังไม่สมบูรณ์ และดีพอ ซึ่งต้องทำให้นักเรียน และคุณครูทั่วไปเคยชินต่อระบบ linux ก่อน และยอมรับ format ไฟล์ของ openoffice หรือ koffice ก่อน ซึ่งระบบราชการไทย ยังใช้ ms word กันอยู่เลย -_-” แถม font พวก Angsana New หรือตระกูล UPC ทั้งหลายใน Linux ไม่มีครับ ต้องหา Copy จาก Windows ซึ่งผิดลิขสิทธิ์เต็มๆ แต่ก็เหอะ พี่ไทยเราคงไม่สนใจ จริงแมะ ……

ส่วนเรื่องการเอามาลง Windows คงเป็นไปได้ยาก เพราะ Memory และ H/D คงไม่เอื้อให้คุณสามารถลงได้เต็มที่ ไม่แน่แค่ลง Windows ก็เหมาะเนื้อที่แล้ว

ซึ่งผมมองว่า เห็นโครงการขายฝันมากกว่า ดูดีครับ แต่ใช้งานได้ยาก และไม่มีเหมาะกับสังคมไทย ที่ยังใช้เทคโนโลยีอย่างแฟชั่น และการใช้งานแบบ All-in-one ซึ่ง MIT Notebook ตัวนี้คงไม่ตอบโจทย์ และความต้องการเท่าไหร่

และไม่เหมาะกับเด็กไม่ว่าจะด้วยกรณีใดๆ ทั้งสิ้น ผมสังเกตุว่าประเทศหลายๆ ประเทศ อย่างญี่ปุ่น เค้าไม่เห็นสนใจโครงการนี้เท่าไหร่ ….. อีกอย่างญี่ปุ่นยังใช้กระดาน กับช็อค เรียนกับหนังสือ และสมุดอยู่เลย ….