×

Loading...

哥给C++正名。

本文发表在 rolia.net 枫下论坛So there are some IT guy, working with some fancy gadgets and funky computers and networks.

And, there are these kinds of BBS forums all over every corner the Internet, in all different countries, where some self-acclaimed super super super senior IT professionals 用各国语言此起彼伏乐此不疲无比陶醉的发着同一个月经贴:

C/C++ 已经是昨日黄花,现在是Java,C#……what-so-ever 的时代了。

唉。

哥我无意改变各位Rolia IT巨孽体内早已蚀骨缚魂的观念。哥发贴是要告诉那些被搅得昏头转向的Newbie/菜鸟们 – C/C++,更重要的是编程语言背后传承的Computer Architecture和数字电路的基本原理,是不可绕过的基础课。你也许学了个diploma就成功找到了IT工作,但是这些基础课,是要补上的。否则,是难免在一波又一波的IT浪潮中当炮灰的。

既然说C++没有过时,So, where are all the C/C++ geeks?

Well, it’s everyone’s knowledge, that 从操作系统到各种应用程序,从complier到driver…… 每个计算机能启动,每个Java/C#/…的程序能编译和运行,每个网络页面的解释,都来自C/C++的程序。

Is that all? No, far from it. 只是个开头而已。

大家对general purpose CPU的annual sales是多少有没有个idea?哥来告诉你,是hundreds of millions。Astonishing number indeed。这也就是IT们看到的天空。

不过呢,General Purpose CPU只是computing universe 里的一个星系罢了。在General Purpose CPU之外,是广袤无垠,无孔不入的Embedded Systems。

从手机到卫星,从MP3到camera,以及打印机、键盘、鼠标、电视、冰箱、汽车、Vender Machine、Parking Meter、GPS、汽车、火车、飞机、显卡、声卡、音响、电梯、Switch and Routers……你抬头低头看到的每一个数字设备里面,都有一个或多个嵌入芯片。

你呼吸的空气中的每一个WiFi,HDTV,cell phone……信号,都由嵌入设备编码和解码。

What’s the annual sales number for Embedded CPU, then?

MANY MANY BILLIONS!

而在Embedded Systems的研发里,C/C++几乎一统天下。

Java,C#,Python,Ruby,PHP等等等等花样翻新的编程语言,都是结合一些很实际的应用而产生的。在Internet一路狂飚的年代,这些为网络编程而设计的语言也都有着旺盛的生命力。另一方面,每种语言也都有其自身的局限性。C创造于60年代,C++来自80年代,其focus从来都是System Design。

不要因为自己和自己周围的哥们弟兄写Java,就以为全世界只有Java。说实话,沙鸥一直挺不耻Sun Microsystem对Java的天天打个”free”的旗号,私下却注册一对版权啦商标啦专利啦的小人行径,Compiler也到2006年才Open Source。现在并进Oracle,Java要开始收钱了也说不定。

C++ is not a trademark of any company or organization and is not owned by any individual。哥对Bjarne Strousstrup大神的敬仰从来都是江水滔滔的一塌糊涂。人家不仅开了OO的先河,还把这么个划时代的伟大发明白送给全世界,分文不取。人类文明的发展,因为此公,至少提前两年。

今天先写到这。等哥得空儿再回来讲那些被许多人遗忘的基本概念,还有为什么C/C++在system design领域无可替代。更多精彩文章及讨论,请光临枫下论坛 rolia.net
Sign in and Reply
Modify
Report

Replies, comments and Discussions:

  • 工作学习 / 科技领域杂谈 / 哥给C++正名。
    • Good to know this. Nice writing!
      • Thanks. 另外自己更正一下,刚刚一查,C语言其实开发于1972年,不是60年代。
    • 写的不错。C++现在在自己特定的领域,本无需被正名。但其本来的设计意图未能被好好实现。C本来都活的好好的,没什么人说它这些年有多大变化。C and C++区别还是满大的,最好分开各表.
    • c/c++有它们自己的应用领域,而且多年没有太多的改变。高级语言和数据库几年就升级换代一次甚至完全作废要重头学起。
    • 马扎。
    • 哥我不止一次被英文系毕业的JAVA程序员或unix 系统管理员痛斥,我只好等他们把所有的大便都拉完后,再给他们开屁股,大家都是混口饭吃,不容易,我理解,感谢终于有些大侠出来说点公道话了。
      • unix 系统管理员为何痛斥你,是不是你不停地产生进程却从不关掉?
    • C has been rather stable: ranked #1 in 1985, and ranked #1 again in 2010.
      In long term, both Java and C++ are declining, with Java falling faster due to its competitions.

      But, who cares. 容易学,好找工是正经。

      For new comers, maybe with a major in English or Chinese, or for a 中等智力水平又懒惰的人, like myself, it is like dreaming to get an offer in the highly competetive C++ job market. Even if we can get an offer (thanks GOD), to keep up with those smart C++ programmers? PURE Torture!!

      So, for us, by which I mean 中等智力水平又懒惰的人, we'd better make up our mind, by looking at the job market, do a quick search on Monster.ca, don't ever be fooled by this kind of b.s. index. Learn our skill well, true, CPU, algorithms, all good stuff, but please, whatever can land us a job, go for it. Technically superior stuff can never feed your family. COBOL, old, low tech, a torture for the smart C++ programmers? Actually It is not so bad comparing to C++ in terms of getting us an offer.
    • 哥不用正名了,从国内来的IT人士谁不知道这些,C++找工作周期长是事实,Embedded Systems和 device driver 开发工具国内和这儿不同,要想找到工作还要先refresh 以下。以后是哪种语言流行不知道,我想以后都没语言了,都DND了
    • 好样的! 用C++,那叫真正的程序员的干活.
      • 问题是真正的程序员不需要那么多啊,全都给印度的low wage程序员就得了
      • 哈!
      • 挣钱吃饭养家是正理。我们不当计算机时代的孔已己。
        • +1
        • 你以前的精神哪去了? 自豪感,和安家立命是同一层次的问题吗???
          • 你们都不帮他, 估计一个人早被砸得满头都是包了
            • 大家都在捧我的场,砖头在哪里?
    • 我始终觉的计算机语言没有高低之分,Master it 才是王道
      • +1
    • 从旁观者的角度来看,有些地方的C/C++是很难被替代的,但是绝大多数C/C++开发的应用程序都是一堆一堆的bugs,这些本来是不要用C/C++开发的,但是被炫耀自己本事的技术人员做了错误的决定,增加了开发成本。
      • 有错误决定才有工作机会
      • 严重怀疑你看懂了文章
      • 嗯,说句题外话,会打铁的看什么都象榔头。
        Business Drivers + Current Environment (technical, operational) + Issues + Constraints ($$, skills, processes)
        => Requirements (business, technical, operational)
        === > Solution Roadmap
        =====>....
        .................
        ==========> .... which language to pick and use
      • 如果你们公司的技术决策,是被炫耀自己本事的技术人员做了错误的决定,说明你的公司很烂;更可能的是,你根本不理解公司的技术决策,却胡乱猜测是因为别人炫耀自己本事,说明你的水平很烂,人品也烂。
        • 论谈的乐趣在于share and debate ideas, not the person behind it.
          • 噢,我兄弟可能正在边写CODE边刷网,分心了,词不达意,他绝不可能针对个人的。表往心里去!:)))
            • 哪里,我也是一边给个用户调个系统一边发发贴解闷。我这位38兄弟有时忒38,所以我就说两句。
            • 天呐,你管他叫兄弟?
              • 我兄弟听音乐向来一本正经的,温柔得很,怎么搞的,你跟他有这么大的仇恨!!肯定是你的错!!!
                • 真是亲兄弟啊。
            • 哈哈,好心的马岛主,不用替我解释了。我的词很达意,就是要砸38......
              • 马儿,岛主,他抽你脸了
    • 识时务者为俊杰, 如果已经有C++经验, 做C++也是不错的选择, 做的时间越长越受人尊敬, 如果没有经验, 就大可不必刻意去学C++, 虽然C++薪水高, 但是晋升很慢, 行行出状元, 就算是写VB的, 做几年, 升个PM也不会比写C++的低, 总之, 职场上看机遇,努力和造化了
      • 为钱写的code和因为热爱写的code是不一样的,做鸡头也可以挣很多钱。
        • 很惭愧, 俺确实是为钱为两餐写code, 也很景仰你们这些不为钱专注于C++才子, 另外还想为"识时务者为俊杰"这句话正名, 有人看到这句很敏感, 俺却觉得它带有明显的褒义, 它告诫
          我们时时看清潮流, 把握方向, 对我等geeks以business needs为基准, 从end users角度看问题尤其重要
    • 给大伙说个现象:我周围的几个VBer&JAVAer(皆80后&90后),对我惯用C/C++,而且看见我用notepad/textpad写code, 始终怀着景仰之情,当然是真是假就不得而知了,尽管我编程的机会不多,但始终留一点给自己做。这就是皮爷所言的热爱。
      • notepad 写code就景仰,那俺用vi写code,他们是要膜拜了?
        • VI敝岛偶尔也用,大概是懒惰的缘故,小问题宁愿去TOUCH BINARY,而不愿去TOUCH SOURCE CODE。嘿~。
          • 你以为这样直接改binary好吗? 小心以后死了都不知道怎么死的。 要不就是给后来人找麻烦。 奉劝你还是写得结构清楚的一点好。
            • 嘿~
      • PS,忽然想起,我听古典音乐喜欢查阅总谱,跟写CODE偏爱C/C++,可能源自同一德性。LOL
      • 见过一个NASA退休程序员,他不用鼠标,所有操作都用快捷键和console command。我都怀疑他跟图形界面有仇。对了,他原来是GNU活跃成员。
        • 不同nasa 我就亲眼讲过,30岁左右,不用鼠标但速度极快,我都看不明白他都做了什么操作。
    • 不要吹你是讲哪国话, 吹吹你做了啥.
      每种语言和技术都有自各的领域, 和局限性. 不用厚此薄彼.

      从市场来看, 不论是 job market 还是应用市场, c/c++ 的衰落都是不争的事实. 10年20 年前, 几乎每个程序都是 c/c++ 写出来的, 今天大部分都不是, 这个市场如果不衰落就不正常了.

      rim 的手机上主要跑 java, iphone 的很多应用是 c# 写成, 甚至连 nasa 的火星漫游者的控制都是 java 写就. 在硬件的高速发展下, 用性能换开发速度和稳定性是必然趋势.

      就语言而言, c 解决了性能和结构化编程的问题

      java 解决了跨平台编程和内存管理问题,

      至于 c++, 通过实践证明了什么糟糕的设计

      所以, 不要吹你是讲哪国话, 吹吹你做了啥.
    • 现在所有的系统核心引擎都是C++写的,不用担心啦,国内很多电信和互联网的大公司都在用C++,工资比写JAVA的高的多
    • 谁是C++高手? 请PM, 我非常需要。