Most popular

วันเสาร์ที่ 19 มีนาคม พ.ศ. 2554

อยากเก่งเขียนโปรแกรม อย่าใช้ภาษาที่ทำลายสมอง

จากประสบการเกือบ 10 ปี ผู้เขียนเป็นคนหลงไหลในการเขียนโปรแกรมมากพอดู สิ่งที่เจาะจงเป็นพิเศษก็คือตัวภาษา ผู้เขียนมักจะสนใจศึกษาเกือบทุกภาษา ไม่ว่าจะเป็น
Visual Basic , php , C# (.net) , Java , python , Object Pascal (Delphi) ,C++ ที่เคยหยิบมาใช้งานจริงๆ จังๆ เห็นจะมีอยู่ 4 ตัวคือ Visual Basic , php , C# (.net) ,  Object Pascal (Delphi) จึงรู้ว่าจุดเด่นจุดด้อยของแต่ละภาษาเป็นอย่างไร
แต่ผมจะมองตามหลักแนวคิด และการพัฒนาตัวเอง ไม่ได้เกี่ยวกับตัว Compiler เพราะ Compiler พัฒนาอยู่ตลอด แต่ภาษามันมีนิยามแห่งการเกิด เหมือนหลักปรัชญาที่ต่างกัน


ทุกภาษานั้นมีส่วนที่คล้ายกัน และส่วนที่ต่างกัน ส่วนที่คล้ายกันก็คือส่วนของ syntax หรืออักขระรูปแบบการเขียน เช่น การวน loop การใช้ expression if else หรือว่าจะเป็นการเขียน class การใช้ object instance ซึ่งเข้าไปอยู่ในเรื่องของเชิงวัตถุ หรือ OOP (Object Oriented Programming) ที่เราเรียกติดปากกัน
จากตัวภาษาที่ยกตัวอย่างด้านบน ที่ผู้เขียนได้ศึกษาและใช้งานมา เห็นว่ามีภาษา Visual Basic Version 6 และ python ที่จะต่างจากเพื่อน

กล่าวคือ VB6 นั้นเป็นภาษาแบบ Procedural มากกว่า การใช้หลักเชิงวัตถุนั้นค่อนข้างลำบากและเป็นไปอย่างไม่มีประสิทธิภาพ หมายความว่าการเขียนแบบ Procedural จะทำให้เขียนโปรแกรมง่าย เป็นการเขียนโปรแกรมส่วนย่อยๆ ออกไป และมีการใช้ Object มาตรฐานเท่านั้น ซึ่งทำให้มือใหม่ที่หัดเขียนนั้นชื่นชอบ และเขียนได้ง่าย (ผู้เขียนก็เริ่มต้นจาก VB6 เช่นกัน)
สามารถพัฒนาโปรแกรมได้อย่างรวดเร็ว แต่ในขณะเดียวกันจะทำให้ผู้พัฒนาโปรแกรมไม่พัฒนาตนเอง และไม่สามารถเข้าใจในหลักการเขียนโปรแกรมเชิงวัตถุได้ เห็นผลได้ชัดเจนจากการที่มีโปรแกรมเมอร์ VB6 บางส่วนนั้น ไม่สามารถเขียนและเข้าใจใน Visual Basic .Net ได้ จำเป็นต้องไปศึกษาเพิ่มเติมในเรื่อง OOP เพราะ VB.Net นั้นสามารถเขียนโปรแกรมเชิงวัตถุได้อย่างสมบูรณ์


ส่วน python นั้นเป็นภาษาที่แตกต่างจากพวกทั้งแนวคิด และ syntax เพราะเป็นภาษาสมัยใหม่ แนวคิดคือ "สิ่งที่คุณต้องทำอยู่แล้วไม่ต้องทำอีก" มี Compiler ที่ฉลาดมาก มีการเขียน Code ที่สั้นกระชับ มองผ่านๆจะไปเหมือนภาษารุ่นลุงอย่าง Perl

แต่ทั้ง VB6 และ python ต่างมีการทำงานของ Compiler ที่ช้าเหมือนกัน เนื่องจากมีอักขระและกฎเกณฑ์ในการเขียนที่น้อย Compiler จึงมีหน้าที่จัดการให้ทั้งหมด

แต่ถ้าถามว่าภาษาไหนทำลายสมอง ผู้เขียนหมายความว่าทำให้ผู้พัฒนาเคยตัว ในความเห็นส่วนตัวของผู้เขียนมองง่ายๆ คือ "ภาษาที่ไม่มีอักขระจบคำสั่ง (;)" ในที่นี้มีอยู่ 2 ภาษาคือ Visual Basic (All Version) และ python ผู้เขียนเห็นว่าการที่เราไม่ต้องใช้เครื่องหมาย ";" เมื่อจบคำสั่งผู้พัฒนาควรรู้และรอบคอบ และสามารถประหยัดบรรทัดได้ อย่างไรก็ตามการวางแผนในการพัฒนาโปรแกรมอาจเป็นสิ่งที่สำคัญกว่าภาษาที่ใช้ ภาษาที่บังคับให้ผู้พัฒนาต้องเขียนเป็นหลักการเชิงวัตถุนั้นยิ่งดี ทำให้ผู้พัฒนารุ่นใหม่ๆ มีประสบการณ์และเข้าใจมากขึ้น เช่น C# หรือ Java แต่ผู้เขียนคงไม่แนะนำให้ไปลุยกับภาษาอย่าง C++ เพราะท่านจะต้องผจญภัยกับความยุ่งยากเกี่ยวกับ type ของข้อมูล อาจจะทำให้มือใหม่หลงทาง ถอดใจไปเสียก่อน

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

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