C ++是否仍然主动用于通用开发?

时间:2010-03-03 18:23:07

标签: c++

  

可能重复:
  Which sector of software industry uses C++?

C ++多年来一直是关键任务高性能开发的圣杯。但是,在过去的10年里,似乎很多开发世界已经转向Java和C#。我的问题是,C ++是否有效地降级到嵌入式系统,OS,浏览器和其他特殊用途的开发?我是否应该让这个技能组成为VB 6以及其他不再显示市场需求和价值水平的技能组合的方式?我喜欢C ++并希望更新我的知识,但我甚至不知道从哪里开始尝试将它应用于今天的常见业务问题。

问候。

14 个答案:

答案 0 :(得分:12)

首先,我怀疑任何人都可以给出一个明确的答案 - 没有办法确切地说出任何特定语言真正使用了多少。您可以测量的几乎任何东西都是次要测量,例如有多少人使用该语言宣传工作。问题在于,这往往会显示相对较新的语言,其主导程度远远大于实际语言。

那就是说,我的信念如下。曾经有一段时间,C ++是该领域的热门新语言,当它占据市场主导地位时就出现了泡沫。这个泡沫很久以前就已经萎缩了。从那以后,C ++的使用一直在增长,但市场一直在增长(相当快),因此它在相对基础上萎缩。

虽然招聘广告等大多数辅助措施都没有出现这种情况,但有几个原因。其中一些显而易见的包括:

  1. 许多生产C ++的团队现在已经有多年“安顿下来”,因此周转率相对较低。
  2. 现在已经确定了它的使用位置,所以职位往往由内部促销活动填补。
  3. 还有另一种效果我几乎不愿提及,但无论多少人喜欢它都是如此:程序员和经理都对“新”而不是有效感到兴奋。这导致了大量的崇拜者,他们不断地转向最新最好的“技术”(无论是恰当的语言,框架,平台还是其他)。他们得到一份工作,面包(或者更糟糕的是,实际上写一些代码),然后转移到他们的下一个受害者......呃......雇主。它们引起了大量的“流失”,并且增加了招聘广告的数量,但却产生很少或没有任何实际价值。很久以前,这个小组已经从C ++迁移到Java,并且很久以来从Java转向C#到Ruby on Rails转向Hadoop,直到本周管理人员对此感到兴奋。

    为了避免我听起来过于消极,我应该补充一点,他们中的一些人确实找到了他们擅长的东西,并且(大多数)倾向于坚持这一点。不幸的是,对于每个人来说,至少有五个新毕业生加入人群...

答案 1 :(得分:10)

“C ++有效地降级到嵌入式系统,操作系统,浏览器”

“其他特殊目的发展”

你的意思是99%的代码每天都在运行?

答案 2 :(得分:7)

C ++仍然在许多关键任务财务应用程序中大量使用。例如,Bloomberg的大多数平台都基于C ++,其他语言的前端非常少。许多投资银行和对冲基金使用完全用C ++编写的算法交易系统(例如,Tower Research Capital,Knight Capital等)。

如果你已经离开C ++一段时间了,你可能需要习惯一大堆现在标准的库。当我做大部分的C ++时,STL是相当新的,你​​要么采用了微软的libs,要么没有。如果我现在回到C ++,我将不得不学习所有新的库。

我认为其他语言的大部分运动都与网络开发和以网络为中心的开发有关。主要的例外是Google,它主要使用C ++和Python。

答案 3 :(得分:5)

对于许多高性能应用程序来说,C ++仍然很有价值。还有其他技术,并根据情况不同的语言更适合您的需求。但是如果你想要强大的性能,良好的控制你的代码正在做什么,以及灵活的网络和编程堆栈,C ++仍然是一个不错的选择。

更好的建议是:让问题来找你,找到最适合情况的语言,而不是采用语言去寻找问题。

仍然:如果你很了解C ++,你可以学习/编程。

答案 4 :(得分:3)

到目前为止,C ++是唯一一种既面向对象的编译的语言(或至少具有优化编译器的成熟生态系统)。这使其成为大多数大型计算密集型项目的唯一选择。

对我来说,最重要的例子是游戏和游戏引擎 - 这些是huuuuuge项目,它们可以挤压机器以获得毫秒级别的分数。 MS正试图为XNA(一个托管的游戏开发框架 - 基本上是一个DirectX包装器)获得一些牵引力,但很可能永远不会获得任何AAA游戏制作。

答案 5 :(得分:3)

如果我看看我在笔记本电脑上安装的应用程序,我正在编写此消息,我看到很多C / C ++和很少(如果有的话)托管应用程序。例子?谷歌Chrome,Firefox,iTunes,uTorrent,Spotify,Picasa,谷歌地球,OpenOffice,Notepad ++,IrfanView ......这个列表一直在继续。我以桌面应用程序为生,这些应用程序安装在全球数千台PC上,而C ++仍然是我的首选语言。缺乏依赖(WTL是你的朋友)是一个巨大的加上恕我直言(我应该添加我的客户!)YMMV虽然 - 作为一个经验丰富的开发人员,我认为我在C ++中足够高效,但我不能代表所有人。

答案 6 :(得分:2)

如果你真的需要做一些非常快的事情,它还没有消失。如果“足够快”可以,那么C#和Java就可以了,但是如果你的计算花费数小时或数天,或者你需要在微秒时标上发生某些事情(即高频交易),C ++仍然是使用的语言

答案 7 :(得分:2)

通常,我们会在炒作周期中迷失方向。首先是Java,然后是PHP,目前是Python。但事实是开发通用桌面应用程序仍然需要使用像Carbon / Cocoa for mac,GTK / QT for Linux,MFC for Windows这样的库。所有这些都是基于C / C ++的。大多数应用程序都是为这些平台编写的。所以把C ++称为降级到嵌入式是不对的,虽然它现在被广泛使用,不像之前它只是汇编或C最大。在我看来,如果你想要一个具有漂亮外观的GUI的高性能应用程序,它仍然必须在C / C ++中完成。

答案 8 :(得分:1)

不同的语言在不同的领域很普遍。有趣的是,你认为通过降级到嵌入式系统可能会使它变得不重要,而实际上这是大多数软件开发的发生地;至少在项目/产品数量方面。

有许多衡量方法,其中一些方法如下:http://langpop.com/。证据表明C ++仍然很重要。

答案 9 :(得分:1)

我不确定游戏行业是否属于“通用开发”,但如果你想开发任何你打算在多个控制台上工作的东西,那么C ++就是午餐。虽然许多游戏和3D库都有其他语言的扩展,但它们都有C / C ++的扩展。

答案 10 :(得分:1)

C ++仍然可以在任何想要获得最佳性能的地方使用。它的主要优点是你可以使用字面上的一切。除了其他人所说的,您还可以使用它来为网站供电,例如OkCupid几乎完全使用它。

最近Facebook的Hip Hop显示,如果你能负担得起(即你拥有一支庞大而称职的团队),你总能获得一些使用它的东西。然后它也是一个规模问题,而不是工业。

答案 11 :(得分:0)

C ++仍然非常受欢迎。例如,结合Qt,经常使用它。

答案 12 :(得分:0)

C ++通常用于系统工作,通常定义为UI不是中心的软件,而不是应用程序工作 - UI 的核心。因此,对于一般的商业用途,它可能不是很有趣,并且使用更高级别的语言可以更好地解决这些问题。但是,总会有低水平的系统工作要做,C或C ++就是这些问题的实际答案。

答案 13 :(得分:0)

作为一般开发语言?嗯,这取决于你的行业,但我在两个不同的行业工作,总是有很多C ++工作:

  1. 电信
    • 嵌入式设备通常使用C和C ++作为核心服务
    • 网络设备通常非常复杂,大量使用C ++
    • 使用硬件的软件应用程序通常用C ++编写
  2. 金融服务
    • 交易执行系统通常使用C ++。当您为客户执行订单时,您无法获得垃圾收集。
    • 算法和高频交易系统通常采用C ++
    • 没有严格速度要求的一般交易系统似乎是C ++和Java,C#也开始出现。
    • 管理应用程序往往用Java,VB或C#编写
    • 最近有一种趋势是定量分析的功能语言,所以F#和Haskell开始出现,SAS和Matlab也很常见
  3. 我在某处看到Nyse / Euronext使用Java,但他们禁用了垃圾收集器并在内存不足的服务器上运行。