C++诞生已经接近30年了,标准化也已经快10年了。在80年代末,90年代初至今的这段日子里,C++不断成熟,并成为主流。然后,几乎每隔5年,便会出现一种语言,声称源于C++,但比C++更好。这些语言有意无意地以C++替代者的姿态出现。先是Java,然后是C#,如今还有一个D语言。那么C++的替代者真的出现了吗?这些语言真能替代C++吗?回答这些问题,得先看看C++替代者应具备的条件。
要想知道C++替代者应具备的条件,先得看看C++有什么特点。C++的特点归结起来可以用两个字描述——全能。C++在所有软件开发领域几乎都有应用。是一种十足的全能语言。在C++之前,汇编和C都是不同时期的全能语言。C具备了高级语言的优越性,却不失汇编的灵活性。而C++则承袭了C的几乎所有的特性(实际上是兼容),但提供了更强大的抽象能力和软件工程优势。
从这条线路看到,在历史上,总会需要一种全能型的语言作为主流。因为从整体上来看,大规模一种全能型的语言,无论这种语言难用与否,都比分别在不同领域使用多种专用语言来得经济高效。
这样,便可以得出一个结论,C++的替代者必须至少拥有C++的所有核心特性,必须同样是全能型的语言。笼统地说,C++的继任者只应该在C++的基础上加东西,而不应该减东西。
这样看来,而Java和C#已经无需多说了,他们不可能成为全能型的语言。而D语言,从目前的特性来看,它砍掉了诸多C++的核心特性,比如多继承,指针和引用的差别等等。这些基础性的核心特性,尽管不是经常使用,而且比较复杂,但在关键的地方有无可替代的作用。作为全能型的语言,不应当在这些基础特性上有所偏废。因为在特定情况下无法实现任务的语言,是无法成为全能型的语言的。
另一方面,C++本身也在进步,大量更高级的编程技术将会纳入C++标准,C++将会更强大更全面。现在说谁会替代C++,就如同C语言开始流行时谈论它的替代者,还为时尚早。
分享到:
相关推荐
### C++ PV操作(生产者/消费者)简单实例解析 #### 概述 在多线程编程中,生产者-消费者问题是一个经典的同步问题。它描述了一组生产数据的线程(生产者)和一组消费这些数据的线程(消费者)。为了确保线程间的...
本讲义汇集旨在全面深入地介绍C++语言的核心概念和技术,帮助学习者从基础到高级逐步掌握这一强大的工具。 C++起源于C语言,由Bjarne Stroustrup在1979年设计并实现,它引入了类和对象的概念,从而引入了面向对象...
本篇将深入探讨如何使用C++的STL库以及线程库来实现多方程解决生产者-消费者问题。 首先,理解问题的基本结构至关重要。假设有一个缓冲区,生产者往里面添加产品,消费者从中取出产品。我们需要确保在任何时候,...
1. **模块化(Modules)**:C++ 17引入了模块的概念,这是对传统头文件系统的一种替代。模块可以提高编译速度,减少命名冲突,并通过封装实现更好的隔离。通过`export module`和`import`关键字,开发者可以创建和...
【尚硅谷2015C++全套视频】是一份针对C++编程语言的全面学习资源,旨在帮助初学者和有经验的程序员深入理解和掌握C++这一强大的编程工具。该视频教程可能涵盖了C++的基础概念、语法特性、面向对象编程、模板、STL...
《C++标准库(第二版)》是一本深入解析C++11标准库...无论你是C++初学者还是经验丰富的开发者,都能从中受益匪浅。通过阅读这本书,你将能够熟练地运用C++11的新特性,以及STL的强大功能,写出更加优雅和高效的C++代码。
### C++初学者入门指南第六篇:深入了解函数与参数传递 在C++的学习旅程中,掌握函数及其相关特性是至关重要的一步。本章节将聚焦于三个核心概念:引用、函数重载以及缺省参数,它们共同拓展了函数的灵活性与功能。...
该书是不可替代的经典,任何C++开发者都应该读一读。 《C++ Primer 中文版》(第四版)是 stanley B. Lippman等人的著作,书中系统地介绍了C++的基本概念和应用,内容详细、实用,非常适合初学者和中级读者。该书的...
- **1.11 Acknowledgments 致谢**:感谢参与制定 C++11 标准的主要贡献者。 - **2. Lexical conventions 词法规则** - **2.1 Separate translation 分离式翻译**:介绍了如何将源代码分割成多个独立的编译单元...
而对于经验丰富的开发者,它则是一个轻量级的替代方案,可以在不需要大型IDE的情况下进行C和C++的开发工作。尽管它可能没有现代IDE那么强大,但它的简洁性和易用性使其在某些场合下仍受欢迎。不过,值得注意的是,...
C++20引入的模块系统旨在替代之前头文件和包含指令的使用,提供更清晰的代码组织方式。模块能够隐藏内部实现的细节,只暴露必要的接口,有助于减少编译时间和代码的重复编译问题。模块还允许跨越编译单元进行更好的...
《C++程序设计语言》是由C++语言的创造者Bjarne Stroustrup所撰写的经典著作。该书作为学习C++语言的重要参考资料之一,深受广大程序员的喜爱。本书为第三版,详细介绍了C++语言的各种特性和编程技巧,并涵盖了C++...
条款2和3则讨论了预处理器和宏定义的替代方案,以及const修饰符的正确使用,这些都是编写安全和高效C++代码不可或缺的知识点。 在C++中,const是修饰符中非常重要的一个,它可以用来声明变量、函数参数、返回类型、...
2. **Essential C++**:这本书通常作为C++初学者的入门读物,讲解了C++的基础知识,包括变量、类型、控制结构、函数、数组、字符串、类和对象等。特别强调了C++与C的区别,以及面向对象编程的基本概念。 3. **...
C++,作为一门面向对象的编程语言,自诞生以来便以其高效、灵活的特性,在软件开发、系统编程、游戏开发等多个领域占据了不可替代的地位。以下将详细阐述C++的关键知识点,以及其在现代信息技术领域的应用。 ### ...
- 注意标准头文件的更改:在C++中,标准头文件已经不再使用.h后缀,例如已经被替代。 对于那些想要从C语言转到C++的学习者来说,理解C++的基本概念、掌握其与C语言的区别、学会使用面向对象的特性以及熟悉标准模板...
其他可以选择的替代品还有C语言的pcre库,Qt中的QRegExp类等。 5、矩阵计算:MTL 自1995年以来,C++在科学计算领域当中取得了巨大的突破。这主要归功于template技术的高级应用,使得C++在科学计算的性能方面取得...
在C和C++编程语言中,`scanf`函数是一个用于从标准...同时,你还将了解到C/C++基本的输入输出操作,这对于任何C/C++初学者来说都是基础知识。通过实践和理解这些概念,你可以构建出更复杂的程序,并逐步提升编程技能。