RubyKaigi 2010 2nd day

  • softbank 回線は絶望的
  • wifi も人数が多いせいか絶望的
  • ここで emobile も絶望的っぽいので、回線はあきらめることにした

RubyKaigi 2010 2日目

<ul>

  <li>昨日疲れたからか、かなりよく寝れたっぽいのが功を奏している気がした。</li>

</ul>

jpmobile 会議

<ul>

  <li>参加者の皆さんにより、いい情報交換ができました。</li>

  <li>後ほど別にまとめよう</li>

</ul>

基調講演: Matz

<ul>

  <li>Ruby 2.0</li>

    <ul>

      <li>Ruby 1.9.2</li>

        <ul>

          <li>Ruby 1.9.2 Award</li>

            <ul>

              <li>遠藤さん( @mametter )</li>

            </ul>

        </ul>

    </ul>

  <li>キーノートの苦悩</li>

  <li>Ruby 2.0 (笑)</li>

  <li>完璧に近い言語が、ある種限界</li>

  <li>Ruby は十分に良い言語</li>

  <li>つくばくんだり</li>

  <li>Matz's Goal: To Make Ruby nearly perfect</li>

  <li>"珍しくRubyのプログラムが書かれている"</li>

  <li>積み残しがある</li>

    <ul>

      <li>Local variable propagation</li>

        <ul>

          <li>使われていたら自動的にブロックの外側へ伝播させる</li>

            <ul>

              <li>「でも重箱の隅をつつくようなことは気にしないよ!」と言われる</li>

            </ul>

        </ul>

      <li>Mix-in defect</li>

        <ul>

          <li>インクルード時の構造が取り込まれるので、後で追加しても反映されない</li>

        </ul>

      <li>No private method</li>

      <li>Global monkey patching</li>

        <ul>

          <li>Classbox</li>

        </ul>

      <li>Integer division</li>

        <ul>

          <li>5 / 2 #=> 2</li>

          <li>mathn ?</li>

            <ul>

              <li>mathn + Classbox</li>

            </ul>

        </ul>

    </ul>

  <li>Mix-in defect</li>

    <ul>

      <li>Inheritance : 継承</li>

      <li>LSP : Liscov Substitution Princible</li>

        <ul>

          <li>Liscov 置換原理</li>

        </ul>

      <li>undef があるので LSP じゃない</li>

      <li>Ruby の継承は方としての整合性などは重要視されていない</li>

        <ul>

          <li>多重継承もないし</li>

        </ul>

      <li>そこで Mix-in</li>

        <ul>

          <li>多重継承の使い方の一つの方法</li>

        </ul>

      <li>Non primary class == Module</li>

      <li>Problem</li>

        <ul>

          <li>名前の衝突を検出できない</li>

            <ul>

              <li>解決法もない</li>

            </ul>

          <li>継承関係の変更に追従できない、とか</li>

        </ul>

      <li>名前の衝突の検出</li>

        <ul>

          <li>意図的か?事故なのか?</li>

          <li>alias を使った解決法は泥臭い</li>

          <li>alias もコンフリクトする</li>

        </ul>

    </ul>

  <li>mix</li>

    <ul>

      <li>Traits-like ( from smalltalk )</li>

      <li>本当に"混ぜ"る</li>

      <li>mix <mod></li>

        <ul>

          <li>モジュールのメソッドをすべてコピーする</li>

          <li>名前が重なるとエラー</li>

          <li>mix だと定数が取り込まれない</li>

          <li>mix 時に名前をどうするかを指定できる</li>

          <li>明示的に取り込む定数を指定できたりする</li>

          <li>定数も被らないように変更することができる</li>

        </ul>

      <li>include よりも mix が短い</li>

      <li>まだ真の private method が無いことが問題になる</li>

        <ul>

          <li>そこで classbox</li>

        </ul>

    </ul>

  <li>Ruby 2.0</li>

    <ul>

      <li>もうすぐ始まる</li>

      <li>1.9 からはそれほど変更ないかも</li>

      <li>Traits</li>

      <li>Classbox</li>

      <li>キーワード変数</li>

      <li>互換性に問題のない些細な問題</li>

    </ul>

  <li>mix は順番によって違わないことが重要</li>

  <li>"kind_of? とかくそ食らえ"</li>

</ul>

KSP

<ul>

  <li>つつがなく終了</li>

  <li>"あなたが想像していたかくたにさんでしたか?"</li>

</ul>

M-x ruby-and-emacs-workshop

<ul>

  <li>iknow の zev さん主催</li>

  <li>裏番組が JRubyKaigi 2010 と Vim とペアプロという、これまた熾烈な戦い</li>

  <li>すべて emacs の中で実行しています。</li>

  <li>emacs 24 では ELPA がデフォルトになるらしい</li>

  <li>irbsh</li>

  <li>M-x occur</li>

  <li>M-x <space> で複数のスペースが一つになる</li>

</ul>

UNIX 修正主義

<ul>

  <li>akr さん</li>

  <li>ちゃんと聞けてなかったので他の人のを見ることにしよう</li>

</ul>

Lightning Talks

 
comments powered by Disqus