希望版主尽快删贴。造福百姓。
[该贴被okhaoba于2010-05-30 00:33修改过]
java真的没前途
我也差不多用了8年的C,后面6年是C++。前面4年是本科。
我的立场:
不喜欢C#、.net和MFC(我知道这不是语言),主要倒不是和M$有关,而是很难跨平台。
讨厌VB、VC、VJ等等所有带个V字的“语言”,因为讨厌拖控件写程序,感觉无法控制一切。
喜欢C/C++的灵活和效率。
Java的跨平台来自JVM,就像ODBC的跨数据库一样,很好用,效率偏低。
Java只在大学学了点皮毛,从此不再碰Java,连Hello World都不会写了。不是不喜欢Java,只是比起Java来更喜欢C/C++。
我的观点:
算法和基础数学靠得更近,OO则和软件工程靠得更近。目前主流观点是,基础数学硕士比软件工程硕士好。但企业招聘的观点是,适合的比不适合的好。
如果只是要做一个CRUD数据库的网站,那没必要招精通算法的高手,否则两边都不高兴。
杰拉尔德·温伯格在《程序开发心理学》里提到:一个实习生东拼西凑写出来的计算二次方程根的小程序,和一个经验丰富的程序员为分时系统编写尽可能紧凑的微指令,除了名称都是“程序开发”之外,还有什么相同之处吗?有些人就是觉得,一个经过多年实战经验的工程师的知识和技能,只需要几个月的短期培训就能掌握。这无疑让经验丰富的程序员很恼火,但比起新手的自高自大,试图将所有知识和能力用到不必要的地方的专业人员犯的错误更大。
这就是程序开发任务的区别。任何一个开发任务都有人力、时间之类成本以及性能指标,适合开发的语言(例如大多数项目成员都熟悉这个,或者有很多现成控件),那就是对于这个项目而言最好的语言。LISP适合开发人工智能语言,C适合开发OS,如此而已。脱离了具体项目,讨论两种语言哪一种更好毫无意义。
更重要的是,这个世界上的一个基本定律就是,一样东西越是适应某个需要,它就越是不适应另一个需要(如果不是这样,那是因为我们把同一种需要错看成了两个)。一样东西如果适应所有方面,它就什么方面都没法做好。
于是问题就到了这个方面:开发语言库(例如glibc的malloc)等操作系统级的程序,比起开发一个CRUD数据库的网站,哪个更好(……诡异的问题)?
当然,前者的技术含量更大,但后者更适合充斥大量小网络公司、北大XX培训出来的Java新人以及所谓“软件工程硕士”们的刚起步的中国软件产业。
虽然经过数年的发展,现在刚毕业的计算机相关专业的本科生只要不是垫底的,几乎人人都握有ACM/ICPC获奖证书,对有道难题、百度之星、TopCoder和Google中国编程挑战赛有着丰富得不可思议的经验,闭着眼睛都能写出诸如红黑树、网络流的算法,于是这些毕业生对于只会拖控件、用框架、满口IT三字经的程序员感到不满,感到自己的地位被低估了。
这些本科生更适合用C/C++去开发OS——那里的竞争更激烈,而且应该没有到底C好还是Java好的争论。必须说,在开发OS之类对效率有很高要求,而距离用户界面相对较远的程序方面,C/C++相对Java有着无与伦比的优势。
不能说那个语言不好的·你这么发贴是找骂的了··
不知道楼主有何大作?