反駁微軟頂級(jí)開發(fā)者:編程高手不用IDE?
原創(chuàng)【51CTO精選譯文】開發(fā)集成環(huán)境,即IDE,是開發(fā)者們十分熟悉的工具。基本上,只要你做過任何形式的開發(fā)而使用了記事本以外的編輯工具,你都是一個(gè)IDE的使用者。
David Intersimone是Embarcadero公司開發(fā)者關(guān)系部副總以及首席技術(shù)傳教士。在他作為新年賀詞的一篇博文中,他描述了那些頂級(jí)的程序員和尖端開發(fā)人員對(duì)于各種IDE的喜好,對(duì)他們的部分看法進(jìn)行了反駁,并列舉了他認(rèn)為對(duì)廣大開發(fā)者們重要的IDE所應(yīng)該具備的特質(zhì)。以下為David的原文:
首先,祝所有的軟件開發(fā)者們?cè)谛碌囊荒旰托碌氖曛锌鞓罚⒆T冈?010年里你們?cè)谲浖_發(fā)領(lǐng)域能取得更大的成功。在這個(gè)假期中,我花費(fèi)很多時(shí)間來思考我自己應(yīng)該使用何種工具來進(jìn)行程序開發(fā)。在Embarcadero公司工作期間,我經(jīng)常使用的集成開發(fā)環(huán)境(IDE)有:RAD Studio、運(yùn)行在Visual Studio Shell 上的 Delphi Prism,以及基于Eclipse的JBuilder。偶爾,我還使用其他一些IDE、命令行工具,以及一些用于快速開發(fā)項(xiàng)目的程序編輯器。
Wikipedia將IDE定義為一個(gè)集成了源碼編輯器、編譯器、項(xiàng)目搭建工具及調(diào)試器的聯(lián)合體。如果你留意過當(dāng)期流行的商業(yè)或開源IDE的話,那么你還可以發(fā)現(xiàn)IDE所支持的其他一些功能(僅列出一部分):可視化GUI創(chuàng)建、組件開發(fā)、類瀏覽、UML對(duì)象建模、源代碼控制、數(shù)據(jù)庫設(shè)計(jì)以及單元檢測(cè)。
在剛剛落幕的微軟PDC 2009會(huì)議的小組討論中,微軟內(nèi)部一些頂尖的開發(fā)人員傾向于使用年代比較久遠(yuǎn)的工具,而不是使用更加現(xiàn)代的IDE,下面是這些人的言論:
◆微軟資深工程師Don Box說,“你要是不允許我使用文本編輯器來編程的話,我將會(huì)揍你。”
◆另一位微軟資深工程師Jeffrey Snover說,“圖形化的編程環(huán)境對(duì)編程菜鳥會(huì)有幫助;但對(duì)于編程老手來說,它們一無是處。”
◆微軟的技術(shù)研究員Butler Lampson說,“盡管可視化的編程工具更易上手并且可以讓開發(fā)者們變得更有效率,但它也可以輕易使你上當(dāng)受騙,因?yàn)闆]有一個(gè)可視化的編程工具可以告訴你一個(gè)UML圖解意味著什么。”
知名博客寫手Randall C. Kennedy也對(duì)現(xiàn)代的IDE提出質(zhì)疑,認(rèn)為這些“懶惰的編程模塊”導(dǎo)致了大量的技術(shù)問題,并制造了大量“臃腫、低效的代碼”。
我個(gè)人對(duì)Randall的過激言論感到不以為然。我也不相信所有的編程者都會(huì)同意微軟PDC會(huì)中小組討論所得出的結(jié)論(51CTO編者注:事實(shí)上,與David觀點(diǎn)相同的編程者并非都是菜鳥級(jí)程序員。在這篇《八大技術(shù)牛人點(diǎn)評(píng)NetBeans 6.5》中,這些喜愛NetBeans的開發(fā)者都可以用骨灰級(jí)來形容,而他們的闡述中并沒有表示對(duì)“圖形化的編程環(huán)境”、“編程模塊”等特征的不屑)。大多數(shù)模塊化的IDE已經(jīng)逐歩升級(jí),以滿足非正式、專業(yè)及骨灰級(jí)編程人員的各種編程習(xí)慣:
◆謹(jǐn)慎設(shè)計(jì)面向?qū)ο蟮膽?yīng)用軟件
◆簡(jiǎn)化程序開發(fā)流程
◆使用可視化的拖拽來生成基于GUI的應(yīng)有軟件
◆生成高效、已調(diào)試及單元節(jié)測(cè)過的代碼
你使用過集成環(huán)境嗎?如果使用過的話,你正在用下列哪種IDE?
#t#如果你正使用其他的IDE來開發(fā)桌面、客戶端-服務(wù)器程序、資料庫應(yīng)用程序、手機(jī)程序、嵌入式程序、設(shè)備/應(yīng)用軟件開發(fā)的話,希望發(fā)表自己的看法。如果你不使用IDE,那么你使用何種程序編輯器(emacs, VI, TextMate, Visual Slick Edit, jEdit, Epsilon)或是命令行工具?IDE需要具有哪種編程特性才會(huì)讓你心動(dòng)?
對(duì)我而言,作為IDE堅(jiān)定的支持者,我將繼續(xù)使用IDE來加快我的程序開發(fā)。編程就是我的生活!