關(guān)于《Java封面》一些感想
今天正好看了博客園的首頁的一篇文章 《Java封面》 ,初次一看,覺得這個貌似很這個說的完全都不靠譜啊,再一看,原來是2001年寫的,然后在看看作者,發(fā)現(xiàn)原來是 硅谷創(chuàng)業(yè)教父 Paul Graham寫的,聯(lián)想到之前看到他寫的一本書《黑客與畫家》,突然能夠明白為什么他這么認(rèn)為java前途了。
java語言是在 1995年發(fā)明的,當(dāng)初只是為了做一些機頂盒相關(guān)的應(yīng)用,設(shè)計的也比較簡單。那個時候java并不出名,java之所以比較火爆,就是因為互聯(lián)網(wǎng)的發(fā)展,是由于當(dāng)初的在瀏覽器里面能夠運行java編寫的小程序applet,你想想,那個時候互聯(lián)網(wǎng)才剛開始發(fā)展,能夠在網(wǎng)頁上面運行動畫,是多么牛逼的東西,由于當(dāng)初java非?;鸨?,導(dǎo)致javascript 這門語言,想和java搭上關(guān)系,其實完全和java一點關(guān)系都沒有,當(dāng)初我學(xué)習(xí)javascript的時候,我一直好奇的是,這門語言完全和java沒有關(guān)系,干嘛啟用這么一個名字。
由于互聯(lián)網(wǎng)的快速發(fā)展,微軟出了asp的網(wǎng)頁編程語言,記得當(dāng)初我走B/S道路的時候,就是因為學(xué)習(xí)了asp這一門語言,發(fā)現(xiàn)能夠做出東西來產(chǎn)品,比當(dāng)初學(xué)習(xí)c和c++只能夠?qū)懗鰄ello word 這樣的編程語言相比,它有趣多了。這個時候java也出了相關(guān)的網(wǎng)頁編程語言jsp,然后慢慢的推出java三個平臺,j2me,j2ee,j2se,分別定位移動平臺,企業(yè)平臺,客戶端平臺。
我初步覺得 Paul Graham 之所以當(dāng)初對java有如此的認(rèn)識,其實和當(dāng)時所處的時代有關(guān)。當(dāng)初的互聯(lián)網(wǎng)剛剛起步,社會對互聯(lián)網(wǎng)的認(rèn)識才剛剛開始,當(dāng)時的網(wǎng)速也不快,大多數(shù)復(fù)雜的企業(yè)應(yīng)用都是采用的C/S模式,還沒有慢慢步入B/S模式,而目前java主要運用都是在企業(yè)軟件里面,現(xiàn)在大多數(shù)企業(yè)應(yīng)用都是建立在B/S模式上的,所以說還是互聯(lián)網(wǎng)成就了java。
現(xiàn)在來看看,作者當(dāng)時的很多想法,應(yīng)該是錯誤,
比如說著說:真正的標(biāo)準(zhǔn)是不是需要推廣,相反,現(xiàn)在的標(biāo)準(zhǔn)之爭原來越頻繁,很多IT大佬在左右的IT編程語言的發(fā)展。一個標(biāo)準(zhǔn)推出的好處就是減少重復(fù)和浪費,就像操作系統(tǒng),如果只有一個標(biāo)準(zhǔn),大家都按照這個標(biāo)準(zhǔn)做,就不會出現(xiàn)為每個廠商就做一個操作系統(tǒng)軟件,造成極大的浪費,幸好互聯(lián)網(wǎng)定義了http標(biāo)準(zhǔn)協(xié)議,否則我難以想想互聯(lián)網(wǎng)是什么樣的。
java的目標(biāo)太低:我看了黑客和畫家,作者是一個典型的geek主義者,認(rèn)為程序員是一個對技術(shù)要求很高的職業(yè),要有喜歡挑戰(zhàn)的精神,是一個典型的個人主義者。而java太簡單。但是相反,隨著IT技術(shù)的發(fā)展,對編程的要求不在那么高,只需要受過一個普通教育的人也能夠開發(fā)出來很好的應(yīng)用的人,編程只是一個實現(xiàn)功能的方式,要求越簡單越好,越簡單生產(chǎn)效率越高,而簡單的東西才能流傳的更久和更廣。
Java 動機不純:這個我覺得真的沒有什么好說的,對付微軟很正常,如果有市場就行,微軟還不是***出了.net來對付java。開始java只是為了解決機頂盒問題的,后來發(fā)現(xiàn)java的這種設(shè)計思想非常不錯,可以解決很多問題,***的好處就是跨平臺。慢慢的就往更多的領(lǐng)域發(fā)展。
Java 有太多維護(hù)人員:java被一個委員會所維護(hù),其實也不叫維護(hù)吧,這個委員會(JCP)只是規(guī)劃java的未來的發(fā)展方向以及給java本身添加一個功能,我覺得java***的特點就是 定義了一個功能,但是不管這個功能是如何實現(xiàn)的,只要滿足功能的規(guī)約。所以我覺得學(xué)習(xí)java***的一個特點就是規(guī)范,你會發(fā)現(xiàn)一大堆規(guī)范,最常見的就是 java虛擬機規(guī)范,規(guī)范主要是講解要做什么,限制是什么,產(chǎn)生什么結(jié)果等等,并不關(guān)心怎么實現(xiàn)。
官僚作風(fēng)太重: 這個比較有意思,仁者見仁,智者見智吧。java的確會有一大堆規(guī)范,比較不適合 geek,但是比較適合軟件這個行業(yè)。如果有一大堆規(guī)范,那么每個人都會按照這個規(guī)范去做,每個人寫出來的程序差不多,對于大型IT企業(yè)是很喜歡的,畢竟替代一個程序員的代價很低,大家的思想都差不多。
后面的幾點我覺得都有點牽強,但是從作者的觀點也可以看出來 對于碼農(nóng)的認(rèn)知是不同。至少看完了《黑客與畫家》,我發(fā)現(xiàn)作者是有強烈的黑客情節(jié)的(hack the problem),作者對于程序員的認(rèn)識和現(xiàn)在對于程序員的認(rèn)知應(yīng)該是不同的。其實這個也是我最近在思考的一個問題:程序員的價值是什么。隨著軟件開發(fā)行業(yè)越來越公開化,開源世界的影響越來越大,程序資源也越來越多,很多功能的實現(xiàn)都有特定的開源幫助我們來實現(xiàn),我們可以隨時拿來用,以前我們的思維是如何實現(xiàn)這個功能,那么現(xiàn)在變成有沒有類似的解決方案可以拿來用,程序員原來越偏向一個程序組裝者或者解決方案者,那么程序員新的價值在那里 ?
原文鏈接:http://www.cnblogs.com/aigongsi/archive/2012/09/24/2700507.html