InfoQ

InfoQ

News

マイブックマーク

ブックマークするためにログイン または 会員登録 する

ブックマークされました!

ブックマークがエラーになりました。もう一度お願いします。

WebベースのIDEは主流になるか?

作者 Dionysios G. Synodinos , 翻訳者 金森 諭 投稿日 2009年3月6日

セクション
デベロップメント,
設計/アーキテクチャ
トピック
.NET ,
Ruby ,
IDE ,
Java ,
プログラミング
タグ
IDEs ,
Eclipse

先日(2009年2月12日)Mozillaがコード編集用のWebベースフレームワークであるBespin(リンク)をリリースした。そしてその数日後にはBoris Bokowski氏とSimon Kaegi氏がヘッドレスな(GUIをもたない)Eclipseプラグインを使ったBespinサーバ(リンク) を実装した。EclipseConでのWebベースのEclipseワークベンチのプレゼンテーションや、WebベースのIDEでありRuby on Railsアプリのホスティング環境でもあるHeroku(リンク)のような製品のリリースがあったことからすると、WebベースのIDEはすぐにでも主流になりそうだ。

MozillaがBespin (リンク)で目指すのは、ディベロッパの生産性を向上させ、人を引きつけてやまないユーザエクスペリエンスを可能にし、オープンスタンダードの利用を促進するために、コード編集用のオープンで拡張可能なWebベースフレームワークを実現することだ。

数百人のディベロッパとのディスカッション、および私たち自身のOpen Webの開発経験から、高い目標を掲げた機能セットを提案するに至りました。

  • 手軽さ - 編集する人に面倒がらせるようであってはならず、コードにすぐに取りかかれるようでないといけない。
  • リアルタイムなコラボレーション - 仲間とリアルタイムでコード編集を共有ことが簡単で、何も考えなくても一人あるいは複数人でコーディングすることができないといけない。
  • コマンドラインを備える - viやEmacsのようなツールはコマンドラインを備えることのパワーを示してきた。Bespinも同じことができるべきである。
  • 拡張可能性とセルフホスト(各自でホスト環境を実装できる) - Bespinのインターフェースと機能は優れて拡張可能であり、かつUbiquity(リンク)(コマンドラインを手軽に実行するFirefox拡張)風のコマンドやプラグインAPIによってユーザが容易にアクセスできるものでないといけない。
  • すこぶる速い - 巨大なサイズのファイルでもスムーズに編集できるようでないと単なるおもちゃにすぎない。
  • どこからでもアクセスが可能 - どこからでも、どのデバイスからでも、標準に準拠したブラウザを使えば利用可能なコードエディタでないといけない。

Bespinの現在のバージョンはまだプロトタイプの0.1で、基本的な機能のみサポートされている。その機能には、構文ハイライト、巨大ファイルの扱い、Undo/Redo、ブラウザでのファイルのプレビュー、プロジェクトのインポート/エクスポートなどがある。

Bespinについてもっと知りたい場合は、デモを試してみる(リンク)、あるいはソースコード(リンク)を見てみるといいだろう。

Bespinのリリースからたったの数日後、Boris Bokowski氏とSimon Kaegi氏がEclipseコンポーネントを使ったEclipseベースのBespinサーバ(リンク)を実装した。

私たちはEclipseでBespinが使えたら便利じゃないか?既にあるEclipseプラグインを使って自分たちがBespinサーバを作ったらすごくないか?と考えました。

そうしたら2日の開発時間でEclipseベースのBespinサーバができてしまったのです!

Simon Kaegi氏(リンク)と私はその開発のために部屋に閉じこもりました。私たちはその成功をここに宣言し、コードをe4プロジェクト(次期Eclipse)の一部として興味ある人すべてと共有することにします。もしいろいろやってみたい方は、このWikiページ(リンク)を見てください。

ご存知のようにEclipse IDEはOSGiベースのアプリケーションで、全体がコンポーネント(プラグインやバンドルと呼ばれます)から成り立っています。そして基盤となっているリソースモデルやインクリメンタルなJavaコンパイラといった多くのIDEコンポーネントがヘッドレス(GUIなし)で動かせたり、サーバ上で動かすことができるようになっています。ヘッドレスなコンポーネントのおかげで、Bespinのクライアント-サーバAPIの実装は非常に簡単でした。 MozillaのBespinサーバと同じように、私たちのサーバもファイルやフォルダを見たり、ファイルを編集することができます。これに加え、コンパイルエラーや警告の表示、匿名CVSを使ったCVSサーバからのチェックアウトといった機能も実装しました。
 

このプロジェクトは次世代のEclipseプラットフォームに取り組むe4コミュニティにおいて作業が継続していて、Bespinのクライアント-サーバAPIの実験版が提供されている。
 

この方面の製品として挙げることのできるHeroku(リンク)は、WebベースのIDEかつRuby on Railsアプリケーションのホスティング環境であり、次のような特徴 (リンク)がある。

  • 即時デプロイ
  • オンライン編集
  • Gitをサポート
  • 手軽に可能なコラボレーション
  • フルスタック
  • 融通性のあるパフォーマンス
  • Railsコンソール
  • コマンドラインによるコラボレーション
  • その他多数

Heroku(リンク)がEclipseのコミッタであるElias Volanakis氏に与えた第一印象はかなり良かったようで、彼はJavaでも同じようなことができないだろうかと思ったようだ(リンク)

アプリがウェブ上にあり、ソースがすなわちバイナリである(Rubyはインタプリタ型です)のなら、IDEもウェブにあっていいはずではないでしょうか?ツールやコード、そして実行環境がすべてオンラインにあれば多くのことが容易になります。

  • 手軽に始められる:ソースコードにはどこからでも簡単にアクセスできます。IDEのセットアップはいりません。Ruby on Rails環境のセットアップもいりません。コードをチェックアウトする必要もありません。データはどこでも手に入るのです。
  • 手軽なコラボレーション:ある人のためにアカウントを作ります。そしてログインページのリンクをその人に送ります。それでコラボレーションが始まります。(できれば共同作業がおこなわれるといいですね)。
  • アプリのデプロイがすぐできる:正しいサーバを見つけ設定する必要はありません。
  • 全てをホストしていることで、ホストでのソース展開が素晴らしいものになる可能性がある:気になったウェブアプリケーションを見つけたときに、「マイアカウントにデプロイして実行」ボタンをクリックするだけで「試乗」ができたらどんなにいいか想像してみてください。

こういったことはRubyによく適したものだと思いますし、「試乗」(リンク)ができるようにしたいと思っています。

では、これをJavaのWebアプリにも適用するにはどうすればいいでしょうか?

 

この分野での別の興味深いプロジェクトがcodepad (リンク)だ。これはオンラインのコンパイラ/インタプリタで、シンプルなコラボレーションツールだ。

codepad.orgはオンラインのコンパイラ/インタプリタで、シンプルなコラボレーションツールです。codepadはペーストビン(pastebin:テキストやコードを共有するサービス)の一種ですが、そこに貼られたコードを実行してくれます。自分の書いたコードを貼り付けると、codepadがそれを実行し共有するためのURLを作成します。このURLをチャットやemailで貼り付ければ、相手がどうすればいいかを手助けしたり、相手にどうすればいいかを見せることができます。あるいは手元にインタプリタがない時にcodepadを使うこともできます。またcodepadは多くの携帯電話で動作します。

 

WebベースのIDEは他にもあり、それぞれ成熟度や特徴が違う。

これら新しいプロジェクトが出てきている中、 みなさんはWebベースのIDEは近い将来ありふれたものになると思われるだろうか?

原文はこちらです:http://www.infoq.com/news/2009/02/web-based-ide

特集コンテンツ一覧

GAE開発の落とし穴

Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します

イベントレポート:「Coqチュートリアル#1」

去る1月12日、定理証明支援系ツールCoqの初心者向けチュートリアルが開催さ れた(http://kokucheese.com/event/index/23667/)。今後も2月2日 (http://kokucheese.com/event/index/23744/)、2月9日、2月16日と引き続き開 催されていく予定である。本記事では、開催の様子をレポートする。

Javaの未来についてのNeal Gafter氏とのディスカッション

Choosing Options

Neal Gafter氏はOracleによるJava買収の影響に関する議論、Javaにセグメンテッドスタックやメタオブジェクトプロトコルを追加することについての主張、そしてJavaとC#との比較について話をしてくれた。

Google Dartのエッセンス:アプリケーションの構築、スナップショット、Isolate

GoogleはVMをともなう新しい言語であり、JSコンパイラでもあるDartをプレビューした。 InfoQはDartのアプリの構築に貢献する文法の裏側を探った:スナップショット、Isolate、モジュール方式

CSPベースのモデル検査ツール「Process Analysis Toolkit」

本記事ではCSPベースの「マルチドメイン・モデル検査ツール」である、PAT(Process Analysis Toolkit)について紹介する。モデル検査は、形式手法(Formal Method)という方法論を基礎とする技術であり、複雑さが増大しながらも安全性を求められる、現在のソフトウェア開発の状況に対する処方箋の1つとして注目されている手法である。

Jenkinsによる継続的インテグレーションのススメ(4) ~CloudBeesでJenkinsをサービスとして使う~

前回まで、Jenkinsの幾つかの側面に注目して解説をしてきました。シリーズ最後の今回は、Jenkinsをサービスとして使う方法を紹介します。

書籍『抽象によるソフトウェア設計-Alloyではじめる形式手法-』の紹介

Alloyは、MITにて開発された仕様記述言語であり、ツールによる自動解析を使い、インクリメンタルに形式仕様が書けることが特長である。筆者らはAlloy開発者による、Alloyを使った形式手法入門書を翻訳、今夏にオーム社より刊行した。本記事では、Alloyの簡単な概要と、翻訳書『抽象によるソフトウェア設計』(「Alloy本」)を紹介する。

Windows デバイスで開発するタッチユーザーインターフェイス

スマートフォンを中心としたマルチデバイスにおけるタッチユーザーインターフェイスへの対応は、既に必須の項目となりつつある。本記事では、Windows デバイスにおける UX のベースとなっている「メトロ」というデザイン言語を掘り下げながら、既存環境を意識しつつもどのようにタッチユーザーインターフェイス開発に取り組んでいくべきであるかについて解説していく。