ObjectSquare

[ObjectDay2001特集]






ObjectDay2001オープニングセッション参加報告



はじめに

2001年5月18日に今年で3回目となる「ObjectDay2001」がホテルパシフィック東京で開催されました。
今回の基調講演は「Rubyのある生活」、講演者はRubyの作者であるまつもと ゆきひろさんでした。今回幸運にも、この基調講演に参加することができましたので、その内容を報告したいと思います。



講演内容

講演全体の流れは、次のようなものでした。

  1. Rubyについて
    まず最初にRubyの特徴や他の言語との比較、Rubyのサンプルの紹介などが行われました。
  2. なぜRubyを作ったか
    ここで、まつもとさんがRubyを作った理由について説明がありました。
  3. どうやってRubyをつくったか
    ここでは、Rubyの設計思想について説明がありました。
  4. なぜRuby?
    ここではなぜRubyを使うのかということについての説明がありました。
  5. オープンソフトウェア
    簡単にオープンソフトウェアについて触れました。
  6. 質疑応答
    最後に質疑応答がありました。

    このなかでいくつか印象に残った点と所感を述べておきたいと思います。



Rubyは、透明な言語

まつもとさんによると透明な言語とは、「プログラミングで問題を解決する際に、言語がでしゃばらないこと」を指しているそうです。つまり、「Rubyが、解決すべき問題に集中でき、高い抽象レベルで仕事ができる言語である」ことをこう表現しているそうです。

C++やCでは、変数、関数の宣言やコンパイルといった、問題を解決する前に必要な手続きが多く、試行錯誤が行いにくいと感じることがよくあります。
また、メモリリークといった本来の問題ではない部分に悩まされることが多々あります。そのため、「解決できる問題に集中できる」言語であることは、試行錯誤をする際には重要な性質だと思いました。また、安直な私は、C++は、たぶん不透明な言語なんだろうなあと考えてしまうのでした。



擬似的単純さ

良いプログラミング言語の特性のひとつに単純さがあります。人間は、単純なプログラミング言語を好みます。ところが、本当に単純な言語を作成すると、単純すぎて使えないプログラミング言語になってしまう可能性があります。



擬似的単純さ

ところで、人間の心を考えてみると、人間の心は単純ではありません。相反する物を好む性質があります。
そこで、Rubyでは擬似的な単純さを実現することで、言語を単純にみせているそうです。
そのために

* 複雑さに気付かれないようにすること
* コードを自然に記述できるようにすること
* 学んだ範囲で使えるようにすること

で、Rubyを擬似的に単純にみえるようにしているそうです。

Rubyの様々な設計方針のなかで、この擬似的な単純さが最も重要に感じました。



質疑応答

ここでは、質疑応答のうち印象に残った点をあげておきます。

* よい言語を設計していく上で、バランスを保つことは非常に重要だと思いますが、まつもとさんは どのようにしてバランスを保っていますか?
* 自分の感覚を信じること。
* 安易に言語を拡張せず、一定期間ねかすなどして、時間をおいて検討している。

なかなか自分の感覚を信じることができない私にとって、「自分の感覚を信じること」とあっさりと答えたまつもとさんが衝撃的でした。
思わず「どうやったら、自分の感覚を信じれますか?」と質問しようかと思ったくらいです。



全体のまとめ

まつもとさんの、「プログラミングは楽しく創造的であるべき」という一貫した主張が、非常に印象に残りました。講演者の方で、プログラミング自体の楽しさを全面に主張する方が少ないためなのかもしれません。
そして、プログラミングの楽しさを主張するまつもとさんが、様々な言語を学び、検討し、作成したのがRubyですから、「Rubyが理想の言語」と感じる方や「Rubyに惚れこんでしまう方が多い」というのもうなずけるかなと思いました。

また、オブジェクト指向関係の基調講演といえば、OOやUMLの過去の歴史的な説明にはじまり、それらの現状を説明し、未来予想図を説明するというのが一般的な流れだと(勝手に)思っていました。今回のセッションもそういう形になるのかなと思っていましたが、その考えは見事にくつがえされてしまいました。
そういう意味では、基調講演としてはかなり異色なものだったと思います。もっと、Rubyのデモがあるとよかったのですが。

最後に講演者の方々、スタッフの皆さん御苦労様でした。

by KO

© 2001 OGIS-RI Co., Ltd.
Index
Index