今天正好看了博客园的首页的一篇文章 《Java封面》 ,初次一看,觉得这个貌似很这个说的完全都不靠谱啊,再一看,原来是2001年写的,然后在看看作者,发现原来是 硅谷创业教父 Paul Graham写的,联想到之前看到他写的一本书《黑客与画家》,突然能够明白为什么他这么认为java前途了。
java语言是在 1995年发明的,当初只是为了做一些机顶盒相关的应用,设计的也比较简单。那个时候java并不出名,java之所以比较火爆,就是因为互联网的发展,是由于当初的在浏览器里面能够运行java编写的小程序applet,你想想,那个时候互联网才刚开始发展,能够在网页上面运行动画,是多么牛逼的东西,由于当初java非常火爆,导致javascript 这门语言,想和java搭上关系,其实完全和java一点关系都没有,当初我学习javascript的时候,我一直好奇的是,这门语言完全和java没有关系,干嘛启用这么一个名字。
由于互联网的快速发展,微软出了asp的网页编程语言,记得当初我走B/S道路的时候,就是因为学习了asp这一门语言,发现能够做出东西来产品,比当初学习c和c++只能够写出hello word 这样的编程语言相比,它有趣多了。这个时候java也出了相关的网页编程语言jsp,然后慢慢的推出java三个平台,j2me,j2ee,j2se,分别定位移动平台,企业平台,客户端平台。
我初步觉得 Paul Graham 之所以当初对java有如此的认识,其实和当时所处的时代有关。当初的互联网刚刚起步,社会对互联网的认识才刚刚开始,当时的网速也不快,大多数复杂的企业应用都是采用的C/S模式,还没有慢慢步入B/S模式,而目前java主要运用都是在企业软件里面,现在大多数企业应用都是建立在B/S模式上的,所以说还是互联网成就了java。
现在来看看,作者当时的很多想法,应该是错误,
比如说着说:真正的标准是不是需要推广,相反,现在的标准之争原来越频繁,很多IT大佬在左右的IT编程语言的发展。一个标准推出的好处就是减少重复和浪费,就像操作系统,如果只有一个标准,大家都按照这个标准做,就不会出现为每个厂商就做一个操作系统软件,造成极大的浪费,幸好互联网定义了http标准协议,否则我难以想想互联网是什么样的。
java的目标太低:我看了黑客和画家,作者是一个典型的geek主义者,认为程序员是一个对技术要求很高的职业,要有喜欢挑战的精神,是一个典型的个人主义者。而java太简单。但是相反,随着IT技术的发展,对编程的要求不在那么高,只需要受过一个普通教育的人也能够开发出来很好的应用的人,编程只是一个实现功能的方式,要求越简单越好,越简单生产效率越高,而简单的东西才能流传的更久和更广。
Java 动机不纯:这个我觉得真的没有什么好说的,对付微软很正常,如果有市场就行,微软还不是***出了.net来对付java。开始java只是为了解决机顶盒问题的,后来发现java的这种设计思想非常不错,可以解决很多问题,***的好处就是跨平台。慢慢的就往更多的领域发展。
Java 有太多维护人员:java被一个委员会所维护,其实也不叫维护吧,这个委员会(JCP)只是规划java的未来的发展方向以及给java本身添加一个功能,我觉得java***的特点就是 定义了一个功能,但是不管这个功能是如何实现的,只要满足功能的规约。所以我觉得学习java***的一个特点就是规范,你会发现一大堆规范,最常见的就是 java虚拟机规范,规范主要是讲解要做什么,限制是什么,产生什么结果等等,并不关心怎么实现。
官僚作风太重: 这个比较有意思,仁者见仁,智者见智吧。java的确会有一大堆规范,比较不适合 geek,但是比较适合软件这个行业。如果有一大堆规范,那么每个人都会按照这个规范去做,每个人写出来的程序差不多,对于大型IT企业是很喜欢的,毕竟替代一个程序员的代价很低,大家的思想都差不多。
后面的几点我觉得都有点牵强,但是从作者的观点也可以看出来 对于码农的认知是不同。至少看完了《黑客与画家》,我发现作者是有强烈的黑客情节的(hack the problem),作者对于程序员的认识和现在对于程序员的认知应该是不同的。其实这个也是我最近在思考的一个问题:程序员的价值是什么。随着软件开发行业越来越公开化,开源世界的影响越来越大,程序资源也越来越多,很多功能的实现都有特定的开源帮助我们来实现,我们可以随时拿来用,以前我们的思维是如何实现这个功能,那么现在变成有没有类似的解决方案可以拿来用,程序员原来越偏向一个程序组装者或者解决方案者,那么程序员新的价值在那里 ?
原文链接:http://www.cnblogs.com/aigongsi/archive/2012/09/24/2700507.html