東大の増原さん。Ruby「で」プログラミングを教えているという話。
何でRubyか?
大学でのコンピュータサイエンス学科の人気低下。=>ハッカー以外の学生をどう惹きつけるか?
プログラミングを楽しく。(v.s. Java)
Yumi3は企業向けのソフトウェア教育。
「社内でRuby開発者を増やすには」自分たちで教えましょう。
実習はペアプログラミング!
TDD。だけどテストコードは講師が与える。
社内だけでなく、コミュニティでも教育をしましょう。
Yuguiさんは、RSpec によるBDD。
Subversionは共有フォルダ代わりになれさせた。
COM + ASP.NETの火消を諦めて、SeleniumとRSpecをツールにRailsで書き換え。
Yuguiさんたちのお手本がみんなに普及。
Ruby M17Nについて。
CSI方式<=> UCS Normalization方式
Stringはバイト列のまま、それぞれのStringのインスタンスがエンコーディングを持つ。
様々なRuby1.9のM17N機能の説明。
Martin J Dürstさんのコード変換機能の話。
変換のハブはUTF-8。バイト毎に2つのテーブルを参照。
Encodingを意識しましょう。Encodingに依存しないコードを書きましょう。Magic commentを書きましょう。だそうです。
まつもとさんの基調講演は「プログラミング梁山泊」。
LISPは梁山泊だった。
FORTRAN/COBOL/Adaは梁山泊ではない。(仕事の道具。技術より結果)
UNIXも梁山泊。
Smalltalkも梁山泊。
Java(の一部)も梁山泊。(LISPやSmalltalkの技術を吸収しながら進化し続けたJVM)
- 技術者が集まる
- 新しい技術が生まれる
- 世界が変わる
Ruby梁山泊!!!
多数の実装が生まれている。Smalltalkなどの技術も流れこみ始めている。
互換性はRubySpec。標準規格もつくる。(政府調達に必要!)
楽天との共同研究も紹介。(by 楽天)
ROMA(止まらない・成長する分散ハッシュ)
fairy(スケーラブルで妥当な速度の使いやすい分散処理)(MapReduceの真似ではない新しいもの)
Evan PhoenixのRubinius。
ルーズでファンなコミュニティを心がけているとか。
class Rubinius < Smalltalk
include Ruby::Syntax
include Ruby::Behavior
include GoogleSearch("crazy cs papers")
end
だそうです。
コンパイラをRubyで実装しているのが特徴ですが、コードもデータ(S式)に変換してコンパイルするのだそうです。
また、コンパイラにプラグインがかけるというのもおもしろい所。
コンパイラが出力したバイトコードをデコードして確認できる所が、実験的は便利そうです。
Cでかかれた拡張ライブラリをサポートするAPIを持っていますが、CRubyと違って別に管理されるオブジェクトだそうです。GCで移動加納というメリットはありますが、その代わり遅い。
マルチVMも実装済み。
JRubyはCharles Nutter。
デモ中心だそうで。
JRuby 1.1.3は30%高速化するとか。でもその話はさわりだけ。
JRubyでSwingプログラミングが簡単に。MonkeyBarsの紹介。
Java OpenGLを使った2D グラフィックライブラリの紹介。
音声に反応するグラフィックスのデモも、Javaのライブラリで簡単と。
最後にWebアプリの話。JRubyでもっと速くできると。
Deployはwarblerでwarにするのは簡単。GlassFishにデプロイするのもコマンド一発というデモ。Merbも同じようにデプロイ可能だそうです。
GlassFishのgemのデモも。