日本Ruby会議2008 2nd day メインセッションAM2

matzを説得する方法 (田中哲さん)
  • Ruby開発プロセス
    • 何かを提案→matzが受け入れる→提案した変更が採用される
    • Rubyを変えるためにはmatzを説得する必要
  • YARVの例: 実行速度
  • バグレポートは通りやすい
    • 明らかに変であること (SEGVなど)、再現可能な報告 (実行例)
  • 新機能・機能変更
    • バグレポートよりも難しい
    • 変更の動機は何か? 何が問題か?
  • 事例: スタックとレースの途中が省略される
    • MLに投げると、自分で表示するコードを提案
    • 受け入れられた理由: 省略の意図を尊重、設定がない、繰り返し話題が出ていることを指摘
    • 受け入れられなかった案: 設定 (クラスメソッド、コマンドラインオプション、.rubyrc)
  • 受け入れられやすい条件
    • 副作用がないこと、一般的な問題 (特定個人の問題でない) であること、他言語で採用されている、余計な変更を含まない、など
  • その他のノウハウ
    • 一貫性よりも便利であることが優先
    • 名前問題: 良い名前が決まらないために入らないこともある
    • 互換性問題: 短期的な互換性よりも長期的な利点が優先、ただし短期的な痛みの軽減も重要
    • 他言語でのアプローチを調査
日本Rubyのリファレンスマニュアル2008・初夏 (青木峰郎さん)

独習Java第4版

  • 執筆支援システムReVIEW (青木さん自作): 他の著者に使ってもらえた
  • リファレンスマニュアル刷新計画とは
    • より完全で便利なマニュアル
    • 2006/8スタート
  • 改善点
    • しっかりしたプロジェクト体制→うまくいっていない
    • 高品質なドキュメント、より厳密でメタデータを取りやすいファイルフォーマット
  • タイムライン
    • 2006/8 プロジェクト開始
    • 2007/1 メソッドエントリ完了
    • 2007/12/15 1.8.6マニュアルリリース
    • 2008/5/3 スナップショット #1 リリース
    • 2008/5/30 スナップショット #2 リリース
  • 現在のリリース
    • メソッドカバー率 31.2% 標準ライブラリ
    • tkとSOAP抜き: 52.0% (2007年 2%)
    • 組み込みライブラリ: 97.2% (1.8.7追加、1.9追加も含む)
  • RedMineによるITS導入
  • システム改善
    • Ruby言語仕様などが表示できるようになった
    • メソッド検索ができるようになった
  • 今後の予定
    • 2008/6 1.8.7対応マニュアルをリリース予定 組み込みライブラリ 100%を目指す
    • クラスリファレンス 2009Ruby会議までに100%を目指す (tk, SOAP以外)
    • 合宿でREXMLを撃破
    • Ruby言語仕様: 青木さん執筆予定→無理っぽい 水面下で交渉中
    • C APIリファレンス: プランなし
    • システム (BitClust): 静的HTML出力、新しいデザイン
    • ライセンス変更: (現在) 変な独自ライセンス → CCの「表示・継承」(Creative Commons Share-Alike License): 複数のMLに提案→一定期間放置→ライセンス変更実施
  • Q&Aから
    • ReVIEW: 青木さんSVNレポジトリでひっそり公開
    • 他言語版の扱い: 当面は各言語で独立して作成、BitClustの他言語対応は考慮されていない
The future of Ruby in Mac OS X (Laurent Sansonettiさん)

藤本さん (RubyCocoa作者)

  • MacOS Xに触り始める
  • Rubyは前から触っていた
    • irbを使ってメソッドの動作を確認
    • irbを使ってCocoa APIの動作を確認したい → NSObject を叩く拡張ライブラリを実装
    • ウィンドウが開けるように拡張
    • いろいろいじっているうちに、アプリが作れるまで機能拡張

中川さん (LimeChat on RubyCocoa作者)

Laurent

  • デモ
    • Interface BuilderによるGUI作成
    • Rubyでロジックを記述
  • RubyCocoaはどうやって動くのか?
    • Cocoaオブジェクト (NS*) に対応して、Rubyのプロキシオブジェクトを作成
    • プロキシオブジェクト−Cocoaオブジェクト間通信、プロキシ側での型変換
  • 問題点
    • プロキシによるメモリの浪費と遅いディスパッチ
    • マルチスレッド使用時に不安定
  • MacRuby

Q&Aから

  • iPhoneMacRubyは載るか?
  • MacRubyはいつMacOSに載るか? そうなると、RubyCocoaはフェードアウトするか?
    • 時期は分からない。RubyCocoaは存続する。]
  • MacRuby: Ruby 1.9の開発に追従するのは難しいのでは?
    • 2週間ごとに変更をマージしている。確かに手間が大きい。