<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Picses' sky

    Picses' sky
    posts - 43, comments - 29, trackbacks - 0, articles - 24

    轉自:http://blog.csdn.net/koalant/archive/2006/06/26/836882.aspx
    最先發(fā)表于:http://www.5dblog.com/vip/mulder/200604/245598.html

     

     

    我覺得這個世界上的程序員可以分為兩種:"主動程序員"和"被動程序員"。"主動程序員"可以自己選擇開發(fā)方式,開發(fā)語言和框架,"被動程序員"被動接受公司指定的語言和開發(fā)方式。其實在現(xiàn)實生活中,這種分類并不絕對,一個程序員可能在不同的時候擔當不同的角色,"被動程序員"也可能享有有限的主動權。這么分類并不以程序員本身的知名度,財富多少,是否自己創(chuàng)業(yè)還是受雇于人有關。David Heinemeier Hansson 受雇與 37 Signal ,但是仍然可以自己選擇建立自己的 Rails 框架來完成項目,他應該算是個"主動程序員"。Firebird 數(shù)據(jù)庫的領導者同時也是 Interbase 數(shù)據(jù)庫的創(chuàng)始人 Jim Starkey 將自己的公司賣給了 Mysql AB 而不得不給 Mysql 干活,從某方面說,他應該是個"被動程序員"。大多數(shù)第三世界國家的程序員應該屬于"被動程序員",他們編程只是為了一份養(yǎng)家糊口的工作,他們無權選擇自己喜歡的編程語言或者框架,因為這是公司給他選擇的,因為如果選了其他,他可能就找不到工作了。曾經有個即將離職的同事讓我給他推薦一個比較好的編程框架,可以很容易完成一個網(wǎng)站的制作,我給他推薦了 Zope, 還有 Rails, 他聽我的介紹覺得不錯 ,當我告訴他必須學習 python 和 Ruby 編程語言時,他顯得很驚愕,"那能找到工作嗎?"。這話其實也表達了大多數(shù)國內程序員的想法。看看招聘網(wǎng)站就知道,現(xiàn)在最需要的程序員是 Java 程序員,最需要了解的框架是 Struts。如果不會你很難得到面試的機會,所以就算你不會也要在自己的簡歷中"修飾"一下。

    有些自己創(chuàng)業(yè)的人可以自己選擇喜歡的編程語言和框架,當然那畢竟是少數(shù)。如果我能夠選擇的話,我肯定不用 Java 來做網(wǎng)站應用。因為它完成一個簡單的工作太麻煩了,很難快速適應需求的變化。當然我也不會去用 PHP ,因為我已經習慣了面向對象的編程方式了。 我發(fā)現(xiàn)一個奇怪的現(xiàn)象:大多數(shù)轉向學習 Ruby on rails 框架的人都是來自 Java 陣營的程序員,而轉向Python 框架Zope,django 的程序員大多有 ASP,PHP 背景。因為 Ruby 是一個真正的面向對象的語言,
    它同時具備了腳本語言的特點,而 Python 首先是一個腳本語言,它具備了一些 OO 的特征。Java 程序員 很難忍受走回頭路,所以他們選擇了一個比Java更面向對象的語言 Ruby ,而PHP,ASP程序員沒有那么重的思想負擔,他們選擇 Python 可能是因為它的代碼更 Beauty ,遠比他們以前寫的"意大利面條"式的PHP,ASP 代碼要干凈的多。 無論是 python, 還是 Ruby 這些非主流程序語言開發(fā)的框架,使用起來都異常的簡便,他們可謂是真正從程序員角度考慮的框架。為什么 Ruby 一出,攪的 Java 的世界一片混亂,我想原因還是出在 Java 這里,當 Java 程序員想當然地認為程序開發(fā)應該如此麻煩的時候,Rails 的出現(xiàn)讓他們立刻覺得被這些所謂的 Java 流行框架和 Sun 給欺騙了,這種欺騙是如此之深,以至于他們中間有的人"頭也不回"的離開了 Java, 轉而攻擊 Java 的種種不是。這其中比較有名的人就是 Bruce Tate ,這位老兄寫了兩本轟動 Java 世界的書,Spring: A Developer's Notebook 和 Better, Faster, Lighter Java (該書可是獲得 Jolt 大獎的,恰好我還都讀過),隨著 Rails 的流行,這位仁兄立刻叛逃出 Java 陣營,寫了 Beyond Java 一書,著重介紹了一些非Java 框架,比如 Smalltalk 的Seaside, 和 Rails。

    Java 為什么這么復雜,我想了很久,得出這么個結論:這是因為 Sun 希望它那么復雜。為什么這么說呢?Sun 不是一個好的軟件公司,它最擅長做的是制定規(guī)范,這很類似Java 編程中的 Interface, 經常編寫 Java 程序的人,會發(fā)現(xiàn) Interface 可能是出現(xiàn)最多的一個詞匯了,任何框架中都充滿了Interface —接口,大多數(shù)編程書都推薦面向接口編程(當然這不是Java的錯,是設計模式要求的,不過 Java 將此發(fā)揮的最好)。首先定義接口,然后針對接口編寫不同的實現(xiàn),至少提供默認的實現(xiàn)。Sun 也是如此,看看 J2ee 的規(guī)范包含了多少 J 打頭的技術, JDBC,JNI,JCA,JDO,JPA .... ,現(xiàn)在的 JCP 組織更加如此,每隔一段時間,就有大量的規(guī)范問世,Draft 的,還是 Final 的,充斥著Java 世界,這是 Sun 希望的, 每定義一個規(guī)范,就會有很多廠商來實現(xiàn)它,Java 的軟件市場就做大了,這樣 Sun 就可以靠授權,認證拿更多的錢,你看 Sun 的股票那么低迷,而卻擁有那么雄厚的流動資金,原因再明白不過了,只要 Sun 還擁有 Java ,它就擁有了一切。Sun 希望 Java 變得復雜,就如同程序員希望 Perl 代碼難看一樣,這樣做是可以帶來好處的。Java 的復雜性也帶來了產業(yè)鏈上其他行業(yè)的繁榮,比如咨詢,在 Php ,Perl 流行 Internet 的年代,網(wǎng)站開發(fā)似乎還不需要咨詢師,包括 C/S 盛行的時候,企業(yè)開發(fā)也不需要咨詢師,然而隨著 J2EE 逐步主宰企業(yè)級開發(fā),咨詢行業(yè)也開始興旺起來。企業(yè)大把大把的把錢投入到開發(fā)咨詢中,究竟效果如何,不得而知。我想對大多數(shù)程序員,尤其是那些有自己想法的程序員來說,請求咨詢公司,還不如自己去了解來的清楚。軟件開發(fā)咨詢師在我看來,有點象是"律師"—"代表貪婪的公司,讓這個世界變得更糟糕一些"(<Joey>中 Alex 的對白)。如果說國外的咨詢師是希望通過主觀的努力來解決客觀存在的開發(fā)復雜性的話,那么國內的咨詢行業(yè)可能把原本復雜的軟件開發(fā)變得更加復雜了。我不相信他們,我寧可選擇某個軟件的培訓,而不希望有人來從頭到尾指點你如何開發(fā),因為國內咨詢師的水平比你從書本上了解的高不到哪里去,公司又何必花費這筆冤枉錢呢。


    那么如果你是個"主動程序員",你會跟著 Sun 的指揮棒走嗎? 我想離開 Java 世界,你選擇的機會應該很多,但是前提是:你愿不愿意離開 Java 。因為大多數(shù)人覺得改變現(xiàn)狀其實并不是個好事情,學習一個新語言和框架意為著你過去所有的經驗就消失了,這其中有風險。對大多數(shù)程序員 來說,編程其實就是份工作,跟賣盒飯,裝機器沒什么區(qū)別,只要搞好本職工作就可以。試圖改變現(xiàn)狀的人很痛苦,了解差異的人也是如此,就如同 Neo 在接受紅藥丸和藍藥丸。 我在當年學習 Perl 的時候曾經買過一本《Learning perl》,書的作者曾經這么說,學習 Perl 是為了讓自己把更多的時間用在去滑雪, PHP 的創(chuàng)始人 Rasmus Lerdorf 也曾經這樣表示過,他希望自己能夠減少盯著電腦的時間,可是這么多年過去了,他發(fā)現(xiàn)自己還是要繼續(xù)盯著該死的電腦。其實我對選擇框架語言也并沒什么興趣,我只是希望能夠以簡單的方式完成工作,而把時間省下來去聽聽音樂,看看電影。實際上我跟不希望改變現(xiàn)狀的人沒什么不同,他們不希望學習新的東西,因為現(xiàn)有的東西很熟悉了,學習新框架,還不如把時間放到玩上去,我的目的一樣,我學習只是希望自己的工作更輕松一點,這樣可以用更多的時間來玩。所以每當我看到各種技術論壇上充斥著Java, .net , ROR ,Python 之類的爭吵,我都覺得很好笑。其實為了維護一個語言而爭吵最沒有意義。編程語言就和英語,計算機一樣,就是個工具,選擇它們只是為了盡可能簡單地完成工作,提高生活質量。為了語言而語言,為了框架而框架都是沒必要的。"主動程序員"可以選擇自己的方式來工作,這是大多數(shù)人做不到的。如果有可能,我也希望做一個"主動程序員"。


    ---未完待續(xù)


    程序思考2:關于框架
    http://blog.csdn.net/koalant/archive/2006/06/26/836889.aspx

    Feedback

    # re: 【程序思考】“主動程序員”vs“被動程序員” [zz]  回復  更多評論   

    2007-07-24 10:42 by Matthew Chen
    做主動的程序員,主動學習適合自己的簡單的實用的編程知識,是積極進取的職業(yè)規(guī)劃原則。
    主站蜘蛛池模板: 四虎成人免费大片在线| 99爱在线观看免费完整版| 久久不见久久见免费影院www日本 久久WWW免费人成—看片 | 最近中文字幕完整免费视频ww| 亚洲一区二区三区免费观看 | 无码人妻一区二区三区免费n鬼沢| 久久精品无码专区免费青青| 久久精品国产免费观看| 久久久www成人免费毛片| 免费A级毛片在线播放不收费| 亚洲综合另类小说色区| 亚洲日本国产乱码va在线观看| 亚洲精华国产精华精华液 | 中文字幕在线免费视频| 久久精品毛片免费观看| 日韩精品免费一区二区三区| 伊人久久亚洲综合| 亚洲无圣光一区二区| 亚洲AV无码片一区二区三区 | 91精品手机国产免费| 卡一卡二卡三在线入口免费| 国产亚洲精品国看不卡| 亚洲精品美女视频| 国产成人亚洲精品播放器下载| 成人网站免费看黄A站视频| 欧洲乱码伦视频免费| 亚洲一级片免费看| 亚洲精品乱码久久久久久下载| 日本系列1页亚洲系列| 免费视频一区二区| 麻豆国产VA免费精品高清在线| 久久精品国产69国产精品亚洲| 亚洲一卡2卡3卡4卡乱码 在线| 两个人看的www免费高清 | 99久久人妻精品免费一区| 免费国产成人午夜私人影视 | 亚洲精品美女久久777777| 亚洲综合激情五月色一区| 色www永久免费网站| 女人张腿给男人桶视频免费版| 久久亚洲高清观看|