驀然回首:Java已經過時了嗎?
驀然回首:Java已經過時了嗎?[@more@]來自:ZDNET軟體頻道
在四年以前,當我開始鼓吹Hibernate,抨擊EJB的時候,遭到的是群起而攻之的場面,但是不到一年之後,Hibernate已然得到了普及和大多數Java開發人員的認可;在三年以前,當我開始讚譽spring的時候,spring還面臨著EJB3的陰影,以及EJB2對其不登大雅之堂的指責,然而不到一年的時間,spring已經成為絕大多數Java開發人員的首選;在兩年以前,我極力希望宣傳webwork,唱衰JSF,時至今日, webwork以Struts2.0的身份容登大雅之堂,而JSF還在靠廠商死挺著;而當一年之前我開始採用RoR開發JavaEye的時候,RoR的置疑之聲還甚囂塵上,但當我在今年初預言07年下半年RoR在國內會被廣泛接受的時候,很多人已經笑不出來了;今年我預言些什麼呢?我覺得會是AJAX技術走出PC的時代,證據就是iphone,與此相關聯的事情就是REST架構的流行。
但是這篇文章裡面我想談的卻不是我預言的水平準不準,而是想談Java真的會因為RoR的流行而過時嗎?目前在web開發主要應用在兩個大的領域,網際網路和企業應用,我們分別來看一下:
一、網際網路領域
網際網路領域第一大動態語言是PHP,第二第三分別是ASP和Java。在中小型網際網路應用當中,PHP的王者地位不容動搖,但在大型應用當中, Java是目前主流的選擇,特別是電子商務型別的應用,例如阿里巴巴就從早期的PHP轉變到Java,從前的eachnet也是如此。造成這樣局面不是沒有原因的:
1、中小型網際網路網站強調開發速度,維護成本,以及入門快速和部署成本,PHP是最合適的選擇;用Java則顯得過於笨拙,開發慢,維護成本高,入門週期長,部署麻煩;RoR開發速度最快,維護成本最低,但是RoR入門速度沒有PHP快,部署成本比PHP高。因此中小型網際網路網站主流還是 PHP,但RoR能夠佔據一定的份額。
2、大中型網際網路站強調穩定性,效能,大規模程式碼的組織能力,而開發效率則退居次要地位,有些應用如電子商務對事務有很高的要求,顯然Java是最合適的選擇;PHP的程式碼組織能力最差,RoR次之。
在網際網路領域,Java從來就不是主流,並且Java的適用領域和RoR不太重合。我們甚至可以這樣說,RoR現在在網際網路領域取代的是那些原本不適合用Java,但是被錯誤的選擇了Java的專案。
二、企業應用領域
目前企業應用領域第一大語言是Java,dotnet其次。企業應用採用的技術和行業有很大關係:例如金融行業,電子政務行業一般只採用Java。dotnet發展了6年尚且沒有進入企業高階的應用,RoR在短期之內也很難取代Java的地位。
在企業應用領域,Java是主流,並且Java的適用領域和RoR也不太重合。我們也可以這樣說,RoR將來在企業應用領域要取代的是那些原本不適合用Java,但是被錯誤的選擇了Java的專案。
至此,我想Java程式設計師大可以鬆一口氣,RoR目前有哪些不適合的場合呢:
1、對事務要求非常高的場合
RoR還是很簡單的單資料庫事務控制,缺乏精細的事務控制功能,當然也不支援跨資料庫的分散式事務。因此對於事務要求嚴格的大型電子商務網站,部署複雜的分散式資料庫場景顯得力不從心。當然也許有些plugin可以提供這些功能,但是從目前的功能完備性和成熟度來看,還不夠。
2、處理大量遺留資料庫的場合
ActiveRecord的威力很大程度上來自約定,大量命名糟糕的遺留資料庫會對RoR造成比較大的障礙。
3、龐大的專案團隊,對開發速度要求低的場合
例如日本外包專案,團隊龐大,個體開發速度要求低。但是對於程式碼規範要求嚴格的專案。
雖然RoR不會取代Java,但不意味著作為程式設計師的你可以固步自封。即使在工作當中用不上RoR,多看一點新的技術,對於開闊個人視野也有很大的好處。
在四年以前,當我開始鼓吹Hibernate,抨擊EJB的時候,遭到的是群起而攻之的場面,但是不到一年之後,Hibernate已然得到了普及和大多數Java開發人員的認可;在三年以前,當我開始讚譽spring的時候,spring還面臨著EJB3的陰影,以及EJB2對其不登大雅之堂的指責,然而不到一年的時間,spring已經成為絕大多數Java開發人員的首選;在兩年以前,我極力希望宣傳webwork,唱衰JSF,時至今日, webwork以Struts2.0的身份容登大雅之堂,而JSF還在靠廠商死挺著;而當一年之前我開始採用RoR開發JavaEye的時候,RoR的置疑之聲還甚囂塵上,但當我在今年初預言07年下半年RoR在國內會被廣泛接受的時候,很多人已經笑不出來了;今年我預言些什麼呢?我覺得會是AJAX技術走出PC的時代,證據就是iphone,與此相關聯的事情就是REST架構的流行。
但是這篇文章裡面我想談的卻不是我預言的水平準不準,而是想談Java真的會因為RoR的流行而過時嗎?目前在web開發主要應用在兩個大的領域,網際網路和企業應用,我們分別來看一下:
一、網際網路領域
網際網路領域第一大動態語言是PHP,第二第三分別是ASP和Java。在中小型網際網路應用當中,PHP的王者地位不容動搖,但在大型應用當中, Java是目前主流的選擇,特別是電子商務型別的應用,例如阿里巴巴就從早期的PHP轉變到Java,從前的eachnet也是如此。造成這樣局面不是沒有原因的:
1、中小型網際網路網站強調開發速度,維護成本,以及入門快速和部署成本,PHP是最合適的選擇;用Java則顯得過於笨拙,開發慢,維護成本高,入門週期長,部署麻煩;RoR開發速度最快,維護成本最低,但是RoR入門速度沒有PHP快,部署成本比PHP高。因此中小型網際網路網站主流還是 PHP,但RoR能夠佔據一定的份額。
2、大中型網際網路站強調穩定性,效能,大規模程式碼的組織能力,而開發效率則退居次要地位,有些應用如電子商務對事務有很高的要求,顯然Java是最合適的選擇;PHP的程式碼組織能力最差,RoR次之。
在網際網路領域,Java從來就不是主流,並且Java的適用領域和RoR不太重合。我們甚至可以這樣說,RoR現在在網際網路領域取代的是那些原本不適合用Java,但是被錯誤的選擇了Java的專案。
二、企業應用領域
目前企業應用領域第一大語言是Java,dotnet其次。企業應用採用的技術和行業有很大關係:例如金融行業,電子政務行業一般只採用Java。dotnet發展了6年尚且沒有進入企業高階的應用,RoR在短期之內也很難取代Java的地位。
在企業應用領域,Java是主流,並且Java的適用領域和RoR也不太重合。我們也可以這樣說,RoR將來在企業應用領域要取代的是那些原本不適合用Java,但是被錯誤的選擇了Java的專案。
至此,我想Java程式設計師大可以鬆一口氣,RoR目前有哪些不適合的場合呢:
1、對事務要求非常高的場合
RoR還是很簡單的單資料庫事務控制,缺乏精細的事務控制功能,當然也不支援跨資料庫的分散式事務。因此對於事務要求嚴格的大型電子商務網站,部署複雜的分散式資料庫場景顯得力不從心。當然也許有些plugin可以提供這些功能,但是從目前的功能完備性和成熟度來看,還不夠。
2、處理大量遺留資料庫的場合
ActiveRecord的威力很大程度上來自約定,大量命名糟糕的遺留資料庫會對RoR造成比較大的障礙。
3、龐大的專案團隊,對開發速度要求低的場合
例如日本外包專案,團隊龐大,個體開發速度要求低。但是對於程式碼規範要求嚴格的專案。
雖然RoR不會取代Java,但不意味著作為程式設計師的你可以固步自封。即使在工作當中用不上RoR,多看一點新的技術,對於開闊個人視野也有很大的好處。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10172717/viewspace-972149/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 驀然回首,Java 已經 24 歲了!Java
- Docker與k8s的恩怨情仇(八)——驀然回首總覽KubernetesDockerK8S
- 《大富翁10》遭遇差評,“強手棋”玩法真的已經過時了嗎?
- 智慧數字經營3.0,已經普及了嗎?
- 回首Java——再回首JDKJavaJDK
- Spring MVC 過時了嗎?SpringMVC
- 雲ERP真的已經玩不轉了嗎?
- Kubernetes 已經成為雲原生時代的安卓,這就夠了嗎?安卓
- 你已經用上 5G 網路了嗎?
- 你已經拋棄了你的“天賦”嗎?
- 辛辛苦苦學會的 webpack dll 配置,可能已經過時了Web
- 那本你小時候看過的雜誌,如今已經500期了
- 幽默:微積分可能已經過時 - AlejandroPiad
- 深度學習已經觸到天花板了嗎深度學習
- 印度人口已經超過中國了?
- JSP筆記,java的伺服器頁面,雖然說要淘汰了,但沒說已經不使用了,學吧JS筆記Java伺服器
- Runway CEO:AI公司的時代已經結束了AI
- 索尼:PS 5銷量已經超過了650萬臺
- 「遊戲誤國」已經過時了,父母現在要做的是幫孩子「玩得聰明」遊戲
- 《莎木3》真的是“設計過時”了嗎?
- Python 查詢演算法_眾裡尋他千百度,驀然回首那人卻在燈火闌珊處(線性、二分,分塊、插值查詢演算法)Python演算法
- 業務和IT分離的時代已經過去! - OSKAR
- 業務和IT分離的時代已經過去? - OSKAR
- Java 11已經發布Java
- 投入上百人、經歷多次雙 11,Flink 已經足夠強大了嗎?
- 初學Java,這三個階段你經歷過嗎?Java
- 學習java技術有前途嗎?當然有前途Java
- 自走棋大戰接近尾聲,雖然這塊市場已經我們徹底給玩“壞”了
- Java是不是已經飽和了?Java
- 已經收到滿意的 offer 了
- 只知道ajax?你已經out了
- 今天你過節了嗎?
- Java學習過程中實戰開發經驗重要嗎?Java
- CSS面試要點!看完你還覺得你已經學好CSS了嗎?CSS面試
- Michael Thomas:Google和微軟各消耗24 太瓦時電力 已經超過了100多個國家Go微軟
- 索尼:PlayStation 5已經出貨了3210萬臺 有望超過6000萬臺
- Redis資料已經過期了,為什麼還佔用記憶體?Redis記憶體
- 你好奇過 MySQL 內部臨時表存了什麼嗎?MySql
- Wasm 原生時代已經來到ASM