C,C++และ C# ต่างกันยังไง? กูรูมีคำตอบ

C, C++ และ C# ต่างกันยังไง ?
ทุกคนที่หัดเขียนโปรแกรมใหม่ๆ อาจจะสับสน สงสัยว่า C C++ C#  เนี่ย คืออะไรแล้วมันต่างกันตรงไหน? มันไม่เหมือนกันเหรอ ? คำตอบคือไม่เหมือนครับ เพียงแต่มีส่วนเกี่ยวกันคือ C++ คือภาษาที่ถูกพัฒนาต่อมาจากภาษา C อีกทีหนึ่ง ภาษา C# ก็เช่นกัน แต่ละอันก็มีจุดเด่น จุดด้อย เอกลักษณ์ของตน แล้วแต่ว่าโปรแกรมที่เขียนนั้นจะมีจุดมุ่งหมายอย่างไร ถ้าอธิบายอย่างง่ายๆสั้นๆ ก็คือ
ในแรกเริ่มนั้นมีภาษา C เกิดขึ้นมาก่อน ต่อมาเมื่อการเขียนโปรแกรมแบบ OOP (Object-Oriented Programming) พัฒนา และเริ่มเป็นที่นิยมขึ้นมา จึงเกิดภาษา C++ ขึ้นมาเพื่อใช้กับแนวคิดการเขียนโปรแกรมแบบ OOP เนื่องจาก C++ นั้นเกิดขึ้นมาจาก C ดังนั้นจึงทำให้ การเขียนโปรแกรมเป็นC++ ก็สามารถเขียนโปรแกรมแบบ C ได้ในขณะเดียวกัน ผมแนะนำว่าเริ่มต้นศึกษา C ไปให้พอเข้าใจหลักการเขียนโปรแกรมเบื้องต้นก่อน แล้วค่อยไปศึกษา C++ ต่อก็ดีครับ เพราะคำสั่งพื้นฐาน เช่น พวก if-else while ยังไงก็ใช้หลักการคิดคล้ายๆกันทุกภาษา
*C++
และ C# เป็นภาษาแบบ OOP ทั้งคู่
ส่วนภาษา C# นั้น เกิดขึ้นมาทีหลัง ในช่วงที่ Java เริ่มได้รับความนิยม จุดเด่นของ C# คือ การที่มันสามารถนำไปคอมไพล์ใช้ในอุปกรณ์ได้หลากหลายระบบปฏิบัติการ เช่น มือถือ ไม่ต้องเขียนโปรแกรมขึ้นมาใหม่อีกรอบ โดย C# นั้นถูกคิดขึ้นมาโดย Microsoft เพื่อเอามาแข่งกับ Javaทั้งนี้แต่ละอันก็มีข้อดี จุดเด่นแตกต่างกันไป เช่น ไม่ใช่ว่า C++ จะดีกว่า C ไปเสียทุกอย่างแม้จะถูกพัฒนาขึ้นมาจาก C ก็ตาม อย่างเช่น C นั้นสามารถจัดการแก้ไขโปรแกรมได้ง่ายกว่า และ สามารถทำงานได้ไวกว่า C++ เนื่องมาจากโครงสร้างของไวยากรณ์ มีความซับซ้อนน้อยกว่า เป็นต้น
การเลือกใช้นั้นก็ตามแต่ว่างานที่ต้องการเขียนโปรแกรมนั้น มีจุดมุ่งหมายอะไร
หลักๆนิยมในการใช้ก็เช่น
C : การเขียนไดรเวอร์ฮาร์ดแวร์, โปรแกรมที่ต้องการความเสถียรสูง, การเขียนโปรแกรมระดับ Kernel, ควบคุม Micro ControllerC++ : โปรแกรมใหญ่ๆที่ต้องจัดการข้อมูลขนาดใหญ่, โปรแกรมที่ต้องการความเร็วสูง
C# : การสร้างเกม, เขียนโปรแกรมจัดการ Server/Client, โปรแกรมที่ต้องการความสวยงามในด้านการใช้งาน, พัฒนา script บนเว็บไซต์
 
*
ข้างต้นนั้นคือ งานที่นิยมใช้เท่านั้น ไม่ใช่ว่าจะไม่สามารถใช้ C/C++ เขียนเกมได้เลย เพียงแต่ C# ได้รับความนิยมกว่าเท่านั้น Game Engine หลายตัวก็พัฒนาจาก C++ เพราะสามารถทำงานได้ไวกว่า แต่ในเวลาพัฒนาระบบเกมบางส่วนก็มีการใช้ C# ผสมเข้าไปเพื่อความสะดวก เหมาะสม ดังนั้นผมคิดว่าควรเป็นทั้งหมดแหละครับ แล้วเลือกใช้ให้ถูกได้ตามสถานการณ์
หากมีข้อสงสัย แนะนำ หรือต้องการเพิ่มเติมอะไรก็โพสต์ได้นะครับ ยิ่งความเห็นในด้านการนำไปใช้งานนี่ไม่ตรงกันอยู่แล้วครับ เพราะสามารถประยุกต์ใช้ได้หมด ตามความสามารถ แนวคิด และ จินตนาการ ขอบคุณที่นั่งอ่านจนจบครับ