การออกแบบภาษา C เข้าลักษณะภาษาเฉพาะกิจ ผู้ออกแบบ คงไม่ได้คาดว่า มันจะเป็นที่นิยมมากในเวลาต่อมา ดังนั้นเป้าหมายตอนออกแบบคือเน้น Productivity มากกว่าเน้นความสวยงาม ดังนั้นภาษา C จึงดูค่อนข้างยากเมื่อเทียบกับภาษาอื่นๆ ภาษา C มีจุดเด่นอยู่หลายข้อ แต่ที่กล่าวว่าเป็นจุดเด่น แต่ละข้อนั้น บางคนก็ว่า มันคือจุดด้อยต่างหาก ผมว่ามันขึ้นอยู่กับรสนิยมของผู้ใช้งานเหมือนกัน
ภาษา C มีจุดเด่น คือ สั้น กะทัดรัด ภาษา C มีรูปแบบย่อทำให้เขียนสั้นลงอยู่มาก ซึ่งข้อดีก็คือ สั้นดีครับ แต่ข้อเสีย ก็คือ ซับซ้อน อ่านยาก เวลาอ่านก็เหมือนกับการแก้สมการ คุณอาจจะบอกว่า คุณเลือกที่จะเขียนแบบไม่ซับซ้อนก็ได้ แต่พูดยากครับ คุณไม่เขียน แต่คนอื่นเขาเขียนครับ ถ้าคุณไม่เรียนรู้เสียเลย คุณก็อ่าน Code คนอื่นไม่รู้เรื่อง และการใช้ วงเล็บปีกกา ซึ่งดูคล้ายกับวงเล็บธรรมดา เวลาเขียนโปรแกรมก็สับสนพอสมควร จุดอ่อนอีกจุดหนึ่งที่สำคัญของภาษา C ก็คือ ภาษา C มองทุกอย่างเป็น Case Sensitive ทำให้เขียนโปรแกรมแล้วหลงเรื่อง Case เป็นประจำ
จุดเด่นที่สุดของภาษา C คือการรองรับ pointer นั้นอาจจะมองได้ว่าคือจุดอ่อนที่สุดของภาษา C ทำไมถึงเป็นเช่นนั้น
pointer คือความสามารถที่ภาษา อนุญาตให้เราสามารถอ่านเขียนหน่วยความจำได้โดยตรง ซึ่งประสิทธิภาพสูงมาก (สูสีกับภาษา Assembly) เปรียบได้กับเราเปิดร้านขายของชำ แล้วบอกลูกค้าว่า เพื่อความรวดเร็ว ไปหยิบของเองเลย แล้วมาจ่ายเงินก็แล้วกัน ซึ่งวิธีนี้เร็วมากครับ ลูกค้าไม่ต้องรอเราเป็นผู้หยิบให้เลย เขาหยิบได้เอง แต่ความสะดวกนี้ ก็ต้องแลกครับ ถ้าลูกค้าคนนั้นเมา เดินเตะของพังหมด หรืออาจจะขโมยด้วยซ้ำ ยุ่งมากครับ โดยความเห็นส่วนตัวแล้ว ผมว่าจุดนี้มีผลเสียร้ายแรง โปรแกรมที่เขียนด้วยภาษา C ส่วนมากแล้ว ถึงแม้จะคอมไพล์ผ่านแล้ว น้อยโปรแกรมครับ ที่จะทำงานได้โดยไม่รวนระบบ เวลาเขียนโปรแกรมภาษา C ต้องเผื่อว่าการ debug โปรแกรมไว้ให้มาก
อีกปัญหาหนึ่ง ก็คือตัวของภาษา C ไม่มีตัวจัดการจองหน่วยความจำในตัวเอง เมื่อเวลาเราต้องการจองหน่วยความจำแบบ Dynamic ภาษา C ทำ wrapper เพื่อติดต่อกับ OS เพื่อขอจองหน่วยความจำโดยตรง ปัญหาก็คือ การติดต่อกันระหว่างโปรแกรมของเรากับ OS เป็นไปอย่างหลวมๆ ถ้าโปรแกรมลืมบอก OS ว่าเลิกจองหน่วยความจำดังกล่าว หน่วยความจำนั้นก็จะถูกจองไปเรื่อยๆ เราจะเห็นเครื่องคอมพิวเตอร์ทำงานได้เร็วในตอนเช้า แต่พอตกบ่ายก็ช้าลงจนทำงานไม่ไหว จนสุดท้ายต้อง boot ใหม่ สาเหตุหลักของปัญหานี้คือ สิ่งที่เรียกว่าหน่วยความจำรั่ว หรือ Memory Leak ก็เรื่องจองแล้วลืมเอาคืนนั่นแหละครับ
ภาษาเคย C ถูกใช้เป็นบทพิสูจน์ว่าคุณเป็นโปรแกรมเมอร์ระดับดีหรือไม่ ถ้าโปรแกรมเมอร์คนไหน เขียนภาษา C ไม่ได้ เขาจะดูถูกเอา ภาษา C จึงดูเป็นของโก้เก๋ เอาไปคุยข่มกันได้ ในยุคหนึ่งมีการกล่าวกันว่า ถ้าคุณเขียนภาษา C ไม่เป็น คุณไม่ใช่โปรแกรมเมอร์ที่แท้จริง แต่ผมว่า โปรแกรมเมอร์ที่แท้จริงตายไปเยอะแล้วครับ
เห็นผมบ่นภาษา C แต่คงต้องบอกก่อนว่า ผมรักภาษา C มากที่สุด ก็ผมโตมากับมันนี่ครับ วันนี้ภาษา C ก็เสื่อมความนิยมไปมากแล้ว ตั้งแต่ GUI OS อย่าง Windows เข้ามามีบทบาท ภาษา C ปรับตัวเองเข้ากับการเขียนโปรแกรมแบบ GUI ไม่ค่อยได้ จึงเสื่อมความนิยมไปเกือบหมด คงเหลือแต่การใช้งานบน UNIX เท่านั้นครับ ที่ยังคงพอใช้ภาษา C กันอยู่
Source Program
#include
#include
main()
{
clrscr();
printf("Mr.Songkran Phochan\n");
printf("Address : 150/2 M.11 T.Ladyai A.Meuang J.Samutsongkram 75000\n");
printf("Age : 18\n");printf("Height : 170\n");
printf("Weigh : 50\n");
printf("Phone Number : 0839548977\n");
getch();
return 0;
}