文章目錄
大多數人都願意用IDE來寫Java和C#代碼,因為有代碼補全、智能格式化,甚至自動重構。在動態語言的世界,情況則不大一樣。
原因之一是缺少類似靜態語言使用的那種工具,這是由於為動態語言開發這類工具十分困難。不過好在這些動態語言的程式通常短小而簡潔(例如和Java相比)。
不過,有時候使用整合式開發環境還是很方便的,它可以接管開發人員所有的日常任務,從使用源碼管理工具、管理專案檔,到編譯、調試和部署項目。在這一系列新聞中,我們採訪了一些動態語言IDE的開發人員,來介紹一下這些IDE的現狀和他們的看法。
我們假定所有的IDE都具有一些基礎的功能,比如高亮等,因此我們主要關注複雜一些的功能,比如重構(refactoring)。自動重構功能是一
個成熟 IDE的標誌,因為這需要對代碼做深入詳盡的分析。而且這也是一般的多語言編輯器無法提供的功能,除非使用第三方工具。
Aptana Ruby
基於Eclipse的Ruby開發工具已經得到了廣泛使用,尤其是在Rails開發中,RadRails提供的擴充非常好用。RDT和RadRails都已經整合到Aptana Studio中了。而且RDT的主要開發人員Chris Williams也受雇於Aptana。
Aptana的Ruby Studio一直都靜悄悄的,少有動靜。因此我們找到了Chris,談一談最近有什麼新動態。
在過去的6到7個月,我正在忙著我們的新產品——Aptana Cloud。我一直在做關於API/server的所有工作,其用於協調Aptana Studio、第三方託管商,以及裝著網站的主機本身。
正因如此,我不再像過去那樣有那麼多時間給用於Ruby支援和RadRails了。現在我基本上一有空就在修複bug,還有把Cloud支援工具化。如今Cloud已經公布了,我得去實現Rails支援。然後才能差不多全職回到RDT/RadRails上來。
Chris還說他們正在招兵買馬,“確保外掛程式開發能穩定地持續下去”。Ruby開發人員要是想擴充他們的IDE,不必再用Java。
我們有一個外掛程式,能讓終端使用者用Ruby代碼來調用一小部分Eclipse編輯器API——這樣只懂Ruby的人就能夠用它寫一些小的宏/指令碼。如果是JRuby專家,就能用Ruby寫出自己的擴充,訪問所有的Eclipse API。
提示:InfoQ之前談到過JRuby Eclipse指令碼編程。
Aptana現在支援Ruby、JavaScript、Python和PHP。下一個會支援什麼語言?
我們一直在尋找社區中喜歡用什麼開發web外掛程式。當我們看到了足夠的支援的時候,就會投入到這個領域。我們在洗耳恭聽:讓我們知道你們需要什麼。
下一步的計劃是把Studio合入現在的Eclipse Ganymede版本,“添加更多的進階Cloud支援,修複更多的大bug,然後我就能鬆一口氣,在1.3.x RadRails的時間表上制定下一步計划了”。
Ruby開發工具早就支援重構了,實現了比如重新命名、擴充、移動和方法內聯。儘管這種重構還不夠傻瓜化,也不可能在所有情況下都好用,但在多數情況下,能夠顯著減少手工複製粘貼(本文就是利用自動補全寫成的)。
Aptana和RadRails標籤裡面有關於Aptana IDE的更多內容。
DLTK Ruby
這個動態語言工具很特別,他們想要把基於Eclipse的動態語言IDE所需要的所有可重用的組件都整合到一個架構中,由此來協助實現對新語言的支援。Ruby是DLTK最早的語言之一,再加上TCL,構成了DLTK的核心。
不幸的是,DLTK的動靜也不太大。於是我採訪了它的項目負責人Andrey Platov:
一提到TCL,我們就會想到DLTK TCL是最好的TCL IDE之一。我們仍在改進它,並打算把它整合到TCL解譯器上。這些工作不是很容易看到。
關於Ruby(還有通常所說的DLTK):第一,DLTK(包括Ruby組件)是一個平台:我們一開始就沒打算滿足所有終端使用者的需求。例如我們從來沒有
計划過對Ruby on Rails提供任何支援。DLTK
Ruby的目標是為其他廠商提供穩定、乾淨的Ruby語言平台,讓他們基於其建立功能完整的工具。一個很好的例子是來自CodeGear的一個綜合
Ruby IDE,叫做3rdRail。它就是基於DLTK Ruby的。
以 上這些並不是說DLTK Ruby不能獨立使用。它作為一個很好的Ruby編程工具,許多語言愛好者都用它。我們不強迫開發人員採用Ruby on
Rails風格,也不迫使他們用RSpec……只是純粹的語言,和開發人員的創新。從另一個角度來看,這樣一個“乾淨”的IDE,是廠商開發產品的一個很好
的平台,支援架構和他們選擇的技術,並且他們已經免費擁有了頂級的語言支援。
回到你的問題上,我們現在的工作就是讓DLTK Ruby更好地“理解”語言,更妥當地處理Ruby代碼。
“試試看代碼補全功能”,Andrey指給我看。將來的計劃是改進語言支援,來“更好地理解Ruby,提供比如程式碼分析、重構和快速修正功能”。
DLTK暫時沒有打算支援更多的語言,但他們“在為一些公司提供諮詢,開發他們自己的語言的IDE”。Andrey還說,“基於DLTK的PHP開發工具(PDT)2.0即將發行”。還有一些基於DLTK的IDE正在開發,包括ANTLR、Lua、D、Perl和Scheme。各種DLTK開發包在Dynamic Languages Toolkit網站可以下載。
這篇新聞是我們一系列動態語言IDE介紹的一部分。其餘的部分可以在InfoQ的“動態語言IDE”標籤中找到。要是你對Ruby IDE的介紹感到意猶未盡,你或許對InfoQ的Netbeans支援Ruby的文章感興趣:上、下。
查看英文原文:Dynamic Language IDEs: Aptana Ruby and DLTK Ruby