PYTHON

ภาษาโปรแกรม Python คืออะไร ?

โลกในยุคดิจิทัล (Digital age) ได้มีความก้าวหน้าในการพัฒนาเทคโนโลยีอย่างรวดเร็วแบบก้าวกระโดด ทำให้มีบทบาทสำคัญในการพัฒนาขับเคลื่อนธุรกิจ และอำนวยความสะดวกในชีวิตประจำวัน เช่น การทำธุรกรรมทางการเงินกับธนาคารแบบออนไลน์ การใช้ระบบสั่งการคอมพิวเตอร์ด้วยเสียง การตรวจสุขภาพเบื้องต้นด้วยแอปพลิเคชันบนมือถือ และระบบ Google Search ที่สามารถรู้ว่าคุณกำลังค้นหาข้อมูลอะไรก่อนที่เราจะพิมพ์จบประโยค เป็นต้น นอกจากนั้นยังมีนวัตกรรมเทคโนโลยีที่มีความล้ำหน้าต่าง ๆ โดยเฉพาะงานทางด้านปัญญาประดิษฐ์ (Artificial Intelligence) เช่น บริษัท DeepMind ได้พัฒนาระบบคอมพิวเตอร์ Alpha Go ที่สามารถแข่งขันเอาชนะเกมหมากล้อมเหนือแชมป์โลกได้ และยังมีระบบคอมพิวเตอร์ล่าสุดที่ชื่อว่า AlphaStar  ที่สามารถเอาชนะทีมมนุษย์ในเกม StarCraft II ได้ รวมถึงรถยนต์ไร้คนขับที่สามารถเดินทางบนถนนได้จริง และหุ่นยนต์คอมพิวเตอร์ที่จะสามารถทำงานทดแทนมนุษย์ได้ในอนาคต


แม้ว่าคอมพิวเตอร์จะสามารถทำงานได้หลายอย่างและมีประสิทธิภาพที่สูงมาก อย่างไรก็ตามมันไม่ได้มีความสามารถหรือความฉลาดได้ด้วยตัวของมันเองแต่อย่างใด แต่สิ่งที่ทำให้คอมพิวเตอร์สามารถทำงานต่าง ๆ ได้ก็คือสิ่งที่เรียกว่า “โปรแกรม” ที่คอยทำงานอยู่เบื้องหลัง ซึ่งเป็นชุดคำสั่งที่มีการกำหนดขั้นตอนที่ชัดเจนเพื่อสั่งงานให้คอมพิวเตอร์ทำงานตามที่เราต้องการ ไม่ว่าจะเป็นการจัดการกับข้อมูลที่นำเข้ามาในระบบ การตัดสินใจสำหรับเงื่อนไขต่าง ๆ การประมวลผลข้อมูล การสื่อสารกับระบบภายในและภายนอก การจัดการความผิดพลาดที่เกิดขึ้น และการแสดงผลในรูปแบบต่าง ๆ เป็นต้น แม้ว่าในงานทางด้านปัญญาประดิษฐ์ ระบบคอมพิวเตอร์จะสามารถตัดสินใจเองจนสามารถแข่งขันเกมเอาชนะเหนือมนุษย์ได้ แต่ยังมีความจำเป็นที่จะต้องเขียนโปรแกรมในการสร้างโมเดลเพื่อสอนให้คอมพิวเตอร์สามารถเรียนรู้จากข้อมูลเองได้ ดังนั้นหากเราต้องการให้คอมพิวเตอร์ทำงานใดก็ตาม จะต้องอาศัยการเขียนโปรแกรมเพื่อสั่งงานคอมพิวเตอร์ให้ทำงานตอบสนองความต้องการของเราได้

ภาษาโปรแกรมคอมพิวเตอร์ระดับสูง (High-level programming language)

ภาษาโปรแกรมคอมพิวเตอร์ระดับสูง (High-level programming language) เป็นเครื่องมือที่อำนวยความสะดวกในการเขียนโปรแกรม เช่น Java, C/C++, C#, Ruby และ Python เป็นต้น โดยเป็นภาษาที่ถูกออกแบบมาสำหรับมนุษย์ในการแปลงความคิดของการแก้ปัญหาออกมาเป็นลำดับขั้นตอนต่าง ๆ ที่ชัดเจนให้อยู่ในรูปแบบของชุดคำสั่ง (Source code) และสามารถใช้สื่อสารกับนักพัฒนาซอฟต์แวร์ด้วยกันเองให้สามารถเข้าใจการทำงานของโปรแกรมได้ ดังนั้นภาษาโปรแกรมคอมพิวเตอร์ระดับสูงจึงมีความใกล้เคียงภาษามนุษย์ (Natural language) มากกว่าภาษาของคอมพิวเตอร์ (Machine language) นอกจากนั้นยังทำให้เราสามารถเขียนโปรแกรมโดยไม่ต้องสนใจในรายละเอียดการทำงานของคอมพิวเตอร์ในระดับล่าง เช่น หน่วยประมวลผล ฮาร์ดดิสก์ หน่วยความจำ และอื่น ๆ ทำให้มีความสะดวกในการเขียนโปรแกรมมากขึ้น มาถึงตอนนี้ผู้เขียนอยากจะขอย้ำกับผู้อ่านอีกครั้งว่าภาษาโปรแกรมคอมพิวเตอร์ระดับสูงถูกออกแบบมาสำหรับมนุษย์ให้เขียนโปรแกรมได้ง่ายขึ้น ไม่ได้ถูกออกแบบมาเพื่อคอมพิวเตอร์ เพราะคอมพิวเตอร์ไม่สามารถเข้าใจชุดคำสั่งที่เราเขียนขึ้นมาได้ นั่นคือเหตุผลว่าทำไมเราต้องมี Compiler หรือ Interpreter คอยทำหน้าที่ในการแปลงชุดคำสั่งให้เป็นภาษาเครื่องอีกขั้นตอนหนึ่ง เพื่อให้คอมพิวเตอร์ทำงานตามที่เราต้องการ

ภาษาโปรแกรม Python คืออะไร?

ภาษาโปรแกรม Python คือภาษาโปรแกรมคอมพิวเตอร์ระดับสูง โดยถูกออกแบบมาให้เป็นภาษาสคริปต์ที่อ่านง่าย  โดยตัดความซับซ้อนของโครงสร้างและไวยกรณ์ของภาษาออกไป ในส่วนของการแปลงชุดคำสั่งที่เราเขียนให้เป็นภาษาเครื่อง Python มีการทำงานแบบ Interpreter คือเป็นการแปลชุดคำสั่งทีละบรรทัด เพื่อป้อนเข้าสู่หน่วยประมวลผลให้คอมพิวเตอร์ทำงานตามที่เราต้องการ นอกจากนั้นภาษาโปรแกรม Python ยังสามารถนำไปใช้ในการเขียนโปรแกรมได้หลากหลายประเภท โดยไม่ได้จำกัดอยู่ที่งานเฉพาะทางใดทางหนึ่ง (General-purpose language) จึงทำให้มีการนำไปใช้กันแพร่หลายในหลายองค์กรใหญ่ระดับโลก เช่น Google, YouTube, Instagram, Dropbox และ NASA เป็นต้น

ประวัติของภาษาโปรแกรม Python

สำหรับประวัติของภาษาโปรแกรม Python ได้เริ่มต้นขึ้นในเดือนธันวาคมปี 1989 โดยนาย Guido van Rossum โปรแกรมเมอร์ชาวดัตช์ ในตอนนั้นทำงานอยู่ที่สถาบันวิจัยแห่งชาติ Centrum Wiskunde & Informatica (CWI) ซึ่งเป็นสถาบันวิจัยทางด้านคณิตศาสตร์และวิทยาการคอมพิวเตอร์ในเมืองอัมสเตอร์ดัม ประเทศเนเธอร์แลนด์ ในเวลานั้น Guido ต้องพัฒนาโปรแกรมสำหรับผู้ดูแลระบบ เพื่อใช้ในโครงการ Amoeba ซึ่งเป็นโครงการเกี่ยวกับระบบปฏิบัติการแบบกระจาย (Distributed operating system) อย่างไรก็ตามเขารู้สึกว่าภาษาโปรแกรม ABC, C  และ Bourne shell มีข้อจำกัดมากมาย  ทั้งเรื่องใช้เวลาในการพัฒนานานมากและไม่สามารถตอบโจทย์หลายประการ ดังนั้น Guido จึงได้ตัดสินใจเริ่มพัฒนาภาษาโปรแกรมระดับสูงขึ้นมาใหม่เพื่อใช้งานเองเป็นงานอดิเรก โดยนำเอาสิ่งที่ชอบในภาษา ABC มาพัฒนาลงไปในภาษาโปรแกรม Python รวมถึงได้พัฒนาส่วนอื่น ๆ เพิ่มเติมเข้าไป และในเวลาต่อมาจึงได้เผยแพร่ Python 1.0 เวอร์ชันแรกในปี 1994 หากเทียบกับภาษา Java ที่ได้ทำการเผยแพร่เวอร์ชันแรกในปี 1996 จะเห็นได้ว่าภาษา Python มีอายุมากกว่าภาษา Java ถึง 2 ปี



สำหรับที่มาของชื่อภาษาโปรแกรม Python นั้นไม่ได้มีที่มาเกี่ยวข้องกับงูเหมือนกับชื่อของมันแต่อย่างใด แต่ในช่วงที่ตัดสินใจเลือกชื่อนั้น ชื่อแรกที่เข้ามาในความคิดของ Guido ก็คือ มอนตี้ ไพธอน: ละครสัตว์เหินหาว (Monty Python’s Flying Circus) ซึ่งเป็นชื่อรายการโทรทัศน์ทางช่อง BBC แนวตลกชื่อดังจากฝั่งอังกฤษที่เขาชื่นชอบมาก ๆ โดยเขาให้เหตุผลว่า “Python” เป็นชื่อที่สั้น จำได้ง่าย ฉีกแนวนิดๆ และดูลึกลับ ในตอนนั้นโดยทั่วไปมักจะนิยมเอาชื่อของบุคคลที่มีชื่อเสียงมาใช้เป็นชื่อภาษาโปรแกรมคอมพิวเตอร์ เช่น Ada, Pascal และ Eiffel ถึงแม้ว่าทีมนักแสดงในรายการจะไม่ได้มีชื่อเสียงทางด้านวิทยาศาสตร์และเทคโนโลยี แต่ก็เป็นที่ชื่นชอบในกลุ่มชาว Geek อย่างมาก รวมถึงกลุ่มคนที่ทำงานใน CWI ก็มักจะนิยมเอาชื่อรายการทีวีโชว์มาตั้งชื่อในงานของตัวเองอีกด้วย นี่คือเหตุผลที่มาที่ไปของชื่อภาษา Python นอกจากนั้น Guido ยังใช้ชื่อของนักแสดงตลกชาวอังกฤษชื่อดังและเป็นหนึ่งในสมาชิกผู้ก่อตั้งทีม Monty Python ที่ชื่อ Eric Idle มาใช้เป็นชื่อ IDE หรือเครื่องมือที่ใช้ในการพัฒนาโปรแกรมว่า “IDLE” อีกด้วย 

เราควรจะเลือกศึกษาเวอร์ชัน Python 2.x หรือ Python 3.x?

ในปัจจุบันภาษาโปรแกรม Python มีเวอร์ชันให้เลือกใช้งานคือ Python 2.x และ Python 3.x ซึ่งเผยแพร่มาตั้งแต่ในปี 2000 และ 2008 ตามลำดับ โดยระหว่างที่ผู้เขียนกำลังเขียนบทความนี้ เวอร์ชันล่าสุดคือ Python  2.7.15 และ Python 3.7.2 สำหรับปัญหาทั่วไปของผู้เริ่มต้นศึกษาการเขียนโปรแกรมด้วยภาษา Python คือการตัดสินใจเลือกใช้งานระหว่างเวอร์ชัน Python 2.x หรือ Python 3.x แต่ก่อนที่จะตอบปัญหานี้ ผู้เขียนอยากจะขออธิบายพื้นฐานของหมายเลขเวอร์ชัน เพื่อให้เข้าใจความแตกต่างระหว่างสองเวอร์ชันนี้ก่อน โดยหลักการมาตราฐานการตั้งหมายเลขเวอร์ชันของซอฟต์แวร์ (Semantic Versioning)  เป็นการกำหนดขอบเขตของการเปลี่ยนแปลงเวอร์ชันต่าง ๆ ซึ่งมีรูปแบบประกอบด้วยหมายเลข 3 หลัก คือ X.Y.Z ทำให้ผู้ใช้งานสามารถจัดการกับการเปลี่ยนแปลงเวอร์ชัน เพื่อให้ซอฟต์แวร์สามารถทำงานได้เป็นปกติ และรองรับฟีเจอร์ใหม่ๆ ได้ในอนาคต 


Major

คือเวอร์ชันการเปลี่ยนแปลงหรือเพิ่ม API หลักจำนวนมาก และไม่รองรับการเรียกใช้งาน API จากเวอร์ชันเก่าได้ ทำให้ชุดคำสั่งของทั้งเวอร์ชันใหม่และเวอร์ชันเก่าไม่สามารถทำงานร่วมกันได้ ตัวอย่างเช่น ชุดคำสั่งของเวอร์ชัน Python 2.x จะไม่สามารถนำมาใช้งานในเวอร์ชัน Python 3.x ได้ 

Minor

คือเวอร์ชันการเปลี่ยนแปลงหรือเพิ่มฟังก์ชันการทำงานใหม่เพียงเล็กน้อย โดยไม่กระทบการทำงานของชุดคำสั่งเวอร์ชันปัจจุบันที่ใช้งานอยู่ (Backward compatibility) ตัวอย่างเช่น หากในปัจจุบันเราใช้งานเวอร์ชัน Python 3.7.2 เมื่อมีการพัฒนาเวอร์ชันใหม่เป็น Python 3.8.0 ในอนาคต ผู้ใช้งานสามารถดาวน์โหลดเพื่อติดตั้งใช้งานได้โดยไม่กระทบการทำงานของเวอร์ชันเดิมแต่อย่างใด

Patch

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

สำหรับเหตุผลที่ภาษาโปรแกรม Python ได้มีการพัฒนาและเปลี่ยนแปลงหลักจากเวอร์ชัน Python 2.x ไปเป็น Python 3.x เนื่องจากมีความต้องการที่จะปรับปรุงและแก้ไขข้อเสียของเวอร์ชันเดิมที่สะสมมานาน เนื่องจากเป็นเวอร์ชันที่ออกแบบและพัฒนามาตั้งแต่ปี 2000 เพราะว่าถ้าหากต้องการที่จะแข่งขันกับภาษาโปรแกรมต่าง ๆ ที่ได้รับความนิยมอยู่ในปัจจุบัน รวมถึงภาษาโปรแกรมที่เกิดขึ้นใหม่ ที่พยายามแก้ไขปัญหาและอำนวยความสะดวกในการเขียนโปรแกรมให้ดียิ่งขึ้นอยู่ตลอดเวลา จึงต้องมีการขัดเกลาและเปลี่ยนแปลงขึ้น โดยการเปลี่ยนแปลงหลักในเวอร์ชัน Python 3.x สามารถแบ่งออกเป็นประเด็นต่าง ๆ เช่น โครงสร้างและไวยกรณ์ของภาษา โมดูลมาตรฐาน ชนิดของข้อมูล และโครงสร้างข้อมูล เพื่อให้เวอร์ชันใหม่มีประสิทธิภาพมากขึ้น อย่างไรก็ตามเนื่องจากยังคงมีผู้ใช้งานเวอร์ชันเก่าจำนวนมาก และโมดูลไลบรารี่ต่าง ๆ ยังไม่รองรับกับเวอร์ชันใหม่ ดังนั้นการจะเปลี่ยนไปใช้งานเวอร์ชันใหม่ในทันทีจึงเป็นเรื่องที่เป็นไปได้ยาก โดยเฉพาะโครงการที่มีขนาดกลางและขนาดใหญ่ จึงทำให้ยังคงมีการสนับสนุนและการแก้ไข bugs ต่าง ๆ ของเวอร์ชัน Python 2.x ต่อไปอีกสักพัก

ดังนั้นสำหรับผู้ที่เพิ่งเริ่มต้นศึกษาการเขียนโปรแกรมด้วยภาษา Python ผู้เขียนจึงขอแนะนำให้ตัดสินใจเลือกเวอร์ชัน Python 3.x ไปเลย เนื่องจากเวอร์ชัน Python 2.x จะไม่มีการเพิ่มเติมฟีเจอร์และฟังก์ชันใหม่ใด ๆ และจะได้รับการสนับสนุนไปจนถึงวันที่ 1 เดือนมกราคมปี 2020 เท่านั้น ส่วน Python 3.x จะมีการพัฒนาฟีเจอร์และฟังก์ชันใหม่เพิ่มเติมอีกในอนาคต ส่วนโมดูลและไลบรารีต่าง ๆ ในปัจจุบัน สามารถรองรับการทำงานของเวอร์ชัน Python 3.x ได้แล้ว นอกจากนั้นผลแบบสอบถามจาก Python Developers Survey 2018 รายงานว่านักพัฒนาได้ทำการได้เปลี่ยนมาใช้เวอร์ชัน Python 3.x ถึง 84% แล้ว

 

Hello, world with Python

สำหรับก้าวแรกของการเข้าสู่โลกของการเขียนโปรแกรมหรือการเรียนเขียนโปรแกรมภาษาใหม่ สิ่งหนึ่งที่ถือได้ว่าเป็นธรรมเนียมปฏิบัติก็คือการให้คอมพิวเตอร์แสดงประโยค “hello, world” ผ่านทางหน้าจอ ด้วยเหตุผลเพราะว่าเป็นโปรแกรมที่มีขนาดเล็กมาก มีความง่าย และสามารถเขียนได้ทุกภาษา จึงเหมาะสำหรับมือใหม่ที่เพิ่งเริ่มต้น เพื่อทำความคุ้นเคยกับกระบวนการเขียนโปรแกรมเพื่อสั่งงานคอมพิวเตอร์ นอกจากนั้นยังเป็นการตรวจสอบให้แน่ใจว่าโปรแกรมที่ได้ถูกติดตั้งเพื่อใช้ในการเขียนโปรแกรมมีการทำงานอย่างถูกต้อง

สำหรับการเขียนโปรแกรม hello, world ด้วยภาษาโปรแกรม Python ในบทความนี้ผู้อ่านไม่จำเป็นต้องติดตั้งโปรแกรมใหม่ใด ๆ โดยสามารถทำตามขั้นตอนง่าย ๆ ได้ดังนี้

1) เปิดโปรแกรมเว็บบราวเซอร์และเข้าไปที่หน้าเว็บไซต์หลักทางการ https://www.python.org/

2) ให้คลิกไปยังปุ่มที่มีเครื่องหมาย  >_  จากนั้นระบบจะทำการรัน Interactive shell ขึ้นมาเพื่อใช้งาน

3) ขั้นตอนต่อไปให้พิมพคำสั่ง print ("hello, world") ที่บริเวณคอนโซลดังภาพ จากนั้นกดปุ่ม Enter เพื่อแสดงผลลัพธ์ เป็นอันว่าเราได้เข้าสู่โลกของการเขียนโปรแกรมด้วยภาษา Python แล้ว

ประวัติและที่มาของ hello, world

สำหรับประวัติและที่มาของการเขียน “hello, world” นั้น มาจากหนังสือการเขียนโปรแกรมด้วยภาษา C ที่มีชื่อว่า The C Programming Language เขียนโดย Brian Kernighan และ Dennis Ritchie ซึ่งเป็นนักวิทยาศาสตร์คอมพิวเตอร์ที่ Bell Labs หนังสือเล่มนี้ตีพิมพ์เวอร์ชันแรกในปี 1978 และเป็นหนังสือทางด้านการเขียนโปรแกรมที่มียอดขายสูงสุดตลอดกาล ทำให้มีอิทธิพลต่อการเขียนโปรแกรมของนักพัฒนาซอฟต์แวร์ในปัจจุบัน ในหนังสือเล่มนี้ได้แนะนำเกี่ยวกับการเรียนเขียนโปรแกรมไม่ว่าจะเป็นภาษาโปรแกรมใด สำหรับการเขียนโปรแกรมแรก คือการสั่งให้คอมพิวเตอร์พิมพ์ข้อความว่า hello, world โดยมีข้อความในหนังสือดังนี้

สังเกตคำว่า hello, world เป็นตัวอักษรตัวเล็กและไม่มีเครื่องหมาย exclamation mark (!) ตามหลัง

แหล่งที่มา : https://www.9experttraining.com
ผู้เขียนบทความ

Sarayut Nonsiri, PhD. 

Computer Scientist

 อ้างอิง

http://python-history.blogspot.com/2009/01/personal-history-part-1-cwi.html

https://docs.python.org/3/faq/general.html#why-is-it-called-python

Michal Jaworski and Tarek Ziade, Expert python programming, 2nd edition, PACKT, 2016

Brian Kernighan and Dennis Ritchie, The C Programming Language, Prentice Hall, 1978

แนะนำหลักสูตร Python Programming

เรียนรู้แนวคิดการเขียนโปรแกรมเพื่อสั่งงานคอมพิวเตอร์ หลักภาษาและไวยากรณ์ของภาษา Python

Python Programming Course (18 Hrs.) 

https://www.9experttraining.com/python-programming-training-course