TechRepublic的一名会员Oleg F(有经验的C++开发人员)问我对C++的现状和未来的看法,此外,他还希望了解C++如何适应.NET世界、Web开发和云计算,下面是我的答复。
我认为对于大多数一般开发人员而言,C++作为一门通用编程语言将很快从他们的编程语言中消失,但C++仍然会得到大量的使用,特别是操作系统层的工作和底层开发(如嵌入式设备和驱动开发)、某些高性能应用程序和那些如果使用.Net或Java开发显得过于沉重的应用程序(如办公套件)。有些开发人员将继续使用C++开发应用程序,但对于一般开发人员而言,C++确实很头痛。 Visual C++ 本地并行编程:状态管理
大多数开发人员都面临着性能问题,当你解决掉性能问题后,在大多数情况下,C++仍然是相当有吸引力的。
我接触过的少部分C++开发人员对于在.Net托管环境下使用C++对他们没有多少吸引力,这样使得C++丧失了许多用于Web开发的机会,除非你想在CGI模式下使用它,关于CGI有好消息(开销少,简单的概念模型)也有坏消息(应用程序被许多底层任务“感知”)。我所听说的是,在.NET CLR下,C++的速度也不行,以及其它一些本是C++的优势,结果在.NET CLR下也变成劣势了。 C++中随机存取文件的处理
并不是说C++短时间内就会消失,我看到C++正在加入传统的COBOL和FORTRAN语言,为那些使用超过50年的应用程序提供维护和扩展基础。此外,由于各种原因(熟悉程度、库支持、传统/习惯、文化等)有些新的开发项目将会启动,我认为它将会为这个即将死去的语言找回一点尊严。
我不想看到C++的未来结局很凄凉,我认为C++开发人员还有很大的潜力可挖,如果你是一名C++开发人员,我建议你坚持使用这门语言,就目前的薪资结构而言,我认为经验丰富的C++开发人员领到的薪水还是相当可观的,此外,由于C++的难度较高,并且学习它的人也比较少(目前高校也很少开设这门课程了),从长远来看,我预计C++开发人员相对.Net和Java开发人员更有就业保障和更好的补偿。
虽然C++在Web开发方面不可能很快成为主流,在桌面应用程序开发方面C++也不可能很快就销声匿迹,我认为C++在云计算的某些方面可能具有许多机会,对于某些项目(想想那些适合超级计算机的项目),云给C++开发人员提供了一个方法获得与网格计算相同的好处,但它的灵活性却更好,因此,我认为云计算会代替或作为网格及超级计算机的补充,并为C++创新提供了一个极好的机会。
注意我的大部分分析都是着眼于Windows世界,从我所看到的,*Nix开发社区仍然热衷于使用C/C++,担心Windows中C++开发机会逐渐变少的C++开发人员一定要看看*Nix开发。
我认为C++会慢慢消失,但它不会死,也不会成为一点都不重要的语言,虽然我知道现实生活中大多数开发人员都没有接触过C++,但许多开发人员肯定从学习它获得了许多受益。