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


曙海教育集團論壇開發語言培訓專區JAVA語言開發 → 從Java到Ruby——我的最近一次技術轉型


  共有8633人關注過本帖樹形打印

主題:從Java到Ruby——我的最近一次技術轉型

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


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

這里所涉及到的都是與軟件開發有關的技術,感覺很有必要總結一下我從業以來所使用過的開發技術以及所經歷過的幾次技術轉型。

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

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

現在我正在經歷一次新的技術轉型,從Java語言轉向Ruby語言和Rails框架。

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

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

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

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

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

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

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

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

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

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

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

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

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

返回版面帖子列表

從Java到Ruby——我的最近一次技術轉型








簽名
久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区
一区二区三区毛片| 国产在线视频不卡二| 日韩精品伦理第一区| 顶级嫩模精品视频在线看| 亚洲男同性视频| 精品国产91九色蝌蚪| 欧美日韩久久一区| 神马影院午夜我不卡影院| 99re在线视频观看| thepron国产精品| 一个色妞综合视频在线观看| 久久综合久久鬼色| 日韩一区二区三区高清免费看看| 伊人久久av导航| 日韩精品另类天天更新| 欧美久久久久久| 国产一区再线| 99久久免费国| 3d动漫精品啪啪一区二区三区免费| 激情综合色播激情啊| 亚洲人精品一区| 国产精品国产三级国产有无不卡 | 国产日韩欧美综合在线| 日韩片之四级片| 9191成人精品久久| 欧美日韩国产影片| 欧美精品v日韩精品v韩国精品v| 在线欧美日韩国产| 欧美一区二区三区精美影视| 欧美男人的天堂| 欧美一区三区二区在线观看| 欧美日本韩国国产| 视频一区二区三区在线观看| 亚洲a∨一区二区三区| 久久一区二区三区av| 欧美亚洲国产免费| 亚洲精品一区国产精品| 中文字幕一区二区三区最新| 91福利国产精品| 欧美日本一道本| 色8久久精品久久久久久蜜| 色哟哟在线观看一区二区三区| 日本乱码高清不卡字幕| 欧洲一区二区av| 欧美一级黄色片| 国产欧美日韩中文久久| 中文字幕免费观看一区| 国产精品国产精品国产专区不片| 亚洲精品视频自拍| 秋霞国产午夜精品免费视频| 理论电影国产精品| 成人精品国产一区二区4080| 国产91一区二区三区| 青娱乐国产91| 在线看一区二区| 日韩欧美一级二级三级| 欧美激情一区二区在线| 亚洲一区二区中文在线| 九九九精品视频| 91免费视频观看| 欧美在线视频二区| 精品视频色一区| 久久久天堂av| 亚洲一区在线观看视频| 久久精品99久久久| 成人免费视频caoporn| 久久精品久久精品国产大片| 在线免费不卡视频| 久久久噜噜噜久久中文字幕色伊伊| 亚洲欧美日韩久久| 精品一区二区三区在线观看| 7777精品伊久久久大香线蕉语言| 蜜桃麻豆www久久国产精品| 在线看无码的免费网站| 在线看不卡av| 日本一区二区高清| 三级欧美在线一区| 成人久久视频在线观看| 欧美人与性禽动交精品| 欧美一区二区福利在线| 国产精品热久久久久夜色精品三区| 中文字幕一区二区三区av| 久久av资源站| 久久久久天天天天| 欧美精品 日韩| 亚洲欧美日韩国产中文在线| 国产精品一区二区男女羞羞无遮挡| 国产精品日韩一区二区| 欧美久久一二三四区| 一区二区视频免费在线观看| 国产成人亚洲综合色影视| 色综合久久久久久久久五月| 精品国产凹凸成av人网站| 国产精品视频yy9299一区| 精品一区二区三区日韩| 久久综合九色综合久99| 91精品国产美女浴室洗澡无遮挡| 夜夜嗨av一区二区三区网页| 成人免费高清视频在线观看| 正义之心1992免费观看全集完整版| 久久综合九色欧美综合狠狠| 久久91精品久久久久久秒播| 鬼打鬼之黄金道士1992林正英| 欧美日韩国产精选| 亚洲一区二区三区免费视频| 91看片淫黄大片一级在线观看| 欧美乱熟臀69xxxxxx| 国产精品美女久久久久久| 不卡电影一区二区三区| 国产一区二区三区高清视频| 91影视在线播放| 久久天堂av综合合色蜜桃网| 丁香六月久久综合狠狠色| 777久久久精品| 福利一区二区在线| 欧美va天堂va视频va在线| 99久免费精品视频在线观看 | 成人免费黄色大片| 2023国产精品视频| 99在线视频精品| 亚洲国产精品高清| 久久久久久久久久久久久久一区 | 水野朝阳av一区二区三区| 亚洲午夜精品福利| 美国三级日本三级久久99| 欧美电影一区二区| 91影视在线播放| 中文字幕字幕中文在线中不卡视频| 久久99精品久久久久子伦| 亚洲国产精品久久人人爱| 在线观看免费视频综合| 久久精品国产一区二区三| 5月丁香婷婷综合| 91丨porny丨最新| 国产精品第13页| 亚洲一区二区三区精品视频| 国产一区在线看| 久久久美女艺术照精彩视频福利播放| 国产精品一区二区你懂得| 天天综合网天天综合色| 日韩欧美一区二区三区在线| 国产嫩草一区二区三区在线观看| 亚洲精品免费看| 欧美视频在线不卡| 91女人视频在线观看| 亚洲综合在线观看视频| 欧美揉bbbbb揉bbbbb| 超碰97人人在线| 日韩av在线免费观看不卡| 91精品婷婷国产综合久久| 好看的日韩精品| 国内精品伊人久久久久av影院| 国产日韩v精品一区二区| 日韩欧美手机在线| 成人午夜视频福利| 一区二区三区毛片| 日韩欧美卡一卡二| 日本免费高清一区二区| 国产v综合v亚洲欧| 一区二区三区欧美激情| 欧美一区二区三区人| 久久婷婷人人澡人人喊人人爽| 麻豆成人91精品二区三区| 国产精品久久久久三级| 欧美老女人第四色| 久久久久久久久久久久久久久久av| 久久99精品国产.久久久久久| 欧美国产精品中文字幕| 欧美日韩中文字幕一区| 国产一区自拍视频| 成人一区二区三区视频在线观看| 亚洲激情综合网| 欧美xxxxx裸体时装秀| 一本一生久久a久久精品综合蜜| 99国产欧美久久久精品| 久久精品国内一区二区三区| 亚洲欧美偷拍三级| 亚洲精品在线观看视频| 欧美午夜精品免费| 日韩wuma| 久久精品国产理论片免费| 成人国产电影网| 狠狠色狠狠色综合日日91app| 亚洲美女少妇撒尿| 久久久亚洲欧洲日产国码αv| 欧美视频一区在线观看| 日本不卡在线播放| 国产精品v欧美精品v日韩| 国产福利一区二区三区| 日本色综合中文字幕| 一区二区视频在线看| 国产精品视频免费| 精品国产1区2区3区| 欧美精品在线一区二区| 一本到不卡免费一区二区| 欧美在线激情| 久久精品一二三区| 97久久精品午夜一区二区| 高清免费成人av| 国产麻豆成人精品|