ภาษาโปรแกรม C++
ภาษาต่อยอดจาก C ที่นำเสนอแนวคิดคลาสและออบเจ็กต์ รวมคุณสมบัติของ C และภาษาระดับสูง จึงถือเป็นภาษาระดับกลาง เมื่อสร้างขึ้นถูกมองว่าเป็น "C ที่มีคลาส" เนื่องจากความคล้ายคลึงกับ C
ภาษาโปรแกรม C#
C# (อ่านว่า C Sharp) เป็นภาษาโปรแกรมทั่วไปที่พัฒนาโดย Microsoft เพื่อทำงานบนเฟรมเวิร์ก .NET สำหรับพัฒนาแอปพลิเคชันบนระบบปฏิบัติการของตน เป็นภาษาเชิงวัตถุที่มีคุณสมบัติเช่น object-oriented, statically typed, decorative, multiparadigm
ทั้งสองภาษานิยมใช้งานและมีความคล้ายคลึงบ้าง จุดแตกต่างสำคัญมีดังนี้:
| คุณสมบัติ | C++ | C# |
|---|---|---|
| การคอมไพล์ | โค้ด C++ จะถูกคอมไพล์เป็นโค้ดระดับเครื่อง (machine code) | โค้ด C# จะถูกคอมไพล์เป็นโค้ดกลาง (CLR - Common Language Runtime) |
| แพลตฟอร์ม | คอมไพล์และใช้งานได้ทุกแพลตฟอร์ม เนื่องจากทำงานบนฮาร์ดแวร์โดยตรง | เฉพาะ Windows เป็นหลัก น้อยมากที่ใช้บนแพลตฟอร์มอื่น |
| การจัดการหน่วยความจำ | ไม่รองรับการจัดการหน่วยความจำอัตโนมัติ โปรแกรมเมอร์ต้องทำเอง (delete object เพื่อปล่อยหน่วยความจำ) | มีระบบจัดการหน่วยความจำอัตโนมัติ (Garbage Collector) ดูแลให้ |
| Pointers | ใช้งาน pointers ได้ทุกส่วนในโปรแกรม | ใช้งาน pointers ได้เฉพาะในโหมด unsafe เท่านั้น |
| ความง่ายในการทำงาน | ต้องเข้าใจแนวคิดลึกและมีฟีเจอร์ซับซ้อน | ง่ายกว่า เนื่องจากมีลำดับชั้นคลาสที่ชัดเจนและเข้าใจง่าย |
| ประเภทภาษา | ภาษาระดับต่ำ (low-level) และเชิงวัตถุ | ภาษาระดับสูง (high-level) และเชิงวัตถุ |
| มี primitive data types จึงไม่ใช่ OOP แบบบริสุทธิ์ | เป็นภาษา OOP แบบบริสุทธิ์ (Pure OOP) | |
| การประยุกต์ใช้ | ใช้ใน console applications, system programming, game engines | ใช้พัฒนา mobile apps, Windows apps, web services |