小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Sawin軟件研發(fā)之窗:主動(dòng)程序員與被動(dòng)程序員

 jinzq 2007-08-08

TheEdge推薦 [2007-6-10]
出處:IT168
作者:Hoplite


我 覺得這個(gè)世界上的程序員可以分為兩種:“主動(dòng)程序員”和“被動(dòng)程序員”。“主動(dòng)程序員”可以自己選擇開發(fā)方式,開發(fā)語言和框架,“被動(dòng)程序員”被動(dòng)接受公 司指定的語言和開發(fā)方式。其實(shí)在現(xiàn)實(shí)生活中,這種分類并不絕對(duì),一個(gè)程序員可能在不同的時(shí)候擔(dān)當(dāng)不同的角色,“被動(dòng)程序員”也可能享有有限的主動(dòng)權(quán)。這么 分類并不以程序員本身的知名度,財(cái)富多少,是否自己創(chuàng)業(yè)還是受雇于人有關(guān)。

  David Heinemeier Hansson 受雇與 37 Signal ,但是仍然可以自己選擇建立自己的 Rails 框架來完成項(xiàng)目,他應(yīng)該算是個(gè)“主動(dòng)程序員”。Firebird 數(shù)據(jù)庫的領(lǐng)導(dǎo)者同時(shí)也是 Interbase 數(shù)據(jù)庫的創(chuàng)始人。Jim Starkey 將自己的公司賣給了 Mysql AB 而不得不給 Mysql 干活,從某方面說,他應(yīng)該是個(gè)“被動(dòng)程序員”。大多數(shù)第三世界國(guó)家的程序員應(yīng)該屬于“被動(dòng)程序員”,他們編程只是為了一份養(yǎng)家糊口的工作,他們無權(quán)選擇自 己喜歡的編程語言或者框架,因?yàn)檫@是公司給他選擇的,因?yàn)槿绻x了其他,他可能就找不到工作了。曾經(jīng)有個(gè)即將離職的同事讓我給他推薦一個(gè)比較好的編程框 架,可以很容易完成一個(gè)網(wǎng)站的制作,我給他推薦了 Zope, 還有 Rails, 他聽我的介紹覺得不錯(cuò) ,當(dāng)我告訴他必須學(xué)習(xí) python 和 Ruby 編程語言時(shí),他顯得很驚愕,“那能找到工作嗎?”。這話其實(shí)也表達(dá)了大多數(shù)國(guó)內(nèi)程序員的想法??纯凑衅妇W(wǎng)站就知道,現(xiàn)在最需要的程序員是 Java  程序員,最需要了解的框架是 Struts。如果不會(huì)你很難得到面試的機(jī)會(huì),所以就算你不會(huì)也要在自己的簡(jiǎn)歷中“修飾”一下。

  有些自己創(chuàng)業(yè)的人可以自己選擇喜歡的編程語言和框架,當(dāng)然那畢竟是少 數(shù)。如果我能夠選擇的話,我肯定不用 Java 來做網(wǎng)站應(yīng)用。因?yàn)樗瓿梢粋€(gè)簡(jiǎn)單的工作太麻煩了,很難快速適應(yīng)需求的變化。當(dāng)然我也不會(huì)去用 PHP ,因?yàn)槲乙呀?jīng)習(xí)慣了面向?qū)ο蟮木幊谭绞搅?。我發(fā)現(xiàn)一個(gè)奇怪的現(xiàn)象:大多數(shù)轉(zhuǎn)向?qū)W習(xí) Ruby on rails 框架的人都是來自 Java 陣營(yíng)的程序員,而轉(zhuǎn)向Python 框架Zope,django 的程序員大多有ASP,PHP 背景。因?yàn)?Ruby 是一個(gè)真正的面向?qū)ο蟮恼Z言,它同時(shí)具備了腳本語言的特點(diǎn),而 Python 首先是一個(gè)腳本語言,它具備了一些 OO 的特征。Java 程序員很難忍受走回頭路,所以他們選擇了一個(gè)比Java更面向?qū)ο蟮恼Z言 Ruby ,而PHP,ASP程序員沒有那么重的思想負(fù)擔(dān),他們選擇 Python 可能是因?yàn)樗拇a更 Beauty ,遠(yuǎn)比他們以前寫的“意大利面條”式的PHP,ASP 代碼要干凈的多。

  無論是 python, 還是 Ruby 這些非主流程序語言開發(fā)的框架,使用起來都異常的簡(jiǎn)便,他們可謂是真正從程序員角度考慮的框架。為什么 Ruby 一出,攪的 Java 的世界一片混亂,我想原因還是出在 Java 這里,當(dāng) Java 程序員想當(dāng)然地認(rèn)為程序開發(fā)應(yīng)該如此麻煩的時(shí)候,Rails 的出現(xiàn)讓他們立刻覺得被這些所謂的 Java 流行框架和 Sun 給欺騙了,這種欺騙是如此之深,以至于他們中間有的人“頭也不回”的離開了 Java, 轉(zhuǎn)而攻擊 Java 的種種不是。這其中比較有名的人就是 Bruce Tate ,這位老兄寫了兩本轟動(dòng) Java 世界的書,Spring: A Developer‘s Notebook 和 Better, Faster, Lighter Java (該書可是獲得 Jolt 大獎(jiǎng)的,恰好我還都讀過),隨著 Rails 的流行,這位仁兄立刻叛逃出 Java 陣營(yíng),寫了 Beyond Java 一書,著重介紹了一些非Java 框架,比如 Smalltalk 的Seaside和Rails。
Java  為什么這么復(fù)雜,我想了很久,得出這么個(gè)結(jié)論:這是因?yàn)?Sun 希望它那么復(fù)雜。為什么這么說呢?Sun 不是一個(gè)好的軟件公司,它最擅長(zhǎng)做的是制定規(guī)范,這很類似Java 編程中的 Interface, 經(jīng)常編寫 Java 程序的人,會(huì)發(fā)現(xiàn) Interface 可能是出現(xiàn)最多的一個(gè)詞匯了,任何框架中都充滿了Interface —接口,大多數(shù)編程書都推薦面向接口編程(當(dāng)然這不是Java的錯(cuò),是設(shè)計(jì)模式要求的,不過 Java 將此發(fā)揮的最好)。首先定義接口,然后針對(duì)接口編寫不同的實(shí)現(xiàn),至少提供默認(rèn)的實(shí)現(xiàn)。Sun 也是如此,看看 J2ee 的規(guī)范包含了多少 J 打頭的技術(shù),JDBC,JNI,JCA,JDO,JPA .... ,現(xiàn)在的 JCP 組織更加如此,每隔一段時(shí)間,就有大量的規(guī)范問世,Draft 的,還是 Final 的,充斥著Java 世界,這是Sun希望的,每定義一個(gè)規(guī)范,就會(huì)有很多廠商來實(shí)現(xiàn)它,Java 的軟件市場(chǎng)就做大了,這樣 Sun 就可以靠授權(quán),認(rèn)證拿更多的錢,你看 Sun 的股票那么低迷,而卻擁有那么雄厚的流動(dòng)資金,原因再明白不過了,只要 Sun 還擁有 Java ,它就擁有了一切。

  Sun 希望 Java 變得復(fù)雜,就如同程序員希望 Perl 代碼難看一樣,這樣做是可以帶來好處的。Java 的復(fù)雜性也帶來了產(chǎn)業(yè)鏈上其他行業(yè)的繁榮,比如咨詢,在 Php ,Perl 流行 Internet 的年代,網(wǎng)站開發(fā)似乎還不需要咨詢師,包括 C/S 盛行的時(shí)候,企業(yè)開發(fā)也不需要咨詢師,然而隨著 J2EE  逐步主宰企業(yè)級(jí)開發(fā),咨詢行業(yè)也開始興旺起來。企業(yè)大把大把的把錢投入到開發(fā)咨詢中,究竟效果如何,不得而知。我想對(duì)大多數(shù)程序員,尤其是那些有自己想法 的程序員來說,請(qǐng)求咨詢公司,還不如自己去了解來得清楚。軟件開發(fā)咨詢師在我看來,有點(diǎn)象是“律師”—“代表貪婪的公司,讓這個(gè)世界變得更糟糕一些”(中 Alex 的對(duì)白)。如果說國(guó)外的咨詢師是希望通過主觀的努力來解決客觀存在的開發(fā)復(fù)雜性的話,那么國(guó)內(nèi)的咨詢行業(yè)可能把原本復(fù)雜的軟件開發(fā)變得更加復(fù)雜了。我不相 信他們,我寧可選擇某個(gè)軟件的培訓(xùn),而不希望有人來從頭到尾指點(diǎn)你如何開發(fā),因?yàn)閲?guó)內(nèi)咨詢師的水平比你從書本上了解的高不到哪里去,公司又何必花費(fèi)這筆冤 枉錢呢。

  那么如果你是個(gè)“主動(dòng)程序員”,你會(huì)跟著 Sun 的指揮棒走嗎? 我想離開 Java 世界,你選擇的機(jī)會(huì)應(yīng)該很多,但是前提是:你愿不愿意離開 Java 。因?yàn)榇蠖鄶?shù)人覺得改變現(xiàn)狀其實(shí)并不是個(gè)好事情,學(xué)習(xí)一個(gè)新語言和框架意為著你過去所有的經(jīng)驗(yàn)就消失了,這其中有風(fēng)險(xiǎn)。對(duì)大多數(shù)程序員來說,編程其實(shí)就是 份工作,跟賣盒飯,裝機(jī)器沒什么區(qū)別,只要搞好本職工作就可以。試圖改變現(xiàn)狀的人很痛苦,了解差異的人也是如此,就如同 Neo 在接受紅藥丸和藍(lán)藥丸。

  我在當(dāng)年學(xué)習(xí) Perl 的時(shí)候曾經(jīng)買過一本《Learning perl》,書的作者曾經(jīng)這么說,學(xué)習(xí) Perl 是為了讓自己把更多的時(shí)間用在去滑雪, PHP  的創(chuàng)始人 Rasmus Lerdorf 也曾經(jīng)這樣表示過,他希望自己能夠減少盯著電腦的時(shí)間,可是這么多年過去了,他發(fā)現(xiàn)自己還是要繼續(xù)盯著該死的電腦。其實(shí)我對(duì)選擇框架語言也并沒什么興趣, 我只是希望能夠以簡(jiǎn)單的方式完成工作,而把時(shí)間省下來去聽聽音樂,看看電影。實(shí)際上我跟不希望改變現(xiàn)狀的人沒什么不同,他們不希望學(xué)習(xí)新的東西,因?yàn)楝F(xiàn)有 的東西很熟悉了,學(xué)習(xí)新框架,還不如把時(shí)間放到玩上去,我的目的一樣,我學(xué)習(xí)只是希望自己的工作更輕松一點(diǎn),這樣可以用更多的時(shí)間來玩。所以每當(dāng)我看到各 種技術(shù)論壇上充斥著Java, .net , ROR ,Python 之類的爭(zhēng)吵,我都覺得很好笑。其實(shí)為了維護(hù)一個(gè)語言而爭(zhēng)吵最沒有意義。編程語言就和英語,計(jì)算機(jī)一樣,就是個(gè)工具,選擇它們只是為了盡可能簡(jiǎn)單地完成工 作,提高生活質(zhì)量。為了語言而語言,為了框架而框架都是沒必要的。“主動(dòng)程序員”可以選擇自己的方式來工作,這是大多數(shù)人做不到的。如果有可能,我也希望 做一個(gè)“主動(dòng)程序員”。

轉(zhuǎn)載網(wǎng)址:http://www./doc/SP/SPExperience/TheEdge318.htm

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多