|
上次想回这个贴,被老板叫去了,后来忘记了。
.net和java是两个阵营,我是从VB入行的,对VC, SQLServer等等也曾经很熟悉,不过总的来说,作MS的developer很轻松,因为MS的SDK足够丰富,文档足够详细,特别是在Windows平台上,更是顺手。
但是java是很不一样的东西,强调的是跨平台,如果ms是垄断,java就是反垄断;ms是对内开放对外封闭,java则是彻底开放。由于java虚拟机的天生特性,java系统可以轻易的在不同OS里面移植,包括windows。相反,.Net系统只有一个可以运作的平台,就是windows。做java的developer相对来说就需要动更多脑子,因为JDK通常都很基本,文档和MS比更是薄弱的很。道理很简单,一个是花钱的,一个是不花钱的。
软件行业初期的趋势是保守,大家花钱花精力研发了各自的平台和产品,都不愿意开放协议或者接口,恨不得客户全部用自己的系统,所以造就了有那么多的legacy system。随着兼并和破产,大家意识到利润的点已经转移到服务上去了,所以就开始了标准化协议化的进程,现在流行的SOA就是这个代表。
免费的eclipse, ant, cvs, tomcat, jboss, xml, mysql, linux,现在全部用freeware都能建立一个性能有保障的系统。说明开放性的java越来越活跃,同时,MS还是一幅试图一统天下的腔调,最近他们在欧洲遭受有史以来最大的垄断罚款就是见证。
无疑,MS的技术和研发还是前沿的,他们是巨人,不过,巨人也有犯错的时候,所以,为了一个健康的长足发展的软件行业,保持一个开放的体系还是非常必要的,特别是,在相当多的enterprise application里面,windows平台显然不是正确的选择。
我个人是更喜欢Java这种开放的特征,因为如果我愿意,我可以修改JDK的代码,修改一切Open Source的Framework, 这个过程不是我自己要给自己找麻烦,而是我相信一个道理:复杂的事情都给别人做了,我自己的智慧就没有发挥的余地。在劳动力市场上,我得到的体现我劳动价值的那部分回报,就是低层次的。就像研发工程师和流水线装配工人的区别。 |
|