[转]程序的性能与语言选择

这个老话题从我7年前刚进入这个行业,就时不时地在网上见到讨论,我自己也很关注性能这个东西。

常常我们这些程序员会说,A语言开发的程序比B语言开发的程序快N倍,或者就说快,比如汇编,C语言,C++语言,那是流行语言中执行效率高的3种,当然汇编一般人是搞不定,应用范围也比较窄。其次是delphi, VB, PB, java等,执行速度慢些。我当年学开发是直接学C语言,把谭浩强的《c语言程序设计》细细看一遍,就冒冒然然辞职去广东珠三角找工作,自以为掌握了最快最流行的语言。当然头破血流是自然的,差点转学VB了,幸好当时坚持下来,一直靠C/C++吃饭,还过得去吧。总得来说,早期的技术人员还是相当重视效率的。

看看现在,上次我贴了张CSDN上关于“软件2.0概念图”, 里面竟然多数是动态语言,如近来流行ruby,当然有些我根本不认识。我熟悉的C/C++, Java等,找了好久就没发现。现在的大学生在学校里学习,可能对C和C++越来越不感冒了,更不要说汇编了,他们追着Java/C#/ASP.NET, 甚至是动态语言; 这些语言一是学起来酷,二是学起来快,根本不用考虑内存泄漏,脑细胞少死很多啊; 学这些流行技术,找工作肯定是比较容易,因为这些技术容易掌握,他们基本上就精通了。所以我们这些老古董看来很担心了,竞争压力日益增大啊。

事实情况真的如此吗?我感觉老古董不必担心。因为现实中项目各种各样,不是每个都是B/S方式的企业应用,有电信级的软件要求并发和吞吐量,常常后台就喜欢Unix+C/C++;有嵌入式开发,常常是Linux+C, VxWorks+C,甚至是汇编。很多大公司为了避免微软,基本上是不用.NET平台来开发的;还有就是大公司一般是不会随时变动开发语言的,那样老员工的技术熟练优势将大大减弱。所以你要想找一份好工作,一份高工资的大公司的职位,可能他们要的技术还是所谓的老技术:C/C++, Java等。

近期我还打算再深入学习一下IBM x86汇编,因为当我看Linux源代码时,看不懂汇编部分。为什么我要看这种没用的代码?确实对我工作没什么帮助,原因是我C/C++搞了这么多年,再弄再看书也就那样了,是需要无聊的时候分析下系统软件了,如果那天公司说要开发一个高性能的软件,说不定对LINUX的理解,能派上用场。我曾经去电信下某单位面试,他们想招一个VC++的高级程序员做前台程序,即时通讯类的,如qq一类,面试中得知这个职位招人好久了,就是没合适的,为什么呢,现在的大学生基本上没人去学C++/VC++平台了,会VC++的有C++功力的人越来越少,一般都躲到大小公司中稳定下来了。有人问为什么不用.NET开发,JAVA啊,答案就是小MM想聊QQ,难道她会装.NET库或者JDK?

我个人的学习方法是,关注流行技术,吃饭还是靠难学的老技术,和我竞争的人少啊;当然我也以前在小公司也做过技术管理,现在也随时准备做技术管理,技术上力求精通一两门,然后精而博,多了解各种流行或半流行的技术。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章