Ruby合宿一日目

移転しました。

はい、現在Ruby合宿に来ております。

8月 8日(土)〜8月12日(水)の4泊5日、
島根県立 松江商業高等学校
http://www.pref.shimane.lg.jp/sangyo/rubycamp.html

名古屋から片道11時間近くかけて青春18切符を使って、松江入り。
意外となんとかなりました。


Ruby合宿、始まるやいなや、まつもとさんが登場し、講演が始まりました!!いつもは、Web上でしか拝見できないので、ちょっと感動しましたね。何か、芸能人を見たかのような。


まつもとさんの講演を思い出して、書いてみます。

Rubyの時代

Rubyは、生まれてから16年目

まつもとゆきひろ

ネットワーク応用通信研究所 楽天技術研究所 のフェロー

なんでも中3のときにプログラム(BASIC)に触れて、「キカイに言うことを聞かせること」に面白みを感じた。

そして、高校に入り、ある作業をコンピュータにさせようとしたときに、同じ作業でも異なるプログラミング言語で行うときには、そのプログラミング言語の表現の仕方で、書き手(プログラマー)の表現、考え方が変わってくる。このことが非常におもしろい。

また、言語全般に興味があり、その中でも特に、

  • 表記
  • インターフェース

に興味がある。
コンピュータに何をさせるかではなくて、どう伝えるかに興味がある。
whatよりhowhttp://itpro.nikkeibp.co.jp/article/COLUMN/20070621/275509/

書籍でプログラミング言語を学んでいった。図書館通いの毎日だったらしい。

まつもとさん本人は、コンピュータに興味がある人はみんな自分の言語を作りたいと思うだろうと考えていたらしいのだが、実際は少数だったとおっしゃっていた。

1993年2月24日 「Ruby」誕生

Rubyという名前の由来・・・
Perlというプログラミング言語があり、便利だけどちょっと体系立った形をしていない。そこで、Perlをクラスライブラリとして、文字処理などを組み込んでいった。また、オブジェクト指向という考え方も取り入れた。(当時、ちょっとした仕事をするスプリクト言語に、オブジェクト指向はなかった。)

Perl ・・・パール 真珠ということで、宝石の中から探そうとしたが、短くてかっこいいのがなかなかない。そんな中、思いついたのが、ルビーで、パールの次はルビーだろってことで「Ruby」になった。

しかし、後から気づいたこととしては、Perlとなかなか関係深く、
パール 6月誕生石、印刷機のフォントのサイズの名称(5ポイント)
ルビー 7月誕生石、印刷機のフォントのサイズの名称(5,5ポイント)
ということで、パールの次に出てくる言語としてはふさわしい名前であったことに気づいたとおっしゃっていた。

また、「Ruby」という言語は、プログラミングに伴う、面倒なこと、嫌なことをどんどん省いていった言語だという。そのため、プログラミングをしていて純粋に楽しい。デザインする楽しみ、実装する楽しみがある。

Ruby on Rails

Webアプリケーションフレームワーク
「Web development that does not hurt」痛くないウェブ開発

誰かの「Javaの10倍の生産性がある」という発言を発端に、大論争が始まった。本当に10倍か?生産性とはそもそもどうやって図るのか?などなど・・・。最終的には、RubyJavaよりも何倍かは、生産性が高いねっていう結論にいたったそう。

また、Ruby on Railsは、15分でブログシステムを作り上げるという動画がはやったぐらい簡単に動かせるものが作れる。このことから、仕事の在り方が変わっていくのではないか?という話も出ている。

なにせ、15分で動かせるものが出来てしまうため、お客さんに少し待っていてもらうだけで、目の前で動かせるものを見せることができる。これは、仕事の質が変わってくる。


そんなわけで、Ruby on Railsを皮切りに、どんどんとRubyが浸透していく。

Ruby on Railsで出来ているサービスとして

などなど。

なぜ今Rubyなのか?

時代に適応した。タイミングがよかった。

コンピュータ自体は汎用機器であり、ソフトがなければただの箱である。ソフトがなければ、現代社会は成立しない。そこで、「たくさんのソフトを、短い時間で、安いコストで作りたい」という要望ができるようになってきた。

どう解決するかというと、

  • ハードウェア
  • ソフトウェア

上の二つがムーアの法則により、劇的に性能が向上し、同時に価格も下がっていった。そのため、なんらかのシステムを作る場合、リソースの無駄遣いはよしとされてきた。

新たな開発手法としてのアジャイル開発

アジャイル開発とは、

  • 俊敏
  • 変化への対応
  • お客の要求の把握

といったことを大事にしている。というのも、だんだんと顧客が欲しいものは実は顧客自身もよくわかっていないということが明らかになってきたから。作ってみたはいいけれど、大概、顧客が思い描くものとはかけ離れたものが出来上がってくる。そのたびに、修正を重ねる。

その解決方法として、もっと柔らかい開発ができないかということで、アジャイル宣言が出てきた。

アジャイル宣言

  • 人と人との相互作用を大切にする。
  • 動作するものを作る

-

まだまだあったのだが、忘れた・・・。

ということで、アジャイルがこれから開発手法になっていくというのがアジャイル宣言である。

ここからアジャイル宣言を一つ一つ見ていく。

プロセスやツールより、人と人同士の相互作用を

システム開発も、システムを作ってほしい顧客という人と、それをお手伝いする人との結びつきによってできる。それならば、もっと人にフォーカスを当てよう。

包括的なドキュメントより、動作するソフトウェアを

プロジェクト毎に毎回毎回書かされる、ドキュメントは必ずしも必要ではない。それよりももっと大切なのは、顧客が動くものが欲しいということ。

仕様書を書かないと、ソフトウェアが作れないのはおかしい。

契約上の交渉は、顧客との協力を

締切りが絶対だったので、いろいろと省いてシステムを作りました。使いにくいけれど、はいお金くださいでは絶対におかしい。締切りなどなどの様々な制約よりも、もっと顧客との協力を得よう

ちょっとうろ覚え

計画に従うより、変化への対応を

まわりの状況が刻々と変化することによって、ソフトウェアはすたれていく。もっと動的で柔軟な言語があれば解決できるのではないか。


こういった時代背景の中で、Rubyの持つ価値観とアジャイル宣言の価値観が一致した。これによって、ますますRubyの重要性が認知されるようになってきたのではないか。

触れられない特質

元来、プログラムを作る上での、プログラマーの気持ち、モチベーションなどは、生産性とは関係ないとされてきた。

しかし、プログラミングをする上での楽しみ、実装する楽しみ、顧客の要望を少しずつクリアーにしていき、システムを完成させる楽しみというのは、事実存在する。


一方で、楽しくないこともたくさんある。

上で述べた、「楽しみ」に集中できる言語、それがRubyである。


と思い出したようにいろいろと書いてみたはいいが、ところどころ怪しい。




ってことで、今日からいよいよRubyの講習がスタート。なんとかがんばろっと。


参考
まつもとゆきひろ×結城浩Rubyを語る
http://itpro.nikkeibp.co.jp/article/COLUMN/20070621/275509/
世界のオープンソース言語「Ruby」を作ったまつもとゆきひろ
http://rikunabi-next.yahoo.co.jp/tech/docs/ct_s03600.jsp?p=001005
まつもとゆきひろ×小飼弾対談 生き残るエンジニアとは?
http://www.atmarkit.co.jp/news/200803/13/survive.html