<< September/2010
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
>>
2/12~13まで行われていた「Developers Summit 2009

とりあえずレポート第1弾として、
Rubyに関連する(というより関係が深い)セッションについてまとめました

なお、メモした内容と記憶から起こしているので、
必ずしも話の内容について正確ではないかもしれません
また、一部順序を入れ替えているところもあります

ですので、他の方のレポもぜひ参考に



未来へつながる言語~ある言語おたくの視点から
by まつもとゆきひろ 氏

<開始前>
・わりと年配の方も多い
・もらった資料によるとRubyの資格制度がある?
 →Ruby1.9のセッションで理由判明

<内容>
・最初に触ったのはBASIC
・Pascal→LISPと学んでいく
 ・本を読んだだけで「わかった気になった」
 ・そもそも、BASIC以外の実行環境がなかった
・BASICに限界を感じる
・言語を作ることが夢に
・大学の卒論で言語を作る
 ・多重継承とかあったらしい

・今日はRubyの話・・・と見せかけて、その話ではない
 ・(言語の進化に関する話)

・世界最初の言語はFORTRAN(1954~)
・と見せかけて、「Plankalkül」(1948~)
 ・ドイツ
  ・ドイツの技術は(ry
   ・JOJOネタだっけ?
   ・こういうネタが講演随所に
    ・ノリノリね(`・ω・´) b
 ・なんと例外機構がある
 ・でも、仕様が複雑すぎて実装不能
  ・実装できたのは2001年になってからΣ(・ω・ノ)ノ

・なので、初期の言語はこれ
 ・FORTRAN/COBOL/LISP
  ・1950年代
 ・まつもと氏の会社の半分はRubyだが、残りはCOBOL
  ・レセプトのシステムをフルOSSでCOBOLで実装
  ・コンパイラまで全部自作
  ・6000もの病院で採用済み

  ・たぶん、COBOLだって用途があって作られたのだから、
   その技術や技術者を捨てるのはもったいないという発想だと思う
   ・言語にはそれぞれ作られた理由があるって発想が、
    まさに「言語おたく」なんだろう

・FORTRAN:数値計算/ベクトル計算/HPC
・COBOL:オフコン/汎用機/レコード処理
 ・事務系では最も楽に書ける@COBOL技術者
・LISP:人工知能/大学・研究

・BLISS/C/C++→C/C++ Java Perl/Python/Rubyへ
 ・PHPはあえて入れなかった@まつもと氏
  ・会場大うけ
   ・やっぱりPHPは認めたくないのね(´・ω・`)
    ・気持ちはとてもよくわかる

・進化の要因とは?
 ・簡潔さ
 ・新パラダイム
 ・外的要因
 ・「温故知新」
 
 ・生物の進化論と似たようなもの
 ・その時代にマッチしたものが主流となって生き残っていく

・簡潔さは力なり
 ・前の問題を解決するために次が現れる
 ・より少ない記述へ抽象化が進む

 ・Brooksの法則(生産性の法則) → 「人月の神話」の人
  ・「PGが1日に書けるコード量は、言語にかかわらず一定である」

・パラダイム
 ・構造化(70年代)
 ・オブジェクト指向(80~90年代)
  →これらはもう当たり前

 ・論理型プログラミング => 行方不明
  ・Prolog
 ・関数型プログラミング => Hot!!

・外的要因
 ・昔はマシンコスト>>>>>>人的コスト
 ・今は逆転
 ・開発費は変わらないのに、やることは複雑化

 ・ムーアの法則
  ・以前は勝手に環境の方で処理が加速していった
   ・ムーアの法則は限界
 ・マルチコア・メニーコアへ
  →PGのレベルで対応がまた必要な時代へ

・温故知新
 ・Javaで普及した技術:VM/GC/例外
 ・これらは全部昔からある技術
 ・Javaで普及しただけ

 ・普及の過程:冒険→改良→普及
  ・Simula→Smalltalk/LISP→Ruby(オブジェクト)
  ・FP→StandardML→Haskell/OCaml(関数型)

・メインストリーム
 ・Java/Ruby(オブジェクト)→Haskell/Erlang(関数型)→APL?
  ・Rubyも関数型を取り込みつつある
   ・宣言的
   ・並列

APL
 ・ベクトル/行列・配列が得意
 ・書けないし読めない
  ・まつもと氏も読めない
 ・でも生産性は高いらしい

<終了後>
・オライリーのRuby本を買うとサインしてもらえた

<感想>
・マニアックではあったけど、話自体がとても面白かった
・まつもと氏のキーワードは、どうも「温故知新」らしい
・ぶっちゃけ、この話を聞くまで「関数型プログラミング」を軽視していた(´・ω・`)
 ・現在高速に情報収集中



Ruby 1.9の現状と導入ポイント
by Yugui 氏

<開始前>
・まつもと氏のセッションより年齢層低めの印象
 ・実務担当の集まりっぽい

<内容>
・前提:今日帰ったら即1.9.1へ移行せよ

・Ruby2.0がひとつのゴールである
 ・1.8→1.9はJava1→2くらいの進化
 ・1.9→2.0へはJava2→5.0くらいの飛躍が必要

・1.8.8も出る予定
 ・1.9のコードが「パースできる」だけで、動くとは限らない
 ・1.9へ移行しやすいようにリリースされるもの

・やはり「温故知新」という言葉が

・1.9のTopic
 ・改善された開発体制からリリースされた
 ・「Rubyらしさ」を追求
  ・(RubyでできることはぶっちゃけLISPでできる、と言っていた)
  ・今後はRubyへ移行するのにだけ必要だった要素を徐々に切り捨てていく

・開発体制

 ・Redmine
  ・Ruby開発のトラッキングシステム
   ・現状は「とりあえずMatzに聞け!」
   ・メーリングリストと連動するおかげで、かなり利用されるように
  ・RoRで実装
   ・Rubyの中の人たち曰く「Railsもただのアプリだろ( ゚Д゚)y─┛~~」
   ・とはいえ、普及に貢献しているのは間違いない
   ・開発体制をRoRで構築した以上、RoRがこけるとRubyもこける
    ・一蓮托生
     ・でも、たぶんRuby自体はこけないと思う・・・
  ・細かいRuby関連の情報はこれのWikiを見てほしい

 ・branch
  ・メンテポリシーを定めた
  ・1.8系は2つ
  ・1.8.8で1.8.6が切られるかは不明
   ・「自分は1.9担当だから知らん( ゚Д゚)y─┛~~」
  ・1.9は一つだけ
   ・でも、1.9.2の後も、場合によっては1.9.1も・・・?

 ・support
  ・サポートレベルを4段階定義
   ・サポート
    ・継続的なメンテがある
    ・全テストにPASSしている
   ・大体動く
   ・たぶん動く
   ・知らんがな( ゚Д゚)y─┛~~

 ・ドキュメント
  ・有志がメンテ中

 ・標準化
  ・進めてはいる
  ・でも、自由な進化の妨げにもなるので微妙な面も
  ・一方で、お役所の調達には必須だったりとか・・・

 ・RubySpec
  ・いろいろなRubyの間で互換性を保持するテストの仕組み

・仕様の安定性
 ・もうかっちり仕様が固まった
  ・ブロックの仕様
  ・lambda
 ・大きなレベルでの変更はもうない
 ・なので、安心して移行していい
 ・1.9.0はすべてのテストをPASSできなかった
 ・1.9.1は100%
 ・Railsはまだ対応しきれてない
 ・Gemを標準で取り込んだ
  ・そのためモジュール起動が高速化
  ・以前はワンテンポ待たされたが、もう待たされない

・YARV
 ・中間コードを生成するようになったことが大きい
 ・つまり、他のVMで動かせるということ
 ・いろいろ進行中だが、まだ中間コード自体の仕様が固まってない
  ・Ruby1.9が固まってない、ということではないと思う

・M17N
 ・エンコードを内部で保持
 ・違うもの同士で処理しようとすると、自動で変換
  ・それがバグの温床になりそうだな・・・
 ・エンコーディングを間違って処理しようとすると例外があがる
 ・String#each廃止

・Rubyアソシエーション
 ・いくつかの企業が協業してRubyの普及を進めていく
  ・この一環がRuby認定試験と推測
   ・つまり、お墨付きがあるわけか
    ・なら受けてみるか・・・

・移行手順
 ・$KCODEからマジックコメントへ
 ・ライブラリの対応確認
 ・文字列周り確認
 ・消されたメソッドはすでに使われてないか、他に手段があるもの
  ・それぞれ対応を探す

・最後に
 ・さっさと1.9に移行汁( ゚Д゚)y─┛~~

<感想>
・この人もかなり個性的
 ・微妙に火の星座っぽい
 ・たぶん牡羊座か射手座あたり
 ・そういえばまつもと氏も牡羊座+天秤座か
  ・そんなのどうでもいいね(´・ω・`)
・Gem関連の起動が高速化されたのはかなり大きい
 ・今のシステムのネックがそこだけに
・さっさと移行はしたいけども、今のシステムはARを使っているので、
 ARが1.9.1に対応してくれないと・・・
・なお、「( ゚Д゚)y─┛~~」を多用したのは、本当にそんな雰囲気だったから
 ・やっぱり牡羊座っぽいな・・・

[ Web技術 ] comments (0) trackback (0)









http://www.parrot-studio.com/studiwo/tb.php/144
NEW ENTRIES
RECENT COMMENTS
CATEGORIES
ARCHIVES
LINK
PROFILE
POWERED BY
 Script by ⇒ BLOGN+(ぶろぐん+)
 Skin by ⇒ vivid*face
OTHER
SEARCH
LOGIN
現在のモード: ゲストモード
ID:
PASS:
AdSense

<NEXT  PAGETOP  BACK>