以下斜め読んだ内容

pseudo translation of useful posts, book reviews, remarks,etc. twitter: feeddict

Bespin仕切り直し:SproutCore/PythonからjQuery/Node.jsへ


mozilla labのプロジェクトの1つbespinが実装方法の見直しがされた模様。
フロントエンド(GUI)周りはjQueryへ、サーバーサイドはNode.jsへ変更。
メインで開発してるKevin Dangoorが、ブログエントリやgoogle groupで報告してた。

Bespin Server roadmap

Googleグループ「Bespin」での投稿。
Bespinのサーバーサイド開発ロードマップの報告エントリ
サーバサイドの開発言語をpythonからjavascript(CommonJSライクな実装)に変更するとアナウンス

以下斜め読んだ内容

投稿を内容を一言で・・・

  • クライアントサイドの開発に区切り。次はサーバーサイドへ注力
  • BespinサーバーのコードををNode.jsに書き直してる。
  • CommonJSのようなプラグイン機能を実装したい
  • Bespinのホスティング方法へも変更
  • 分散モデル強化
    • 色々ななサーバーでデプロイできるようにする
    • OpenID/OAuth/XMPP利用できるようにする
    • カスタマイズできるように
    • ご意見頂戴

本論

  • 2009年末までにでBespinのエディタ部分の開発の目処はついた
    • 終了という意味ではない。6月くらいまでやる。
  • 大規模コードに対応したホスティングサービス運用は、Mozillaにそぐわない
    • プロジェクト初期からの懸念事項
  • Bespinサーバはどうあるべきかずっと検討してきて、ようやく結論でた
    • 出した結論について意見請いたい
  • "coding in the cloud"
    • bespinのコンセプト
    • coding/cloudは、言い換えると、プログラミング環境/サーバー
    • coding/cloudの関係をどう位置づけるかが大事
    • coding/cludの関係は「Bespin Embedded」をリリースしたところから込み入ってきた
  • Bespin EditorとBespinサーバーは分離して考える
    • 常時ネットワーク環境にいないでエディタ使ってる/コーディングしてる人たちがいることを意識
  • クラウドでのコーディングの生産性をアップするのに必要なもの
    • バージョンコントロール(選択肢は、git/svn/hgの3つ)
    • リモートサーバーへのアクセス(書いてみたコードをサーバーサイドでテスト)
  • クラウドで移行しなくても大してメリットを享受できないような小規模開発チームがあることを意識
  • 各開発チームが運用してるサーバーへBespinをインストールできるようにする
    • Bespinをインストールしたサーバーをカスタマイズの余地を残しておけるようにする
    • 自分が運用してるサーバーの方が信頼性が高い場合があることを意識
  • Bespinのgitサポート
    • svn/hgのサポートは?という話になり、できないことないが、必要としない人たちもいる
  • 開発規模のスケールが常に問題というわけでない
    • ファイルの管理につぎ込むというバージョンコントロールと別種の労力は発生する
    • スケールが問題にならない開発現場(個人、数名規模チーム)があることを意識
  • サーバーサイドのコードを手軽にプレビューできるようにすることは、信頼性のない環境では難しくなる
  • Node.jsを使う
    • Bespinのキモであるリアルタイムコラボレーションの実装に最適
  • CommonJS modulesも使い、クライアント/サーバーでコードが共有されてる
  • 新Bespinサーバーではプラグインシステムを実装する
    • Bespinのファイル編集、時間をまたがったコラボレーション機能をプラグインとして実装
  • Bespinから(Bespinサーバー以外の)サーバーへアクセスできるようにもする
    • 実際には現時点でこの機能自体は使える
    • 今後はWebDAVもサポートしてく
  • 無料or安値で一緒にやってくれるホスティング会社探してる
    • こうしたサーバーでBespinユーザが自分用のBespinサーバーを設置できるようにしていきたい
  • お蔵入りのPythonコードは?
    • 自分を含めたBespinチームは、Node.jsでサーバーサイド実装していくことへシフト
    • Pythonサーバー用のコードはオープンソースとして公開していくので、自由に使ってOK
  • bespin.mozillalabs.comはどうなる?
    • 今後もデモとしては存続する
    • 利用できるエディタ機能はどんどん削られてく
    • bespinユーザが使っているサーバーでBespinを動かすという方向性で

Bespin and jQuery

ブログBlue Sky On Marsの2010.5.25のエントリ

以下斜め読んだ内容
  • Bespinはサーバーサイドが変った(Python>>Node.js)が、フロントエンド部分もSproutCoreからjQueryへ変更したとgoogleグループで報告した
  • Bespinは「ウェブアプリケーション開発用の、カスタマイズ可能なプログラミング環境」
    • 帰結1:開発中のウェブアプリに、Bespinは埋めこみ可能である
    • 帰結2:ウェブアプリのためのプログラミング開発環境
  • おさらい:フレームワークかライブラリか
    • ライブラリは、自分が書いてるコード「から」呼び出すもの
    • フレームワークは、自分が書いているコード「を」呼び出している
    • サイズはまちまち。フレームワークの方がサイズ大とは限らない。
    • フレームワークを使うとアプリ作りはとても速くなる
  • SproutCoreフレームワークで、GUIツールキットとしては良かった・・・
    • SproutCoreは、bespin.mozillalabs.comだけで動かす分にはよいツールだったけど、みんなのサーバーへBespinを埋めこんで使うという前提に立つと、やりたいことにフィットするものでなくなった
  • 独自ライブラリを作らずjQueryを選んだ
    • モダンブラウザで使うこと限定なんだから、ライブラリ自前で作ったほうが良くね?という声あり
    • オレオレライブラリ作るべきか検討した
  • 自前でライブラリを作るとのデメリット
    • 要テスト
    • 要メンテ
    • Bespinをカスタマイズするユーザは、学習しないといけないことが増える
    • 要ドキュメント
    • ユーザが作った便利機能は移植しないと使えない
    • ファイルサイズアップにつながる
  • 自前でライブラリを作るとのデメリット
    • 必要な機能だけ入ったライブラリ作れる
    • 自分でリリーススケジュール立てれる
  • jQueryにしたわけ
    • とてもポピュラー
    • Bespin全体のサイズダウンもできた
    • ドキュメント豊富
    • プラグイン豊富。Bespinをカスタマイズ/拡張したいときにそのまま使える

Kevin Dangoorについて

  • Bespinでメインで開発してる人?
    • googleグループで一番投稿数多い。
    • mozillalabs.comでのBespin関連のリリース記事書いてる人
  • mozillalabs.com
  • TurboGearsPythonフレームワーク)の開発者
  • 他にもPaverPythonでパッケージをビルド・配布するにに使うツール)
    • とりあえず「easy_install Paver」してみた
  • CommonJSプロジェクトを始めた人