`
caobihole
  • 浏览: 945891 次
文章分类
社区版块
存档分类
最新评论

C++的现状和未来

 
阅读更多

C++的现状和未来
作者:贾斯汀·詹姆斯
翻译:PurpleEndurer,2009-07-10 第1
分类:编程语言
标签:开发人员,C++,C/C++,编程语言,软件开发,软件/网站开发,Justin James

  来看看贾斯汀·詹姆斯为什么认为具有良好工作能力的C++开发人员有很大的潜力罢。

———————————————————————————————

  TechRepublic成员Oleg F(一名有经验的C++开发人员)询问我对C++的现在和未来的看法。此外,他需要C++如何适应.NET平台,网站开发,以及云计算的信息。我的回复如下:

  我认为对大多数开发人员来说,C++作为通用编程语言的时代正快速走向终结。C++仍然有许多用武之地,特别是操作系统级工作,低层工作(嵌入设备,设备驱动程序等等),某些高性能应用程序,而像.NET或Java这样的架空系统上的应用程序太大了(像一个办公软件套装)。一些开发人员仍然继续使用C++开发其它不太复杂的语言也能处理的应用程序。但对典型程序员而言,C++是要为极小改进而挠破头皮的东东。

  多数开发人员面临的性能问题不是转移到本地代码就能解决的那种问题;一旦你偏向性能,在大多数情况下C++是一个相当具吸引力的应用程序开发选择。

  我所讨论的一些开发人员说在.NET管理环境中使用C++不是特别有吸引力;这减少了许多在Web开发中使用它的机会,除非你想在CGI模式中使用它。关于CGI有好(开销小,简单概念模型)有坏(你的应用程序不得不留意许多更低级的任务)。就我所闻,在.NET CLR,C++丧失了速度优势以及许多让C++更有用的东西。

  这并不是说C++末路不远。我认为 C++ 加入了COBOL 和 FORTRAN 的行列,作为具有大量安装基数的传统语言,需要有人维护和扩展现存应用程序50年以上。另外,由于大量的原因,许多新的开发项目将用它来启动(熟悉,支持库,传统/习惯,文化,等等)。我也怀疑它会作为已“亡”语言(像COBOL)重拾荣耀,因为议论和宣传比非使用率少得多(也与COBOL类似)。

  我不想使C++的未来听起来令人感觉暗淡;如果有什么的话,我认为具有良好工作能力的C++开发人员有很大的潜力。如果你是C++开发人员,我建议你坚持用这个语言。你正在做的事情耀眼,或获得了与Web应用程序在主流出版物上的同样的关注吗?没有。但按当前薪水结构,我觉得有经验的C++开发人员将暂时拿到很丰厚的工资。另外,因为剩余的C++工作是高难度的,并且学习C++的人少了(现在的大学中教它不是很多),我希望C++开发人员能有更多的就业保障,和比 .NET 或 Java开发人员更好的长期补助。

  尽管在Web开发中C++任何时候都不大可能成为主流,并且用C++开发桌面应用程序也少于平时,但我认为C++在云计算的某些方面有许多上乘机会。对一些项目(想想那些很适合超级计算机的人),“云”给C++开发人员提供了一条路,来得到与网格计算相同的益处,但有更多的灵活性。这些项目和适合使用C++的开发人员的项目类型中有许多相互重叠的。因此,我认为云计算将会在许多项目中取代或补充网格和超级计算机,并提供了一个以崭新和创新的方法使用C++的极好机会。

  请记住,这些分析大部分的重点是Windows领域。就从我看到的来说,*nix开发社区仍然是非常倾向C/C++。 关心Windows中机会减少的C++开发人员一定要来看看* nix中的发展。

  我相信C++将慢慢隐退到后台,但它不会消亡也不会永远变得无足轻重。尽管我所知的绝大部分开发人从未在真实世界中接触过C++,但许多开发人员将会从学习它中受益,即使仅仅为了增进对包括Java,.NET和Ruby在内的各种语言的一些认知。

英文出处:http://blogs.techrepublic.com.com/programming-and-development/?p=1372&tag=nl.e055

The current state and future of C++
Author: Justin James
Category: Programming Languages
Tags: Developer, C++, C/C++, Programming Languages, Software Development, Software/Web Development, Justin James

Find out why Justin James thinks there is still great potential for C++ developers to do quite nicely for themselves.

———————————————————————————————

TechRepublic member Oleg F (an experienced C++ developer) asked for my thoughts on the “present and future” of C++. In addition, he wanted information on how C++ fits into the .NET universe, Web development, and cloud computing. Below is my response.

I believe the days of C++ as a general purpose programming language are quickly ending for most developers. There are still lots of great uses for C++, particularly for OS-level work, low-level work (embedded devices, device drivers, etc.), certain high-performance applications, and applications where the overhead of a system like .NET or Java would be too heavy (like an office suite). Some developers will continue to use C++ for applications that other, less complex languages can handle as well. But for the typical developer, C++ is a big headache for minimal gain.

The performance issues that most developers face are not the kinds of issues that moving to native code will resolve; once you take performance out of the equation, C++ is a fairly unattractive option for application development in most cases.

The handful of C++ developers that I’ve talked to say using C++ in the .NET managed environment is not particularly attractive to them; this takes away much of the opportunity to use it in a Web development capacity, unless you want to use it in the CGI model. There are good things about CGI (less overhead, simple conceptual model) and bad things about CGI (your application has to be “aware” of many more low-level tasks). From what I’ve heard, under the .NET CLR, C++ loses its speed, as well as many of the things that make C++ useful.

This is not to say that C++ is going away any time soon. I see C++ joining the ranks of COBOL and FORTRAN as a legacy language with a massive installation base and a need for people to maintain/extend existing applications for more than 50 years. In addition, a number of new development projects will be started in it for a variety of reasons (familiarity, library support, tradition/habit, cultural, etc.). I also suspect that it will pick up a reputation as a “dead” language (again, like COBOL), due more to a lack of buzz and hype than actual non-usage (also like COBOL).

I don’t want to make the future for C++ sound dismal; if anything, I think there is great potential for C++ developers to do quite nicely for themselves. If you’re a C++ developer, I suggest that you stick with the language. Are the things you’re working on flashy or get the same attention as Web applications in the mainstream publications? No. But with the current salary structures, I feel that experienced C++ developers will see very nice paychecks for some time. In addition, as the remaining C++ work is of higher difficulty and fewer people learn C++ (it isn’t taught as frequently in colleges these days), I expect C++ developers to have more job security and better compensation than .NET or Java developers over the long run.

While C++ in Web development is not likely to become mainstream any time soon and desktop application development in C++ becomes less common, I think there is a lot of upside opportunity for C++ in certain aspects of cloud computing. For some projects (think of ones that are well suited to supercomputers), the cloud offers C++ developers a way to get the same benefits of grid computing but with much more flexibility. There is a lot of overlap between those projects and the kinds of projects for which developers regularly use C++. As a result, I think cloud computing will replace or supplement grids and supercomputers in many projects and will provide an excellent opportunity to see C++ used in new and innovative ways.

《endurer注:any time soon:不久的任何时候
in certain aspect:在某方面》

Keep in mind that much of this analysis is focused on the Windows world. From what I see, the *Nix development community is still very C/C++ oriented. C++ developers who are concerned about dwindling opportunities in Windows should definitely take a look at *Nix development.

I believe that C++ will slowly fade into the background, but it will neither die nor will it ever become unimportant. While most developers I know have never touched C++ in a real-world environment, many developers would benefit from learning it, if only to gain some appreciation of various languages, including Java, .NET, and Ruby.

《endurer注:if only to即使仅仅因为》

If you have a programming question, e-mail it to me by clicking the Contact link at the top of the Programming and Development blog header.

J.Ja

Disclosure of Justin’s industry affiliations:Justin James has a working arrangement with Microsoft to write an article forMSDN Magazine. He also has a contract with Spiceworks to write product buying guides.

分享到:
评论

相关推荐

    电脑游戏的创意与实现-牌类的毕业设计说明书

    3.1牌类游戏的现状和未来发展 10 3.2 24点游戏简介 12 3.3运行环境 12 3.4系统需求 13 4概 要 设 计 14 4.1 24点游戏算法分析 14 4.1.1 24点游戏运算顺序 14 4.2 24点游戏的规则 16 5程 序 详 细 设 计 17 5.1主工具...

    基于c++实现的球球大作战游戏源码+操作说明.zip

    EasyX 是针对 C++ 的图形库,可以帮助 C 语言初学者快速上手图形和游戏编程。比如,可以用 VC + EasyX 很快的用几何图形画一个房子,或者一辆移动的小车,可以编写俄罗斯方块、贪吃蛇、黑白棋等小游戏,可以练习图形...

    计算机程序设计语言发展史和对程序设计语言未来的看法.docx

    的看法信息科学与工程通信一班比拉力江 买买提 20104055049 【摘要】 本文以自然辩证的观点探讨了汁算机语言的发展历程,运用自然辩证法的基本 理论、基本方法,系统分析了计算机语言的发展历史、现状和未来。...

    区块链技术原理与未来展望

    本文档讲述区块链来源,技术原理,优势与缺陷,现状与展望.

    基于VC的中小企业人事管理系.docx

    1.3 国内外相关研究的现状和未来发展 1 1.4 系统内容安排 2 2 中小企业人事管理系统相关技术 3 2.1 C/S架构 3 2.2 MVC模式 3 2.3 Microsoft Visual C++开发工具 3 2.4 SQL server 2010数据库 3 3 中小企业人事管理...

    基于OpenCV的计算机视觉技术研究与实现本科毕业论文

    技术的基础上,针对于运动目标检测与跟踪在未来的发展,提出了一套基于 OpenCV 视 觉库的检测、跟踪视线范围内动态物体的检测系统,以达到模拟人眼的识别、追踪、分 类功能。动态目标检测与跟踪作为计算机视觉领域的...

    《程序员》杂志2012年第7期

    (4)异构系统架构编程的现状和展望——AMD副总裁Leendert van Doorn专访 管理 (1)轻敏捷——开放平台的制胜之道 本文结合轻敏捷方法的三条原则,讲述敏捷团队所需要完成的工作、核心实践及所依赖的工具。 ...

    2007-2008中国IT应用技术蓝皮书

    以大量的图表和详实的数据,既从多个角度详尽分析了PC服务器、存储、网络、.NET、Java、数据库、企业信息化应用技术的现状,也分析了广大技术开发人员对这些技术的态度及未来趋势的选择,还分析了ERP、CRM、SCM、OA...

    网络安全工程师.docx

    信息已经成为各企事业单位中重要资源,也是一种重要的"无形财富",在未来竞争中谁获取信息优势,谁就掌握了竞争的主动权。信息安全已成为影响国家安全、经济发展、社会稳定、个人利害的重大关键问题。 就业职位 现在...

    人工智能专业前景怎么样.pdf

    三,未来的就业⽅向和前景 计算机科学与技术专业的毕业⽣更多倾向于软/硬件系统设计、开发和维护⼯作,计算机应⽤系统的开发和管理⼯作;软/硬 件系统的⽣产和营销⼯作或信息采集分析⼯作。智能科学与技术专业的毕业...

    C#运用WPF实现游戏动画制作

    那么从今天开始,我将带领大家一步一步的学会如何使用纯C#开发WPF/Silverlight游戏引擎,过程中我会尽量的开源,并对相关小技巧进行解释和介绍,比较复杂的算法原理我会给大家一条绝对可行的思路,这里只想客观的...

    基于JavaWeb的校园管理系统设计与实现项目源码

    根据本系统的研究现状和发展趋势,系统从需求分析、结构设计、数据库设计,在到系统实现,分别为前端实现和后端实现。论文内容从系统描述、系统分析、系统设计、系统实现、系统测试来阐述系统的开发过程。本系统力求...

    学生成绩管理系统--数据库课程设计.doc

    同时,减轻了学院教务人员管理的工作量, 缩小开支,提高工作效率和准确率,使其变得更具有条理性,科学性,为教育行业做出 了巨大的贡献,也为今天的民办教育在未来市场的竞争力有所提高。 学生成绩管理系统使用了...

    gix:GnuCOBOL的IDE和平台,提供本机调试器,ESQL和HTTP REST服务

    现状,发展和未来计划Gix-IDE正在“大多数情况下工作”,但它可能有许多隐藏在表面以下(或不是真正在下面)的错误,并且缺少一些功能。 我想改进它,使其更稳定并添加更多功能(例如,重新集成macOS和Linux支持-...

    学生成绩信息管理系统论文 JSP 完整版

    MySQL服务器端是多线程的,为客户端提供了不同的程序接口和链接库,如C、C++、Java、Perl、PHP、Tcl等,也提供了简单的管理工具,如mysqladmin,mysql等。 正因为MySQL的源码是公开的,使得我们有机会从源码级,更...

    rsamatlab代码-QuickGoThru:快速通

    年,未来的科技业展开新革命: 手机应用程式(如行动支付、外送平台app、银行app) 云端运算(IaaS、PaaS、SaaS) 但其实云端基础上,仍然需要硬体伺服器与网路设备,所以网页伺服器、资料库伺服器、档案伺服器、邮件...

    新版Android开发教程.rar

    Android Android Android Android 应用现状 � 设备商: lenovo 、琦基、戴尔、三星、摩托罗拉、华为、英特尔、 Kogan 、索爱、华硕、多普达、爱可 视 、 Archos 等。 � 制造商: HTC 、 Telstra 等。 � 手机设计...

Global site tag (gtag.js) - Google Analytics