“Python” เหรอ ทำไมไม่ “C”


ก่อนหน้าที่เราจะเริ่มทำ “CodeLoma” คำถามที่เราเจอบ่อยคือ ทำไม? เลือกให้น้องๆ เขียน Python ทำไมไม่ให้น้องเรียนภาษา “C” วันนี้ เราจะมาเล่าให้ฟัง

ในอาชีพ Programmer ที่เขียนโปรแกรมมาตั้งแต่ พ.ศ. 2535 เรากล้าบอกว่า…. ไม่มีภาษาอะไรที่ดีที่สุดหรอก
มีแต่ภาษาที่เหมาะสมที่สุด ในเวลาที่ถูกต้อง เท่านั้นเอง

ในงานเขียนโปรแกรมจริงๆ เมื่อเราเขียนแบบอาชีพ เราจะไม่ได้ใช้เพียงภาษาใด ภาษาหนึ่ง เพราะเราอาจจะเจอข้อจำกัดของภาษาได้ ดังนั้นแม้แต่การเขียนโปรแกรม เราจึงจำเป็นต้องศีกษาหลายภาษาตลอดเวลา

แล้วทำไม CodeLoma จึงเลือกภาษา Python มาให้สำหรับผู้ที่ไม่มีประสบการณ์ด้านเขียนโปรแกรมมาก่อน ทำไมไม่เลือกเป็นภาษา C แบบเท่ๆ ไปเลย วันนี้ เราจะมาเปรียบเทียบให้ดูกันครับ

ข้อดีของภาษา Python เมื่อเทียบกับ C

เขียนสั้นกว่า และอ่านได้ง่าย

ภาษา Python ใช้โครงสร้างภาษาที่ใกล้กับภาษามนุษย์ ทำให้คนที่ไม่มีความรู้ด้านเขียนโปรแกรมมาเลย สามารถทำความเข้าใจทักษะการเขียนโปรแกรมได้ง่ายกว่า เช่น หากเราต้องการพิมพ์คำว่า “Hello” เราก็จะใช้แค่คำว่า print(“Hello”) ในขณะที่ C ต้อง #include แล้วก็ต้องสร้าง main() ซึ่งซับซ้อนกว่ามาก

มีไลบารี่ และโมดูลสำเร็จรูปเยอะ

จุดสำคัญของ Python คือมีสังคมนักพัฒนาขนาดใหญ่ ที่สร้าง ไลบารี่เสริม ที่ช่วยคำนวณซับซ้อนได้ โดยที่เราไม่จำเป็นต้องเริ่มต้นจาก 0 เช่น NumPy, Pandas, Matplotlib ทำให้เราสามารถสร้างโปรแกรมทางวิทยาศาสตร์ AI หรือ Web ได้ง่ายมาก โดยไม่ต้องเริ่มสร้างเองทั้งหมด

ไม่ต้องจัดการหน่วยความจำเอง

Python มี Garbage Collector จัดการหน่วยความจำอัตโนมัติ ในขณะที่ C ต้อง malloc และ free เอง

เป็น Multi Platform

หมายถึง ตัวมันสามารถเขียนโปรแกรมครั้งเดียว แล้วนำไปทำงานกับระบบปฏิบัติการได้หลากหลาย ไม่ว่าจะเป็น Windows, macOS, Linux โดยแทบไม่ต้องแก้ไขอะไรเลย

ข้อเสียของภาษา Python เมื่อเทียบกับ C

ช้ากว่า C

ภาษา Python เป็นภาษาที่เราเรียกว่า Interpreted คือ ใช้การแปลทุกครั้งที่ทำงาน ซึ่งต่างจากภาษา C ที่ต้องมีการ Compile ให้พร้อมทำงานก่อนเริ่มใช้

ประสิทธิภาพยังด้อยกว่า C ในงานบางประเภท

เช่น หากเราใช้การเขียนโปรแกรมกับอุปกรณ์ Embedded หรือการทำงานแบบ Realtime ภาษา C จะยังสามารถทำงานได้ดีและรวดเร็วกว่า Python

เข้าถึง Hardware ได้ไม่ลึกเหมือน C

ภาษา C สามารถเข้าถึงข้อมูลระดับ Bit ได้ รวมถึงการทำงานกับหน่วยความจำโดยตรง หากเขียนโปรแกรมเชิงลึก เรายังสามารถเขียนโปรแกรมภาษา C ร่วมกับภาษา Assembly ในการเชื่อมต่อตรงกับอุปกรณ์ได้อีกด้วย

ต้องมีตัวแปลภาษาติดตั้งในเครื่องก่อนทำงาน

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

แล้วแบบนี้ เราควรเริ่มด้วยภาษาอะไร ?

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

ในช่วงเวลาที่เขียนโปรแกรมมา เราพบว่า มีการสร้างภาษาใหม่ และมีภาษาที่สูญหายไปตลอดเวลา

การอยู่ในวงการ Development จึงต้องมีการพัฒนาตัวเองอยู่ตลอดเวลา มากกว่า การยึดมั่นกับภาษาใด ภาษาหนึ่ง

ดังนั้น หากวันนี้ คุณไม่เคยเขียนโปรแกรมมาก่อนเลย Python จึงเป็นตัวเลือกที่ดีที่สุดในการศึกษาเริ่มต้น แต่เมื่อเขียนได้แล้ว คุณควรเริ่มศึกษาภาษาอื่นๆ ควบคู่ไปด้วย เพราะเชื่อเถอะว่า ภาษาเดียว ไม่สามารถรองรับงานได้ทุกรูปแบบที่คุณต้องการ