ทุกภาษาไม่ควรพยายามรวมคุณสมบัติทุกอย่างของภาษาอื่น ๆ
C ++ นั้นเป็นแอสเซมเบลอร์แมโครที่ซับซ้อนมาก มันไม่ใช่ (ในแง่ดั้งเดิม) ภาษาระดับสูงเช่น C #, Java, Objective-C, Smalltalk เป็นต้น
เป็นการดีที่มีเครื่องมือต่าง ๆ สำหรับงานที่แตกต่างกัน ถ้าเรามีค้อนเท่านั้นทุกอย่างจะมีลักษณะเหมือนตะปู ฯลฯ การมีภาษาสคริปต์มีประโยชน์สำหรับงานบางงานและภาษา OO แบบไตร่ตรอง (Java, Obj-C, C #) มีประโยชน์สำหรับงานประเภทอื่นและสุดยอด ภาษาเปลือยใกล้กับเครื่องที่มีประสิทธิภาพมีประโยชน์สำหรับงานประเภทอื่น (C ++, C, Assembler)
C ++ เป็นงานที่น่าทึ่งในการขยายเทคโนโลยี Assembler ไปสู่การจัดการความซับซ้อนในระดับที่น่าเหลือเชื่อและนามธรรมเพื่อทำให้การเขียนโปรแกรมมีขนาดใหญ่ขึ้นและมีความซับซ้อนมากยิ่งขึ้นสำหรับมนุษย์ แต่ไม่จำเป็นต้องเป็นภาษาที่เหมาะสมที่สุดสำหรับผู้ที่กำลังใกล้ถึงปัญหาจากมุมมองระดับสูงอย่างเข้มงวด (Lisp, Smalltalk, Java, C #) หากคุณต้องการภาษาที่มีคุณสมบัติเหล่านั้นเพื่อใช้การแก้ปัญหาของคุณให้ดีที่สุดขอขอบคุณผู้ที่ได้สร้างภาษาดังกล่าวเพื่อให้พวกเราทุกคนใช้!
แต่ C ++ สำหรับผู้ที่ไม่ว่าด้วยเหตุผลใดก็ตามจำเป็นต้องมีความสัมพันธ์ที่ดีระหว่างรหัสของพวกเขาและการทำงานของเครื่องพื้นฐาน ไม่ว่าจะเป็นประสิทธิภาพหรือไดรเวอร์อุปกรณ์การเขียนโปรแกรมหรือการโต้ตอบกับบริการระบบปฏิบัติการระดับล่างหรืออะไรก็ตาม C ++ เหมาะสำหรับงานเหล่านั้นมากกว่า
C #, Java, Objective-C ทั้งหมดต้องการระบบรันไทม์ที่ใหญ่กว่าและสมบูรณ์ยิ่งขึ้นเพื่อรองรับการทำงานของมัน จะต้องส่งมอบรันไทม์นั้นให้กับระบบที่มีปัญหา - ติดตั้งล่วงหน้าเพื่อรองรับการทำงานของซอฟต์แวร์ของคุณ และเลเยอร์นั้นจะต้องได้รับการบำรุงรักษาสำหรับระบบเป้าหมายต่าง ๆ ปรับแต่งโดย SANG OTHER LANGUAGE เพื่อให้มันทำงานบนแพลตฟอร์มนั้น และเลเยอร์กลางนั้น - เลเยอร์ที่ปรับได้ระหว่างโฮสต์ระบบและโค้ดของคุณ - รันไทม์นั้นเกือบจะเขียนด้วยภาษาเช่น C หรือ C ++ ซึ่งมีประสิทธิภาพเป็นอันดับที่ 1 ซึ่งการทำความเข้าใจการคาดการณ์ที่แม่นยำระหว่างการทำงานร่วมกันระหว่างซอฟต์แวร์และฮาร์ดแวร์ เข้าใจและจัดการเพื่อให้ได้ประโยชน์สูงสุด
ฉันชอบ Smalltalk, Objective-C และมีระบบรันไทม์ที่สมบูรณ์พร้อมการสะท้อน meta-data การรวบรวมขยะ ฯลฯ สามารถเขียนโค้ดที่น่าอัศจรรย์เพื่อใช้ประโยชน์จากสิ่งอำนวยความสะดวกเหล่านี้! แต่นั่นเป็นเพียงเลเยอร์ที่สูงกว่าบนสแต็กซึ่งเป็นเลเยอร์ที่ต้องพักบนเลเยอร์ที่ต่ำกว่าซึ่งท้ายที่สุดแล้วพวกเขาจะต้องนั่งบนระบบปฏิบัติการและฮาร์ดแวร์ และเราจะต้องใช้ภาษาที่เหมาะสมที่สุดสำหรับการสร้างเลเยอร์นั้น: C ++ / C / Assembler
ภาคผนวก: C ++ 11/14 ยังคงขยายขีดความสามารถ C ++ ต่อไปเพื่อรองรับ abstractions และระบบระดับสูงขึ้น เธรดการซิงโครไนซ์โมเดลหน่วยความจำที่แม่นยำและคำจำกัดความของเครื่องนามธรรมที่แม่นยำยิ่งขึ้นทำให้นักพัฒนา C ++ สามารถบรรลุ abstractions ระดับสูงซึ่งภาษาระดับสูงเหล่านี้บางภาษาเท่านั้นที่ใช้ในการมีโดเมนเอกสิทธิ์เฉพาะในขณะเดียวกัน ประสิทธิภาพของโลหะและการคาดการณ์ที่ยอดเยี่ยม (เช่นระบบย่อยรันไทม์น้อยที่สุด) บางทีสิ่งอำนวยความสะดวกในการไตร่ตรองอาจถูกเลือกให้เปิดใช้งานในการปรับปรุง C ++ ในอนาคตสำหรับผู้ที่ต้องการ - หรืออาจเป็นห้องสมุดที่จะให้บริการรันไทม์เช่นนั้น (อาจมีอยู่ตอนนี้หรือตอนเริ่มต้นด้วยการเพิ่ม)