久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区


曙海教育集團論壇開發(fā)語言培訓(xùn)專區(qū)JAVA語言開發(fā) → 從Java到Ruby——我的最近一次技術(shù)轉(zhuǎn)型


  共有8634人關(guān)注過本帖樹形打印

主題:從Java到Ruby——我的最近一次技術(shù)轉(zhuǎn)型

美女呀,離線,留言給我吧!
wangxinxin
  1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


加好友 發(fā)短信
等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
從Java到Ruby——我的最近一次技術(shù)轉(zhuǎn)型  發(fā)帖心情 Post By:2010-12-11 10:03:08

這里所涉及到的都是與軟件開發(fā)有關(guān)的技術(shù),感覺很有必要總結(jié)一下我從業(yè)以來所使用過的開發(fā)技術(shù)以及所經(jīng)歷過的幾次技術(shù)轉(zhuǎn)型。

1996年7月-1999年10月3年時間一直使用C語言編寫電信協(xié)議軟件,算作我的C語言時代。其中還使用過一段時間SDL語言和基于SDL的代碼自動生成工具(瑞典Telelogic公司的SDT)。
2000年3月-2000年10月7個多月時間使用Perl語言做網(wǎng)站開發(fā),算作我的Perl語言時代。后來轉(zhuǎn)向了使用Java和JSP,用了兩個月。
2001年2月-2001年8月6個月時間使用JavaScript做DHTML開發(fā),還使用ColdFusion做網(wǎng)站開發(fā)。
2001年12月-2001年6月7個月時間使用C語言做企業(yè)級郵件服務(wù)器開發(fā)。
2002年8月之后做開發(fā)一直使用Java語言至今,算作我的Java語言時代,算算已經(jīng)快5年了。

在我使用過的這些語言中,有3種語言對我的影響最大,那就是C、Perl和Java。當(dāng)然JavaScript對我的影響也很大,不過對于整體的應(yīng)用軟件開發(fā)來說,JavaScript并不是一個主角。

現(xiàn)在我正在經(jīng)歷一次新的技術(shù)轉(zhuǎn)型,從Java語言轉(zhuǎn)向Ruby語言和Rails框架。

如果說以前的幾次技術(shù)轉(zhuǎn)型都是因為工作的變動而導(dǎo)致的,那么這一次技術(shù)轉(zhuǎn)型則是我自己主動發(fā)起的,因為我感覺Ruby代表著應(yīng)用軟件開發(fā)技術(shù)(注意限定詞 “應(yīng)用軟件”)的未來。Ruby是一種比Java更加先進的應(yīng)用軟件開發(fā)語言,最重要的是它能夠帶來極高的開發(fā)效率,而且不會影響代碼的可讀性和可維護性。

一年多以前我對Java還抱有一些幻想,認為Java社區(qū)如果有更好的框架,開發(fā)效率一定會追上Rails。今年5月我讀了 Bruce A. Tate的《超越Java》這本書,希望從專家那里了解一下Java語言和Java社區(qū)到底出了什么問題。這本書打消了我的幻想,讓我理解了Java最大的問題在于靜態(tài)類型對開發(fā)效率造成的嚴重影響。聯(lián)想到我去年下半年做的那個廣告發(fā)布平臺,我對此深有感觸。我當(dāng)時所采用的框架是Spring MVC+Spring IoC+Hibernate+FreeMarker+SiteMesh,按理說在Java開發(fā)領(lǐng)域,這套組合的開發(fā)效率應(yīng)該算是比較高的了。然而實際的開發(fā)進度遠遠低于我的預(yù)期,我作出第一個版本的時間差不多是預(yù)計時間的兩倍。當(dāng)然因為資金的缺乏,大部分時間都只有我一個人在做開發(fā),什么都要親自動手,困難確實很多。不過我認為主要的問題還是在于Java語言做Web開發(fā)的笨拙。

因為資金的缺乏,我今后要做一些自己感興趣的東西,注定仍然只會有很少的人參與(2、3個人),Java這樣笨拙的語言可能會使我付出雙倍的代價。

當(dāng)然,Java語言仍然在發(fā)展和變化,但是它變的越來越復(fù)雜,越來越缺乏一致性,最終很可能會發(fā)展成為像C++那么復(fù)雜的一種語言。Java越來越不適合Web應(yīng)用的開發(fā)了(我說的比較謹慎是因為這個領(lǐng)域是我最熟悉的),是到需要尋找一種新的開發(fā)語言的時候了。

Rod Johnson確實很偉大,在參與翻譯了《J2EE without EJB》之后,我至今仍然對Rod Johnson對于JavaEE的偉大貢獻深感敬意。但是Spring是從企業(yè)應(yīng)用環(huán)境成長起來的,它對于面向Internet的Web應(yīng)用來說,仍然是太重了。而Web 應(yīng)用的很多重要的需求(例如對Ajax的支持、對REST的支持等等),Spring并沒有解決。做企業(yè)應(yīng)用,Spring仍然是很好的選擇,然而做Web應(yīng)用,Spring,甚至是Java語言本身,都不是很好的選擇。為何在Web應(yīng)用開發(fā)技術(shù)方面,PHP最終占據(jù)了第一的份額,這是很值得思考的。

我們以前做網(wǎng)站開發(fā)從Perl語言轉(zhuǎn)向了Java語言,主要的原因有以下這些:
1. Perl開發(fā)的應(yīng)用代碼量大了之后很難維護。我自己寫過一個4、500行的復(fù)雜Perl程序,過了兩個月后再讀居然都讀不懂了。
2. Perl這個工具最初是設(shè)計用來取代bash、awk、sed等工具的,因為Larry Wall覺得這些工具還不夠強大靈活。Perl最初并不是設(shè)計用來作為一種全功能的應(yīng)用軟件編程語言的。
3. Perl對面向?qū)ο缶幊讨С值牟⒉缓谩?br/>4. 對于Web開發(fā)來說,Perl的資源(開發(fā)框架、開發(fā)庫)沒有Java豐富,很多功能需要自己來開發(fā)。
5. CGI開發(fā)與支持session的Servlet/JSP開發(fā)相比太原始,開發(fā)難度太大。

所以我們有非常充足的理由轉(zhuǎn)向Java語言。還有一個不大好開口的理由就是,做Java開發(fā)當(dāng)時似乎是成為一個專業(yè)程序員的標(biāo)志,純粹的面子問題,當(dāng)然Java程序員的就業(yè)前景也要好的多。

但是轉(zhuǎn)向Java之初最強烈的感覺就是Java做一些與文本處理相關(guān)的工作非常麻煩,沒有Perl快捷,而這些工作對于開發(fā)Web應(yīng)用來說是很常見的。當(dāng)時 Java核心類庫甚至還不支持正則表達式,需要下載學(xué)習(xí)其他的開發(fā)包,直到JDK1.4之后Java核心類庫才開始支持正則表達式。不過JSP這樣與 ASP、PHP類似的服務(wù)器頁面技術(shù)是比CGI要先進一代的技術(shù),所以開發(fā)效率還是比寫Perl CGI有所提高。

我做了一段時間JSP 開發(fā),發(fā)現(xiàn)全部代碼都混在頁面中問題很多,于是開始學(xué)習(xí)Java Web開發(fā)的Model1和Model2,并且接觸到了當(dāng)時剛剛興起的Struts。不過因為工作轉(zhuǎn)換,并沒有深入使用Struts。后來我用了半年 ColdFusion之后,就不愛使用JSP了。JSP的開發(fā)效率雖然比Perl CGI高一些,但是比起ColdFusion來說還是要低很多。JSP開發(fā)后來逐漸轉(zhuǎn)向基于custom tag的開發(fā)方式,并且最終出現(xiàn)了JSTL,在我看來是一種對ColdFusion的模仿。Java社區(qū)后來出現(xiàn)了n多的MVC框架、n多的IoC框架、 n多的ORM框架。《J2EE核心模式》所提倡的標(biāo)準(zhǔn)的三層架構(gòu)至今仍然被當(dāng)作鐵律來遵循,過多的層次帶來了巨大的靈活性,同時也帶來了巨大的復(fù)雜性。除了JavaEE之外,我還沒有看到其他的服務(wù)器端開發(fā)技術(shù)如此強調(diào)三層架構(gòu)或者多層架構(gòu)。一般來說,分出MVC就足夠了。而JavaEE開發(fā)不僅要在 Web表現(xiàn)層中分出MVC,還要在M中再分出業(yè)務(wù)層和持久層。這個分層的設(shè)計,是做JavaEE開發(fā)很難實現(xiàn)Martin Fowler在《企業(yè)應(yīng)用架構(gòu)模式》中提倡的充血的domain model的一個主要原因。另外Java語言本身的靜態(tài)類型所造成的笨拙和無法避免的重復(fù)代碼也是一個主要的原因,如果不強調(diào)分層,并且真的實現(xiàn)充血的 domain model,那么一個類中包含的代碼量會顯得太多太復(fù)雜了。

Java社區(qū)中的一些廠商目前在大力追捧JSF和EJB3,但是我并不認為JSF和EJB3或者將兩者集成在一起的JBoss Seam能夠拯救JavaEE。復(fù)雜性才是JavaEE最大的問題,JBoss Seam成功的關(guān)鍵在于它能否成功地掩蓋JSF和EJB3的復(fù)雜性,使得學(xué)習(xí)成本降低到與Rails相當(dāng)?shù)募墑e。不過即使它能夠做到,將來開發(fā)者還是要面對Java語言本身的靜態(tài)類型所造成的開發(fā)效率低下。我并不認為JBoss Seam有機會在開發(fā)效率上超越Rails。另外一個值得關(guān)注的框架是Grails,它是基于動態(tài)語言Groovy的,嚴格來說不能算是Java社區(qū)的框架。不過由于它基于Spring、Hibernate、SiteMesh,所以也可以看作是Java框架的進一步發(fā)展。在開發(fā)效率方面Grails也不大可能超越Rails。除了開發(fā)框架本身,還需要考慮眾多外圍工具的支持和社區(qū)的規(guī)模,在這些方面Grails不可能達到Rails的水平。還有一個RIFE呢,雖然我完全不了解它,不過看來它受到的關(guān)注很少。一個幾乎完全被忽視的框架,成功的前景估計很渺茫。Wicket我認為是不值得考慮的,現(xiàn)在我們應(yīng)該把目光僅僅投向那些full stack框架上,建造一個更加精巧的Web MVC框架解決不了根本的問題,對開發(fā)效率的提升是有限的。Cetia4和Restlet也是兩個很有趣的框架,特別是它們能夠支持REST開發(fā),代表了 Java Web開發(fā)框架的未來。Google的Guice是一個很有可能取代Spring的輕量級IoC框架,前景似乎不錯。不過Cetia4、Restlet、Guice這些框架和Wicket一樣,并不是full stack框架,對開發(fā)效率的提升是有限的。

根據(jù)上述分析,我現(xiàn)在對Java社區(qū)內(nèi)部的創(chuàng)新能力已經(jīng)感到很失望了(很明顯我后知后覺了,感到失望的大有人在),這種持續(xù)了10年之久的創(chuàng)新能力似乎已經(jīng)逐漸枯竭。由于動態(tài)類型的腳本語言(Python、Ruby、JavaScript等等)這些年來取得了長足的進步,而且在Web開發(fā)方面出現(xiàn)了一些killer級的框架,現(xiàn)在是將目光投向其他開發(fā)語言的時候了。我的決定就是在今年下半年完全轉(zhuǎn)到Ruby和Rails這個平臺上面。從Java轉(zhuǎn)到 Ruby有幾個強有力的理由:
1. Rails可以讓單個開發(fā)者在開發(fā)效率方面接近自己能力的極限。我并不是一個完美架構(gòu)的fans,熱衷于不寫一行代碼,巨細無靡地分析各種架構(gòu)優(yōu)劣直到腦神經(jīng)癱瘓。我熱衷的是解決用戶真正關(guān)心的問題,用技術(shù)改善他們的生活,與用戶建立起良好的人際關(guān)系。
2. Rails框架對Ajax有更好的支持,通過使用RJS模板可以極大減輕一般情況下做Ajax開發(fā)的復(fù)雜性,提高開發(fā)的效率。
3. Rails框架對REST開發(fā)提供了最好的支持。REST在Web開發(fā)方面會越來越重要,全面支持REST就是未來所有語言Web開發(fā)框架發(fā)展的方向。
4. JRuby 1.0對Rails的支持已經(jīng)很好,而且支持直接使用Java開發(fā)的資源,所以現(xiàn)在是從Java轉(zhuǎn)到Ruby的一個適當(dāng)?shù)臅r機。

我已經(jīng)讀完了《Ruby for Rails中文版》,并且出了一個個人的勘誤。《應(yīng)用Rails進行敏捷Web開發(fā)》第2版我已經(jīng)讀了1/3,在一周之內(nèi)可以全部讀完。這兩本書讀完之后,基本上已經(jīng)入門了。在入門階段我只準(zhǔn)備讀這兩本書,然后我會通過開發(fā)來熟悉更多的技術(shù)。因為我對Perl、JavaScript和Java語言的熟悉,所以學(xué)習(xí)Ruby和Rails并沒有感覺有什么難度。事實上閱讀《應(yīng)用Rails進行敏捷Web開發(fā)》第2版要比我閱讀《Struts實戰(zhàn)》之類的書容易理解的多(同時也更加有趣味,我第一次沒有感覺犯困),到目前為止,一切都感覺很自然。Ruby在我看來就是Perl+JavaScript+Java,毫無疑問是一門偉大的語言。很可惜晚學(xué)習(xí)了整整一年多,否則去年見到Martin Fowler的時候本應(yīng)該問他更多關(guān)于Ruby的問題的。

支持(0中立(0反對(0單帖管理 | 引用 | 回復(fù) 回到頂部

返回版面帖子列表

從Java到Ruby——我的最近一次技術(shù)轉(zhuǎn)型








簽名
久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区
成人做爰66片免费看网站| 亚洲国产精品尤物yw在线观看| 亚洲精品第一区二区三区| 日韩av一区二区三区美女毛片| 亚洲精品国产精品国自产观看| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 99久久久无码国产精品| 99在线免费观看视频| 欧美13一14另类| 欧美亚洲综合在线| 精品福利av导航| 亚洲激情在线激情| 精品一区二区三区欧美| 91同城在线观看| 亚洲国产一区二区三区在线播| 欧美日韩亚洲综合一区二区三区| 久久亚洲私人国产精品va媚药| 一区二区免费在线| 国产成人在线色| 久久久亚洲综合网站| 欧美三级电影在线看| 国产三级精品三级| 免费人成网站在线观看欧美高清| 51成人做爰www免费看网站| 亚洲7777| 久久久久久久久久久久久久久99| 亚洲国产精品久久一线不卡| 成人免费毛片app| 亚洲福利av在线| 久久影院电视剧免费观看| 亚洲成人7777| 99免费在线观看视频| 欧美性受xxxx| 亚洲激情一二三区| 99re热这里只有精品视频| 一区二区三区视频在线播放| 国产午夜精品在线观看| 麻豆精品久久精品色综合| 成人羞羞视频免费| 8x福利精品第一导航| 亚洲夂夂婷婷色拍ww47| 91视频最新| 欧美日韩精品一二三区| 亚洲一区二区在线播放相泽| 99久久99久久免费精品蜜臀| 在线日韩国产精品| 亚洲男人电影天堂| jlzzjlzz欧美大全| 欧美日韩精品一区二区三区蜜桃| 亚洲美女一区二区三区| 91在线在线观看| 在线综合+亚洲+欧美中文字幕| 亚洲国产cao| 好看的日韩精品视频在线| 日韩精品中午字幕| 久久精品国产99国产精品| 日本三级中国三级99人妇网站 | 丝袜美腿亚洲综合| 久久大片网站| 国产欧美精品一区| 高清国产一区二区三区| 欧美午夜电影在线播放| 亚洲bt欧美bt精品777| 久久婷婷国产综合尤物精品| 国产欧美日韩不卡免费| 国产成人av电影在线| 欧美性猛片aaaaaaa做受| 午夜电影久久久| 日本一区二区三不卡| 国产精品白丝在线| 5g国产欧美日韩视频| 日韩一区国产二区欧美三区| 久久99精品久久久久久动态图 | 欧美日韩的一区二区| 日韩激情中文字幕| 亚洲欧美日韩国产yyy| 亚洲综合丝袜美腿| 天堂社区 天堂综合网 天堂资源最新版 | 麻豆国产精品视频| 色综合久久中文字幕综合网| 亚洲国产视频网站| 亚洲欧美日产图| 亚洲午夜在线电影| 欧美日韩综合网| 一区二区三区美女视频| 欧美三日本三级少妇三99| 亚洲自拍另类综合| 亚洲精品美女久久7777777| 亚洲高清视频在线| 宅男噜噜99国产精品观看免费| 亚洲国产精品尤物yw在线观看| 亚洲欧美国产不卡| 卡一卡二国产精品| 在线不卡中文字幕| 福利91精品一区二区三区| 精品免费一区二区三区| 91首页免费视频| 国产精品久久久久aaaa樱花| 欧美另类网站| 青青草精品视频| 91精品国产色综合久久ai换脸 | 欧美伊人精品成人久久综合97| 久久99精品久久久久久国产越南 | 久久97超碰国产精品超碰| 欧美日韩卡一卡二| va亚洲va日韩不卡在线观看| 国产色婷婷亚洲99精品小说| 免费国产在线精品一区二区三区| 亚洲成人一区二区| 欧美日韩国产电影| www.日本不卡| 中文字幕中文字幕一区| 国产清纯在线一区二区www| 97久久超碰精品国产| 亚洲成av人片在线观看无码| 亚洲精品你懂的| 欧美视频一区二区| 精久久久久久久久久久| 欧美揉bbbbb揉bbbbb| 成人app软件下载大全免费| 中文字幕免费观看一区| 欧美一级爱爱| 欧美aⅴ一区二区三区视频| 这里是久久伊人| 国产精品久久久久久久久久直播| 亚洲精品va在线观看| 欧美片在线播放| 99国精产品一二二线| 亚洲一区免费在线观看| 91精品国产综合久久福利| 国产乱子伦精品| 激情综合色播五月| 国产精品久久久久久久久搜平片| 在线日韩av永久免费观看| 成人黄色在线视频| 亚洲一二三四在线| 精品美女一区二区三区| 日韩一区不卡| 99热99精品| 日韩电影在线一区| 国产夜色精品一区二区av| 在线精品亚洲一区二区不卡| 97超碰人人模人人爽人人看| 日韩和欧美的一区| 国产精品三级视频| 欧美日韩午夜在线视频| 麻豆亚洲一区| a4yy欧美一区二区三区| 日韩国产高清在线| 中文字幕欧美区| 欧美精品在线观看一区二区| 欧美精品与人动性物交免费看| 高清不卡一区二区在线| 天堂久久久久va久久久久| 中文字幕va一区二区三区| 欧美日韩在线电影| 日韩久久久久久久| 痴汉一区二区三区| 成人天堂资源www在线| 日韩精品亚洲专区| 中文字幕在线视频一区| 日韩欧美一级二级| 色诱亚洲精品久久久久久| 久久99国产精品| 91亚洲大成网污www| 国产乱码精品一区二区三区忘忧草| 中文字幕一区二区三区在线观看 | 一区二区三区四区视频在线观看| 99re这里都是精品| 国产美女在线精品| 日本不卡一区二区三区高清视频| 中文字幕一区不卡| 欧美韩国一区二区| 久久伊99综合婷婷久久伊| 欧美日韩大陆一区二区| 亚洲欧美日韩国产yyy| 国产精品一区二区三区免费观看| 东方欧美亚洲色图在线| 精品一区在线看| 免费成人深夜小野草| 亚洲成av人片一区二区三区| 亚洲激情图片小说视频| 中文字幕乱码亚洲精品一区| 日韩免费性生活视频播放| 精品视频1区2区| 在线精品视频一区二区三四| 亚洲日本一区二区三区在线不卡 | 水蜜桃一区二区三区| 久久久久久草| 国产精品永久入口久久久| 99国产视频| 99久热re在线精品996热视频| av激情成人网| 91视视频在线直接观看在线看网页在线看| 国产一区二区三区最好精华液| 久久黄色级2电影| 麻豆精品视频在线| 激情久久五月天| 国产大片一区二区| av成人动漫在线观看|