88250

          Java

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            82 隨筆 :: 0 文章 :: 5 評論 :: 0 Trackbacks

          作者 Werner Schuster 譯者 楊晨 發布于 2010年11月13日 下午6時40分

          除了Smalltalkers之外,動態語言程序員使用的工具和IDE等都是用底層語言編寫的。但是是對于用戶(例如開發者)來說,使用原生開發工 具是大有裨益的。例如如果編輯器和IDE是原生的話,這就意味著開發者能夠即時擴展他們的工具,而不需要在另外一種語言和平臺上浪費時間。Java開發者 現在有一大批Java原生IDE可供選擇,而且均可以編寫一些Java代碼進行擴展。不過這種情況對于JavaScript和Ruby來說并不適用。 但是,兩個新發布的IDE改變了這種現狀:JavaScript原生IDECloud9和JRuby原生IDE RedCar

          Cloud9 - Javascript

          使用JavaScript和HTML編寫編輯器和IDE在五年前還是一件很難想象的事情。但是在接下來的數年內,JavaScript VM變得更快,HTML的組件也有足夠的能力構建復雜的編輯器。Mozilla程序員的編輯器Skywriter(前身是Bespin)就是使用Canvas元素和API來繪制的。

          項目最初的時候,Cloud9僅僅是重新組織了一下Eclipse的視覺元素,而且它也同樣使用了Eclipse的插件思想。所有的功能都是由插件來完成 的,包括編輯器,視圖,行為等。JavaScript插件的一個好處是可以輕松處理JSON格式的元數據描述字符,讓插件開發者省心不少。

          從功能上來說,現在討論Cloud9還是太早了 - 至少和成熟的IDE相比。不過現在它已經有很多很方便的功能了。JavaScript Debugging已經支持GUI、Node.js腳本調試的連接器以及Chrome runtimes,并且在GUI中能夠掛起,恢復和設置斷點。這個特性的關鍵在于使用了JavaScript VM的內建調試器。

          Cloud9使用ACE作為編輯器組件。Skywriter 使用Canvas和ACE來繪制編輯器以及操作DOM。編輯器的窗格是DIV元素;ACE能夠決定在編輯器中哪些能夠顯示,把這些內容作為DIV元素渲染 然后加入到編輯器的DIV中。ACE使用多層DIV來渲染編輯器中不同的元素,尤其是光標和選擇高亮的實現。

          看起來現在的HTML渲染器和DOM已經足夠強大,能夠讓ACE高速運行,給用戶感覺是像一個原生的編輯器組件。

          對編輯器組件大有裨益的一個HTML5 API是Web Worker API,這個組件允許JavaScript代碼能夠新建JavaScript進程,而不是所謂的無共享的進程,它們之間的通信是使用JSON格式的數據。 在程序員的編輯器中,在后臺運行任務是非常重要的;每次敲擊鍵盤或者操作都會產生大量的工作。使用正則表達式的語法高亮就是其中之一,但是,現代編輯器需 要解析源代碼來做語義高亮,例如,用不同顏色表示局部變量和全局變量,靜態方法和虛擬方法等。其他的特性還包括代碼折疊支持等。可以聰明地通過使用 setTimeout來在前臺線程中運行這些任務。Web工程師從而不需要破解內部結構,而能夠直接在后臺運行額外的任務,充分利用多核結構。

          雖然名字中帶有云的概念,但是Cloud9還可以默認在本地安裝和運行,并且可以訪問本地文件系統。它在后端使用JavaScript編寫的Node.js文件來通過socket進行通信。Node.js將文件內容封裝成jsdav庫所支持的WebDAV格式。

          Skywriter和Cloud9團隊最近聲稱將興趣放在協作和開發插件共享,特定語言功能等特性。要是這是真的的話,那就又避免了一場IDE戰爭。

          Cloud9 IDE博客提供了新版本的更新信息。GitHub是代碼托管的好地方。Cloud9 IDE可以能夠通過代碼下載安裝,在后端服務器運行Node.js和在瀏覽器中直接安裝。

          RedCar - JRuby

          RedCar是一個可擴展的編輯器,以發展成為IDE為目標。它是使用Ruby,更準確的說是JRuby編寫的。RedCar使用SWT作為GUI框架,這樣使其能夠跨平臺使用。

          內建的REPL使得程序員能夠通過API來探索和發現更多的功能,現存的插件能夠幫助程序員更加簡單地擴展系統。實際上,RedCar也能夠使用HTML/JavaScript進行擴展,而不是僅僅只使用SWT組件或者繪圖API。

          TextMate用戶聽到RedCar能夠支持TextMate插件將會非常高興,因為這將使得遷移工作更加輕松。

          對RedCar的深入介紹以及如何擴展之類的信息都可以在InfoQ對RedCar創建者Dan Lucraft的采訪記錄中找到。RedCar Twitter賬戶或者博客都是獲取這些信息的好場所。RedCar還可以和Ruby Gem共存。

          轉自:http://www.infoq.com/cn/news/2010/11/cloud9ide-redcar-javascript-ruby

           


          本文是使用 B3log Solo簡約設計の藝術 進行同步發布的
          原文地址:http://88250.b3log.org/2010/11/18/cloud9ide-redcar-javascript-ruby
          posted on 2010-11-18 09:47 88250 閱讀(333) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 诏安县| 乳山市| 永顺县| 西峡县| 乐业县| 涟源市| 兴城市| 磴口县| 会同县| 昭苏县| 婺源县| 中卫市| 清远市| 同仁县| 灵石县| 竹山县| 习水县| 阳高县| 白山市| 龙岩市| 卢氏县| 灵宝市| 淄博市| 镇平县| 金寨县| 义乌市| 舒兰市| 鸡泽县| 南郑县| 松滋市| 尉氏县| 闽侯县| 平定县| 高邑县| 柘城县| 通渭县| 镇江市| 永兴县| 金昌市| 平湖市| 巧家县|