|
このページは
2007
年
07
月
16
日
00時14分41秒
に更新した情報です。
|
答えるとは?
[ 43] スラッシュドット ジャパン | まつもとゆきひろ 答える
[引用サイト] http://slashdot.jp/developers/03/03/14/0258247.shtml
|
先週、みんなはRubyの開発者まつもとゆきひろ(matz)さんにさまざまな質問をした。そこからスコアの高かったものを約10個をチョイスし、メールで送り、回答してもらった。興味深いお話、ありがとうございます。そして、さすがまつもとさん、質問のリストに直接は含められなかったいくつかの質問や疑問、コメントへの返答もちゃんと含まれている。前置きはこれぐらいにしておかないと物が飛んできそうなので、さっそくどうぞ! Larryが自身のインタビューで述べている通り、RubyはPerlからたくさんのものを引き継いでいて、そのもっとも重要な部分はその「哲学」であると考えています。ですから、Perlの哲学を表現したモットーである「やり方はいろいろある(TMTOWTDI)」というのは当然Rubyのモットーでもあります。もともとRubyはPerlとは「別のやり方」の実現であるわけですから。 しかし、Rubyがもっとも重視しているのは多様性ではありません。それよりもむしろプログラミングという精神活動の中でいかにストレスを減らすかという点に注目しています。私は短気なのでプログラミング中の「イラツキ」は嫌いです。怒りによって生産性が下がるからです。生産性が低いとたくさん仕事をしなければなりません。それは怠惰な私にとって耐えられません。ですから、そのようなことをできるだけ感じずにすむようにRubyを設計しています。そして、私は傲慢なので私にとって良いものは他人にとっても良いと決めつけて世界中に広く公開しています。 そしてなによりストレスが多いとプログラミングが楽しめないじゃないですか。「Enjoy programming」がRubyの真のモットーです。 このインタビューが行われるきっかけになったLarry Wall氏のインタビューを読まれてどのような感想を抱かれましたか? 特にRubyについて言及されていた一節 たとえば、なんでもオブジェクト扱いするのは、「初心者にとっての驚き最小の原則」の侵害だと思う。初心者にとっては、数字は数字だし、文字列は文字列だ。コンピュータが扱う限りでは、それらは当然オブジェクトなのだろうし、もちろん、上級者は、これらをオブジェクト扱いするのを問題にさえしない。けれど、いきなりオブジェクト指向を強いると、加速中の初心者にとっては徐行帯になってしまう。 については、おそらくこのような話は繰り返しあったのでしょうけど(僕はRubyについては全く知らないので推測でしかないのですが)、どのような感想をいだかれましたか? 後、どうもPerl -> Rubyを勧める人たちはPerlのことをかなり貶している(というか嫌っている?)人が多いように私には感じます。あくまでイメージしかないですが。私の持っているイメージは当たっているとお考えでしょうか?もしそうならそのことについてはどう思われますか? 聞いたこともある人もいるかもしれませんが、Larryはずっと昔から私の尊敬する人物のトップ10には入っていて、彼がRubyについて知っているというだけで感激モノです。また、Rubyのローカル変数のスコープの点に気がついた彼はやっぱりとても鋭い人だと思います(古今最高のルネッサンス人かどうかは別として)。私自身もこれはRubyの最大の欠点だと思っていて、機会があれば直したいと思っているので。 しかし、初心者に対しては私は彼とは違う考えを持っています。私は「初心者はいつまでも初心者ではなく、いつまでもその立場に甘んじているべきでもない」という理由で初心者に媚びることを拒否します。初心者向けの言語が存在してはいけない理由はありませんが、少なくともRubyの目指すポジションは「Rubyに十分に慣れた人が最高のパワーを発揮できる道具」です。自転車屋に行けば自転車にまだ乗れない人のために補助輪の付いた自転車を買うこともできますが、万人にそれが必要なわけではありません。私が乗りたいのは軽快に走れる自転車で、初心者に優しい補助輪付き自転車ではないからです。しかし、初心者も当然人間なので、人間に優しいプログラミング言語は初心者にとっても優しい側面があるでしょう。 同様の理由からRubyが「驚き最小の原則」と言う場合には、さまざまなバックグラウンドの人々すべてを驚かせないことではなく(それはそもそも不可能でしょう)、Ruby のやり方に十分に慣れた人が持つ常識が一貫して通用するという意味です。言い方を変えれば「私(matz)の驚き最小の原則」と呼んでも良いでしょう。そして、私にとってはすべてがオブジェクトである方が驚きが最小であるうえ、一貫性があり、しかも強力であったということです。 Perlを嫌っている人が多いというのは分かるような気がします。Perlは良い点も悪い点もある言語です。もちろんRubyを含めたすべての言語がそうなんですが、Perlは特にそれが極端な気がします。そういう言語を使ってプログラミングをするとストレスを感じる人がいます。しかも、仕事などの事情で言語を自由に選べない場合は特にそうです。私も以前仕事でC++プログラミングをしていたときにはC++が嫌いでした。もっとも、C++だけが悪いのではなく、私のチームが開発していたプロジェクトがC++を濫用していたことに真の原因があるのですが、それでも濫用しやすい言語は憎悪の対象になりやすいでしょう。 私はPerlを嫌いではありませんよ。私はRubyを選ぶことができますから、傍観者でいられますから。でも、私がPerlでのプログラミングを強制されたら嫌いになるかもしれません。 私はPerlを使っています。しかしRubyにも興味があります。だがRubyはPerlのように入り口が簡単であるとは思えません。それは私がオブジェクト指向に弱いせいかもしれません。そんな私にRubyも書けるようになるためのアドバイスをください。 人にはいろいろな好みと適性があり、Rubyがどうしても性にあわない人はいるのだろうと思います。そういう人にまで無理にRubyを使ってもらおうとは考えていません。あなたを含めたほとんどの人にとってRubyというのは単なる道具であって、やりたいことを実現させる手段のひとつにしか過ぎません。私にとっては少々違いますけどね。私にとってはRubyは作品だったり、自己表現だったり、パズルだったりしますから。 ただ、あなたがなぜ「簡単であるとは思えない」のかについては大変興味があります。オブジェクト指向に弱いからとおっしゃいますが、オブジェクト指向をばりばり使わないレベルではRubyとPerlとでは大差ないように、私には感じられます。 がそれほど違うとは思えないからです。むしろ配列全体は@なのに要素のアクセスには$をつけるなどのルールの方が私にはストレスになります。もちろん「$はスカラー」というルールは理解しているのですが、スカラーかどうかは私が今関心があることではないからです。自分の関心と言語が要求する注意点にずれがある時にはストレスを感じます。 逆にオブジェクト指向プログラミングが必要になれば、後づけでいびつなPerlのオブジェクト指向機能とRubyのそれとでは比較するまでもと思います。 となるとRubyだから難しいというのは幻想のように思えます。あるいは「簡単であるとは思えない」という真の原因は実は「今さら新しい言語を覚えたくない」言い換えると「Perlなら知っている。Rubyを覚えるのはめんどくさい」という深層心理からくるものかもしれません。いえ、仮にそうだとしても、それは責められることではありません。新しい言語を覚えるのはコストの高い行為で、心理的にも抵抗が大きいのは当然です。そこでの選択肢は「一歩踏み出して学ぼうとしてみる」か、あるいは「ここが幸せ、外の世界は恐ろしい」と踏みとどまるかのいずれかです。どちらを選びますか? 私自身は、新しい言語の学習には時間以外のコストはたいしてかからない上、結局その言語を使わなかったとしても学ぶことが多いので、Rubyを試してみることをお勧めしますけどね。 まつもとさんは、Rubyがしばしば「国産」「純国産」と呼ばれ、「国産なんだから応援しよう」「国産だから使う」というような評価をされることについて、どのような感想をお持ちでしょうか? 私個人としては、近代の国民国家的なコンテクストの中で教育を受け生活してきた人間として、「日本人」であるまつもとさんの成功を誇らしく思(ってしま)う気持ちがある反面、(私自身がしばしばしてしまう)「国産だから」というような評価に対しては、インターネット上でゆるやかに形成されている国民国家とは別のコンテクストに対する視点を軽んじてしまう危険性(インターネットの方がえらい!正しい!というような意味ではなく)や、まつもとさんに限らず、そういったコンテクストで活動されている人々の個性を矮小化してしまう可能性等々に、多くの違和感を感じてもいます。 他の方のご意見もいろいろあるでしょうが、そのあたりについてまつもとさんの感想、ご意見を伺えれば幸いです。 正直なところ、国産なんだからというフレーズには少々抵抗があります。日本人のためのプログラミング言語を作ったつもりはありませんし、日本のためにという思いもそれほど持っていません。もはやRubyのもっとも活発なコミュニティは英語によるメーリングリストruby-talkであり、日本のRubyと呼ぶべきものではないように思います。 しかし一方、私が日本人であることや、英語が下手くそな点は否定しがたい点もあります。日本人であることがRubyに影響を与えたのかどうかは自分でも分かりませんが。それにいろいろなところから支援を引き出すのに「国産」、「日本発」というキーワードを利用したりする私は「曖昧な日本の私」でもあったりします。ある意味ずるいんですが、大人が現代を生きていくためにはそういう小賢しさが必要なときもあります。悲しい。 Ruby の仕様で、これはやめておけばよかったというものはありますか?String の連結は、左右が可換ではないのだから + ではなくて * だろうという話はいまさらだよねということでそのままなのを残念に思っていたりします。すでに定着した仕様はそうそう変えるわけにいかないのはわかっていますが、Dr. Dennis Ritchie もC言語の設計で creat の spell を挙げていますので、せっかくなので、まつもとさんの心の棘を訊いてみたいと思います。 あんまりないです。今のRubyとまったく異なってRubyと同じくらい良い言語は存在できるだろうとは思いますが、Rubyをそのように変えようとは思いません。変えるとしたら、Larryも指摘したローカル変数のスコープくらいでしょうか。これは2.0(Rite)で変更しようと考えています。 「Stringの連結が * であるべきだ」という主張は私には理解できていませんし、そうするつもりもありません。私にとって + ってのは小学生のときに学んだ 雑誌などでまつもとさんのインタビューはいくつか拝読しておりますが、生い立ちについて触れられたものはあまり見たことがありません。 人に役立つものを作るプログラマになるためには、ただプログラミングが得意なだけではいけないはずです。他の素養はどう吸収し、言語開発にどう反映されているのか。つまり、子供の頃から、どんなひとに出会い、どんな言葉に感動を受け、何を学び、そして、それらによってどんな考え方のプリンシプルが形成されたのか。 抽象的な質問ですが、様々な分野の後進へのメッセージを兼ねて、思うところを自由にお話していただけませんか?Larry Wallのインタビューを翻訳しているときに、願うことなら、まつもとさんにも聞いてみたいと思っておりました。このような機会が得られたことに大変驚いています。 生い立ちですか。知ってあんまり役に立つ情報じゃないような。ま、ともかく。1965年大阪生まれ、4歳からは鳥取県米子市育ち、6 人兄弟の長男、ただし他の兄弟と歳が離れているのでわりと一人っ子的にのんびり育ったらしい。実家の前が書店だったので本屋に入り浸り、立ち読み三昧の少年時代を送っています。友達の多くは私を本屋の子だと思ってたらしいです。 コンピュータとの第1種接近遭遇は小学校6年のとき、父親が買ってきたL-kit16なるボードコンピュータ。ダンプリストを打ち込んで8 セグメントLEDが光るのを見て喜ぶ程度で「コンピュータ」としては理解していませんでした。第2種接近遭遇は中学校2年のとき、やはり父親が買ってきたSHARPのポケットコンピュータ(PC-1210)。今度はBASICを理解しプログラミング初体験でした。 しかし、すぐ飽き足らなくなり、次に進んだのはプログラミングの書籍でした。コンピュータ雑誌(ASCII, I/O, マイコン、RAM)やPascal入門、Lispや人工知能の本を読み漁りました。書籍の多くは立ち読みでしたから、今でもお世話になった本屋さんには足を向けて寝られません。ただ、高校時代は漫画やアニメ、SFにはまっていた時期でもあり、高校の友人は私がコンピュータ好きだったことは知らなかったかもしれません。プログラミング言語に興味を持ったのもこの頃です。おぼろげな記憶ではこの頃すでに自分のプログラミング言語を作ろうと思っていたように思います。文法も機能も何も決まってないのに、名前だけは先に決めて。当時から形から入るタイプだったのかも。 高校時代は数学が苦手でした。今でも十分苦手ですけど。一度、数学の試験で学年でだんとつでビリだったことがあります。得意科目は国語と英語、志望は工学部情報工学科という変な理系学生でした。 大学は情報系でした。今までは触れなかったUNIXや書籍の中でしか見たことがなかったソフトウェアや言語などに直接触れる経験は貴重でした。やっと知識に経験が追いついてきたという。また、高校時代に読んだ本の著者の授業を受けられたのも名誉なことでした。難しかったですけど。 大学在学中に2年間休学してキリスト教の宣教師として奉仕しました。一緒に働く同僚や上司の多くがアメリカ人だったので、この頃英語を覚えました。英語は今でも役に立っています。また、異文化や人によって異なる考えについての理解が深まったのもこの頃だと思います。また、自分自身を含めて人間を見つめる機会でもありました。 私がクリスチャンであることはオープンソースの動機にも関係していると思います。私のオープンソースへの動機と情熱の源は愛です。愛と言っても、恋愛の愛じゃなくて、もっと一般的なものです。それは自分自身を楽しませたいという自己愛と、人類にすばらしいものを提供したいという人類愛の両方が入り交じっています。でも、利己的な愛の方がちょっと割合が高いかな。 まつもとさん自身の経験から、今未来のおたくな高校生に向けてなにか伝えておきたいアドバイスや教訓などをはありませんか? 今の若い人たちは恵まれています。計算機パワーは潤沢でしかも簡単に入手できるし(娘の小学校にパソコン室なんてのがあってびっくりしました)、情報もインターネットですぐに最新のものが入手できます。こういう時代に育つ人は前時代の遺物のような私たちとは違う育ち方をするのかもしれません。 しかし、逆に恵まれているがゆえに逆境をバネにする「勢い」ってのには欠けるのかもしれません。また、出来合いのプログラムが豊富なために自分でプログラミングする楽しみを知らない人も多いかも。でも、スラッシュドットの読者は違うかな。 それから、高校までの学生時代には「全方位よくできる人」が期待されます。脳味噌から数学を理解する能力が欠落していた私はそういう周囲の期待には応えられませんでした。しかし、実際に世の中に出てみると成功している人ってのはどこかしら「いびつ」な人のような気がします。ひとつのことだけ得意な人、人格的になにか欠けた人、なにかすごく苦手なことがある人。 いびつであること、マイナーであることを恐れていてはいけない、たとえ周囲は理解してくれなくても。それが私からの教訓です。 まつもとさんは「ソフトウェアを書くときに仕様書を書かない」という話をどこかで読んだことがあります。普段から煩悩、常識というものにとらわれまくりの自分にとってこれは非常に興味深い事実でした。 さて、開発者をデスマーチに追い込みがちな旧来の開発手法に対してXP等の新たなパラダイムが提案され、また実践が進んでいる昨今ですが、まつもとさんにとって理想のソフトウェア開発プロセスとはどのようなものでしょうか? また、Rubyの開発に際して、プロジェクト管理をこうやって切り盛りしているよという裏話があれば是非教えてください。 でも、私は仕様を考えながら試行錯誤的にプログラムを書くことが多いので「仕様書はプログラムそのもので、バグまで記述してある」というケースはけっこうあります。ただ、プログラムには意図は記述されていませんから、意図を表現するためのテストプログラムを用意して(これも仕様の考察が進むたび変化する)、プログラムをコンパイルしてはテストプログラムを実行するというスタイルをここ10年以上行ってきました。XPのテストファーストプログラミングみたいですが、XPほど徹底してもいないし(テストを先に書いたりまではしないし)、網羅的でもないんで、私のは「えせXP」ですね。いつまでたってもテストファーストにもペアプログラミングにも踏み切れないし。 Rubyのプロジェクト管理はあんまりうまくいっているかどうか自信がありません。私はすぐにものごとを忘れちゃうし、Rubyの全容を把握するのは大変でバグが入り込んじゃうこともたびたびだし。 でも、CVSを中心にしているので間違いがあってもすぐやり直せる点と、議論のほとんどがメーリングリストで行われているので、私が忘れても誰かが覚えてるし、アーカイブの検索も行える点とでなんとか運営できています。つまりはオープンであることが失敗しない秘訣ということでしょうか。 オープンソースプロジェクトが成功するには、という話をすると、そのために必要なことは「継続すること」で、その秘訣はふたつのことを維持することです。つまり「やる気」と「生活」です。やる気がなくなればプロジェクトは停滞してしまうし、停滞したプロジェクトはほぼ間違いなく衰退します。また、生活が維持できなければ時間を喰うオープンソースプロジェクトどころじゃなくなってプロジェクトは停滞します(以下同文)。私はたまたまうまく行ってますが、このふたつを継続的に維持できる一般的で良い方法は私にもまだ分かりません。 Ruby に取り組んできたこの10年で、Rubyに起こったもっとも予想外のできごとを三つあげていただけますか? 私が今このインタビューでえらそうに語っていることのほとんどはRubyの開発を通じて学んだことです。あえて三つ選ぶならば 気象解析やバイオインフォマティクスでRubyが使われるようになるとは思いませんでした。先日Webでクマムシについて調べていたのですが、ページの下のほうにBioRubyのバナーが張ってあって驚愕しました。 日本を越えて、南北アメリカ、ヨーロッパ、ロシアなどなど本当に世界中でRubyは使われています。またRubyに関する集会も世界中で開かれています。また、Rubyの作者であるという理由で海外のイベントに招待されることさえあります。これは10年前には想像もできなかったことです。 私は今Rubyを開発しているということで給料をもらっています。「タダのソフト」を開発してるのに人並みに生活できて家族を養っていけるというのは、これまた予想外です。 今後、既存のRubyの言語仕様で対応しきれないパラダイム/スタイルが主流となった時、どこまで言語仕様を拡張して対応していきますか?言語仕様の複雑化を選ぶか、流行遅れの言語となることを選ぶか、というところに非常に興味があります。 先程も述べた通り、ほとんどの人にとって言語っていうのは単なる道具なんで、あらゆるパラダイムやスタイルに対応しようという試みは単純にナンセンスです。できるならやればいいけど、無理してまでやることじゃない。私は新しいプログラミングパラダイムの将来について悲観的なので、Rubyは広く使われているような近い将来にそのような「Rubyで対応しきれないパラダイム/スタイルが主流になる」とは思っていないのですが、仮にそのような事態になったとしても、それはRubyでない別の言語がカバーすべきではないかと考えます。そのような時代にはRubyは流行遅れになるとは思いますが、たぶんそうなっても私は(まだ生きているならば)Linux 20.4.2 あたりでRubyを使っているでしょう。私は今Rubyを使ってハッピーなので、そのような時代にあっても今Rubyを使っているようなタスクを解決するためにはRubyでハッピーなのではないかと思うのです。 Rubyが将来変化するとしたら(かならず変化すると思いますが)、それは新しいパラダイムに対応するためではなく、今まで気がついていなかった人間(プログラマ)の精神的特質をサポートするためでしょう。そしてその変化はゆっくりとしたものではないかと思います。Rubyは人間のためにあり、そして人間は機械に比べてゆっくりとしか変化しないからです。1950年代に登場した言語(FORTRAN, COBOL,Lisp)が人気は衰えつつも現役であることを考えると、言語の変化のスピードが分かるでしょう。 さて、言語の肥大化は言語設計者にとって非常に気をつけなければならない点です。世の中にはかつて数千とも数万とも言われる数のプログラミング言語が存在し、今も誕生し続けていますが、そのほとんどは現在生き残っていません。その最大の理由は「ユーザが少なく生き残るのに必要な人気を獲得できなかったので忘れ去られた」というものです。人気の獲得という最初の難関を乗り越えた言語が陥る罠が肥大化です。言語はあらゆる局面で使われるため、いろいろな局面に便利な機能をどんどん取り込んでいくと次第にその仕様が大きくなっていきます。そして肥大化を続けた言語はいつしか自らの重さで重力崩壊してブラックホールになり周囲のものすべてを飲み込むようになります(笑)。そのような言語は実装が難しく、使いこなすのが難しく、結局人気を失う危険性が高いのです。今、Perl6がその道を歩んでいるのではないかと心配です。Rubyは決してその道はたどらないようにしようと決心しています。 私は数ある言語の中で、Rubyがダントツ一番好きです。でも言語おたくというわけではないので、もしかして Ruby 並(以上?) に面白い言語があっても私が知らないだけかもしれません。ぜひ言語おたくとしての意見をお聞きしたいです。 言語オタクとしてのあるべき答えは「私はすべてのプログラミング言語を愛している」です。しかし、「より好きな言語」はLispの影響を受けたものです。直接Lispの血統であるCommonLisp, Scheme, LOGOは当然として、SmalltalkやMLなどにも影響を感じます。理由はおそらく「少ないルールによって広い範囲をカバーする」というところのような気がします。 この質問をした人をはじめ多くの人が普及は善であると考えているようです。「普及のためにはWindows対応を強化すべき」とか「cpam.pm相当が必要」とか、親切に提言してくれる人はたくさんいます。しかし、考えてみればRubyはオープンソースソフトウェアですからたとえ世界中のプログラマがRubyを利用しても(そして実際に利用していますが)、私にはどれだけメリットがあるのでしょうか。少なくとも経済的にはゼロです。 みなさんの中でRubyを使っている人、学んでいる人、知っている人など多くいると思いますが、その中でRubyを作ったことに対して私に報酬を払った人はいないでしょう。私の本を買ってくれた人は私に印税をもたらしてくれましたが、それはRubyを作ったことにではなく、Rubyの解説書を書いたことに対する対価だと思います。別にRubyを作った人でなくても本は書けるし、実際にそうしている人もたくさんいますよね。 それでもRubyを作るのはそれが楽しいからです。みなさんが「Ruby は良いものだからもっと普及した方がいい」と考えてくださることには本当に感謝します。ありがたいことです。普及して嬉しくないはずがありませんし、普及のための協力の申し出は喜んで受けます。でも、だからといって私に楽しくないことを押しつけるのは勘弁してください。オープンソースソフトウェアにマーケティングは必要ありません。私は期待以上のたくさんのユーザに恵まれています。普及は良いものを作った結果、副作用で十分です。 Windows対応については多くの協力者が大変な苦労をしてメンテナンスしてくれています。もしもっとたくさんの人が情報や労力などを提供してくださればもっとよくなるでしょうが、ほっておいてもよくなることはないでしょう。Rubyが成功した理由の一部は、Ruby のような言語になにが必要か私が分かっていたことにあると思います。私はWindows について知識がないので、Windowsユーザにとって正しい判断ができるとは思えません。より良いWindows対応のためには、どのようなものが欲しいか、どのようなWindow対応が「良い」のかきちんと定義できる人たちの積極的な参画によって実現できるのではないか、私は思います。 但し書き: コメントはそれぞれ投稿した人のものです。決してわたしたちが責任を負うものではありません。 いつもCCCDに対して不満たらたらいってるみんなから、なぜ 日本レコード協会会長かつエイベックス株式会社代表取締役会長 兼 社長の依田 巽 氏の名前があがらないかなぁ?盛り上がる事必死 ですぜ。 という話はさておいて、だ。個人的には次の方にインタビューを していただけたら面白いのではないかと思います。 ソニー(株)の土井利忠氏。 CDの規格策定に際して多大な貢献をし、ワークステーションNEWSの プロジェクトを成功させ、いまはロボットと戯れる?これぐらい 面白い事をやってきたひとはなかなかいないでしょう。 もちろんお約束の精神世界の話もたっぷりとお願いしたい。 困難かな、とも思いますが是非に。 2003年03月14日 17時30分1個のコメント が現在のしきい値以下です。 6個のコメント が現在のしきい値以下です。 過去からのわだかまりが解けたような気がします。 私は傲慢なので私にとって良いものは他人にとっても良いと決めつけて 初心者に媚びることを拒否します。 普及は良いものを作った結果、副作用で十分です。 いつだったかテレビ番組で,どこかの料理人が,客の欲しがるものを出すのではなく,自分が薦めるものを提供するのだ,と言っていて,すばらしいと思ったものの,後ろめたい気持ちもあり,声を大にして言えませんでした。RubyやPerlやPythonや,その他いろいろあるにもかかわらず,「自分好みのスクリプト言語を作ろう」という気持ちが湧いてきました。とりあえず正規表現エンジンあたりから取り組んでみようかと思います。 人はなぜ車輪の再発明をするのか。 「それが僕には楽しかったからさ。」 # なんか勘違いしているような気がしないでもないが,まぁいいか。 和が可換であることって別に必須じゃないよね。 harako氏がなぜ残念に思うのか聞いてみたいところ。 それもさることながら、私はなぜ連結目的で(*)が出てくるのかが理解できません。(+)は多くの言語やスクリプトでも使われていますし、数学他で一般的に使われている意味合いからも直感的にも理解できるのですが…。可換であるかどうかがヒントなのだと思うのですが、数学記号としての意味で挙げられているわけじゃないのでしょうか。 2003年03月17日 10時29分 1個のコメント が現在のしきい値以下です。 Re:文字列連結 私も代数学はやっていたのですが、それでも(*)が自然な表記だとは思えません。群で言うならば中点(・)の方が適切ではないかと思えるので、むしろPerlのピリオドの方が字面的に自然な気がします。(もちろんあくまでそれは私の感性での話です。一般論だと言うものではありません。) それはともかく、演算という目で見ると文字列連結には終端処理が入るためそもそも勝手が違ってきます。数値として見た場合、文字列は終端を含めたものが群になるべきではないかと思いますので、片方の終端を削って全体を繋げるという演算は数学には存在しないのではないかと考えてしまうのです。(数学エキスパートではないので、もし存在してましたら失礼!)つまり数学として見る事自体が不自然ではないかと。 ↑そしてまさにこれです。私が最初プログラミングに出会ったとき(最初はBASICでした、その後は色々と…)、(=)が左辺と右辺を等価にみなすための意味ではなく、単なる代入を意味する記号として使われているのに違和感を覚えると同時に「ああ、マイコンではこう書くんだ。」(当時パソコンという呼び方はしてなかった(笑))とむしろ新鮮でした。 なので文字列連結も、数値演算とは別に言葉として「加える」という意味合いで(+)が使われていると普通に連想していたわけです。少なくともこの連想では「掛ける」を使うのが不自然に見えても仕方がないとお考えください。 結局のところ、ソース上の演算子って演算目的の記号と特定の動作を表す記号のダブルミーニングなんですよね。Cだとさらにポインターの意味も加わったりしますし。それは時たま目やコンパイラを迷わせますが、まあ慣れの問題で良いのではないかな〜。…って、それだと(*)でもいいやんってなっちゃいますよね。でもそれだと英語で読む時に違和感があるんだよー。addだと文字列の場合でもそのままで読めるんで。 2003年03月17日 17時13分 1個のコメント が現在のしきい値以下です。 Re:文字列連結 2003年03月15日 5時34分 4個のコメント が現在のしきい値以下です。2個のコメント が現在のしきい値以下です。 まず、質問に答えていただいたまつもとさんに感謝。 それから、高校までの学生時代には「全方位よくできる人」が期待されます。脳味噌から数学を理解する能力が欠落していた私はそういう周囲の期待には応えられませんでした。しかし、実際に世の中に出てみると成功している人ってのはどこかしら「いびつ」な人のような気がします。ひとつのことだけ得意な人、人格的になにか欠けた人、なにかすごく苦手なことがある人。 いびつであること、マイナーであることを恐れていてはいけない、たとえ周囲は理解してくれなくても。それが私からの教訓です。 激しく感動&勇気づけられました。同種の友人にも伝えておきます^^; それとクリスチャンであることは初めて知りました。「愛」ですか...私の場合は「仁」かな? 3)の質問をしたKaturagiです。 私はPerl以外にもVBやAppleScriptなどを使います。 古くはPB-100BASICやN88BASIC、HyperCard、触っただけのCなど多くの言語を使ってきました。だから新たな言語を覚えるのに苦を感じることはありません。 自身の質問でPerlを引き合いに出したのは少しミスをしたかなと感じます。 まつもとさんの回答で十分な”解凍”を得ることはできませんでしたが、今回の回答で「とりあえず何度でもぶつかって砕けてみよう」と思いました。まずはPerlをRubyで置き換える”遊び”からはじめてみようかな。 まつもとさんの素敵な言葉に感謝です。 > プログラミングという精神活動の中でいかにストレスを減らすか という点は開発に携わる者としてはとても嬉しいな。 # 編集の方にも感謝。でも俺はfjじゃなくてyukifjだぜぃ(´ー`)y-~~ 2)で取り上げられたunnyaです。答えてくださった まつもとゆきひろ さん、投稿をモデレートしてくださったモデレータの方々に深く感謝いたします。 Perlのオブジェクト指向をぼちぼち勉強していて、「簡単なことは簡単に、難しいことは可能に」のスローガンの裏返しで、print "Hello, World!\n"; の頃に比べると随分坂がきつくなってきたなぁとか思っていますが(なんてこの場で書くと恥ずかしいのだけれど)、お答えを読んでいて、Rubyは最初の方が坂がきついのかな、とか勝手な感想を抱いたりしています。 ほとんどCGIを書くためにPerlを扱っている僕が、Rubyといえばまっさきに思いつくのがtDiary [tdiary.org]です。僕の環境では.htaccessが使えないなどの制限があって、そのままでは使えないのですが、Rubyで書いてあるためどこをどういじっていいかわからずいいCGIなのにと残念に思ったことが大きいからです。せっかくなのでこれを機会にRubyもやってみようかな、とか思う今日この頃です。 まさか選ばれると思ってなかったので感激のあまり(笑)、文章が支離滅裂ですが、とにかくありがとうございました。 言語に限らず,好きだったゲームとか Webサイトとか,PDAとか,ソフトが…人気を得て バージョンがあがってきたり続編を重ねていくと どんどん肥大化,複雑化してしまって残念に思うってこと…ありますよね. Rubyについても私は非常に愛用しているし,人気も高くなってきてるので その点はちょっと心配だったのですが,ちゃんと気がついて いらっしゃることがわかって安心しました. 自分も(プログラムじゃないんだけど)モノを作る職業にいる身として 「もっと人に気に入られるためには機能(何か特徴)を追加すればよい」と安易に考えるんじゃなくて 本当に良いとは何かについて真剣に 考えるべきだよなぁと改めて思います. ちなみに…今,肥大化について結構心配なのは w3mとかvimとか…かなぁ. まぁ自分でmakeする時に機能が選べるのは救いなんだけど. あと…Rubyの肥大化はたしかに歓迎できないけど…標準ライブラリは もうちょっと豪華になってもいいんじゃないかなぁと(ちょっと矛盾してるかもな意見?) 2003年03月24日 2時55分 1個のコメント が現在のしきい値以下です。 2個のコメント が現在のしきい値以下です。 私も最初、そういう現象に見舞われました。 あれ?と思ってリロードしたら、今度は全部表示されました。 当方ライトモード、Netscape7.0、win2kでござる。 #長すぎるとたまにこうなる、、、とか? > 8 セグメントLED > ↓ > 7 セグメントLED じゃないかな。 数字の右下にドットがついていたのではないでしょうか。 2003年03月17日 11時42分1個のコメント が現在のしきい値以下です。 2個のコメント が現在のしきい値以下です。 Re:自尊(オフトピック) 2003年03月17日 11時37分1個のコメント が現在のしきい値以下です。 1個のコメント が現在のしきい値以下です。 1個のコメント が現在のしきい値以下です。 Re:ローカル変数のスコープ 2003年03月20日 21時10分 3個のコメント が現在のしきい値以下です。 1個のコメント が現在のしきい値以下です。9個のコメント が現在のしきい値以下です。 |
[ 44] ITmediaニュース:「mixiじゃダメなの?」にどう答える――地域SNSの意味
[引用サイト] http://www.itmedia.co.jp/news/articles/0601/27/news118.html
|
SNSは地域活性化に役立つという期待が高まり、地域密着型のSNSが急増しているが、「mixi」の地域別コミュニティーで十分という意見もある。 地域密着型のSNS(ソーシャルネットワーキングサイト)が急速に増えている。総務省主導で東京都千代田区と新潟県長岡市で地域SNSの実証実験を始めたほか、香川県に特化した「ドコイコSNS」や、福岡県の「VARRY」、東京都港区六本木に限った「六本木貴族」など、この1年で10以上の地域SNSがオープンしている。 地域の情報化を考える団体「CANフォーラム」(会長・国領二郎慶応義塾大学教授)は1月27日、地域SNSの可能性を考えるセミナーを開き、SNSによる地域活性化への期待などを話し合った。 「SNSがコミュニティーのセイフティーネットになるといい」――NPO法人はりまスマートスクールプロジェクトの和崎宏理事長はこう期待する。SNSで地域の誰かと常につながっていることで、何かあれば人を集めたり、すぐに助けを呼べる環境が構築できれば理想的だとする。 ただ、地域の人と交流したいだけなら、既に250万人以上の会員を集めている「mixi」の地域別コミュニティーで十分ではないか、という意見もある。「mixiの香川県コミュニティーでいいというのは、すごく正しい」――香川のドコイコSNSを運営する河野大輔・ドコイコ社長はこう認めながらも、ドコイコSNSは、香川に実際に住む人が情報を提供しているという「泥臭さ」を魅力にしていきたいという。 地域SNSのさきがけとなった「ごろっとやっちろ」(熊本県八代市)を運営する八代市情報推進課の小林隆生さんは、「ごろっとやっちろ内の発言は、地元の人に見せることを意識しながら書かれている」とし、mixiなどよりも地元に密着した情報が集まりやすく、存在意義はあると語る。 国際大学GLOCOMの丸田一教授は「例えば、八代市のディープな情報は、mixiのサーバよりも八代市にあるのがふさわしい」とし、地域SNSが地域情報の集積地となりうると話す。 異なるSNS同士の情報を統合するプラットフォーム「Affelio」を開発する、Affelio代表取締役の大越匡さんは、地域SNSを地域振興につなげるためには、例えば、そのSNSに参加すれば地域のバザーに優先的に参加できるなど、地域SNSならではの魅力を作る必要があると指摘する。また、数の面では全国規模のSNSにかなわないという不利を克服するために、地域SNS同士が連携する必要もあるとした。 その環境は整いつつある。ごろっとやっちろのシステムをオープンソース化した「open-gorotto」は、地域SNS同士を連携させる機能を備える予定。開発した小林さんは「インターネットは広すぎる」と指摘し、今後は地域などをベースにした「ネットのクラスタ化」が進むと見る。地域SNSなどを1つのクラスタと見立て、クラスタ同士がゆるくつながることで、負荷分散された大規模なネットワークができるという見方だ。 地域SNSへの取り組みは始まったばかりで、可能性は未知数だ。CANフォーラムの国領二郎会長は、「ネットやSNSが地域活性化の道具となりうると同時に、地域がネットをパワーアップさせる可能性もあるのでは」などと語った。 総務省の地域SNSが始動先週は、「mixi」の200万ユーザー突破と「Web of the Year」大賞受賞のニュースが同時にランクインした。mixiに刺激を受けて始まった総務省の地域SNS計画は、今週ようやく始動する。 SNS化で復活した自治体サイト「ごろっとやっちろ」利用者が激減した自治体サイトが、SNS化で息を吹き返した。「ネット上に、安心して遊べる“公園”を作りたい」――自治体初のSNS「ごろっとやっちろ」は、そんな思いで運営されている。 Intel、「100ドルノートPCプロジェクト」に参加途上国の子供に100ドルPCを配布するOLPCプロジェクトにIntelが参加。技術面と教育コンテンツの提供などで協力する。 写真で見る、名古屋・電子マネー事情プラズマの松下 VS 液晶のシャープ、株はどっちが“買い”?北米市場で進む“クルマ+iPhone”「あんな体型になりたい」男性は郷ひろみ、女性は……?am/pmでPASMO/Suicaが利用可能に――東急電鉄と業務提携 jobtxt1 += 'チャレンジするしかない!チャンスを掴め!大手企業に紹介予定派遣で正社員へ!'; jobtxt3 += 'ITエンジニア2万人の年齢と年収が一目瞭然隣の芝生(年収)は本当に青いのか???'; |
[ 45] 答える
[引用サイト] http://www.amy.hi-ho.ne.jp/~lepton/program/p2/prog235.html
|
最近、メールをいただいてもなかなか返事も書いていない私だったりするのですが(ごめんなさい、ごめんなさい、ごめんなさい)、それはそれとして、たまに技術的な事柄に関する質問のメールが来ることがあります。 なぜ私のところにそういう質問するんだろうなあ、他にもっと適任者がいるんじゃないのかなあ、と思いつつ、基本的には無視しています。というようなことは以前にも何度かここでネタにしているので、いまさら同じ話をしても仕方がないとは思うのですが、それでもあいかわらず「どうして、その質問を私にしてくるの?」と思わせるようなメールが来ます。 まあ、以前よりはそういうメールも減ってるみたいで、これはもしかすると「ネタにされたらかなわん」と思う人が増えたのでしょうか。 さて、メールや、プライベートや、そんなところで質問を受けた場合、いつもいつも無視するか、というと、もちろんそんなことは無いわけでして、じゃあどんな場合に無視せずに答えてるか、というと… ここの駄文に書かれていたことに関する質問。「おまえはここでああいうことを書いたけど、こんな場合はどうなの?」とか、「○○に関する情報を探してここに来ました。○○で△△がうまく出来ているようですが、自分のところではうまく出来ません」とか、はたまた「あんたの言ったアレは、本当はこうなんじゃないの?」とか(←これは質問じゃ無いか…)、そういう類のです。 駄文とは言え、こうやって不特定多数に文章を公開している以上、そういった内容の質問には答えるのが一種の義務みたいなもんかな、とは思います。 「○○で××がうまくいきません。どういう設定にしたらいいでしょうか?」とか、答えたあとにもいろいろとフォローしないといけなそうな面倒な質問じゃ無くて、すぐに答えられそうで、後腐れが無くて、でもってこっちの気分がいいとき。 答えることによって、自分の方にも利益があるとき。この「利益」ってのは別に金銭的なことを言っているわけではありません。たとえば、質問されて、それに答えて、質問者の女の子が喜んで、それを機会にその女の子とお近づきに…いやいやいやいや、そういう「利益」では無くて…というか、そういう「利益」を決して拒否しているわけじゃ無いのですが、そんなうまい話は今まで一度もありませんでした、しくしく。 ってそうじゃなくて、ここで言っている「利益」ってのは、答えることによってこちらの知識が増えたり、整理されたり、ということです。他の人がその質問の件に関してどう考えているのか、問題が発生した場合の実例としてどんなものがあったのか、また、相手に分かりやすい説明の仕方をするにはどうしたらいいのか、とか、いろいろと得るものが多い、という意味です。 さて、なぜこんな下らないことをだらだらと書いているか、というと、最近3通ばかり、私の書いた駄文に関連して、自分にとって有益になるかも知れない質問があったからなんです。 それらの質問はどれも、あるハードウェアやソフトウェアがうまく動作しない、おまえのところではうまく行っているように書いてあるけど、どういう設定にしているんだ、というものでした。で、それぞれ、可能性のありそうな設定上の問題点、間違いやすい点、自分のところの設定の一覧、というのを調べて返事しました。 で、それに対する反応は、1人はまだ返事なし、2人は「うまくいきました、ありがとうございました」という感じの、それだけの返事でした。 そりゃあまあ、私の方も、こういう返事をくれ、という風には書かなかったのが悪いと言えば悪いのですが、「どこをどうしたら、うまく行った/駄目だった」というのが一番知りたいところなのです…それが自分の「利益」になるわけですし。 よく掲示板なんかで「質問者は回答者に感謝の気持ちを、云々」と言う表現を見かけるのですが、感謝の言葉よりも、いま言ったような、解決したとしたらどうやって解決したのか、回答者としてはそこが知りたいんじゃないかなあ、と思うわけです。 掲示板あたりでも「解決しました。もういいです」なんていうだけの質問者の発言があったら、回答を寄せていた人は、がくっとくるんじゃないかな、と。 とまあ、これだけ言いたい放題書いておけば、どうでもいいような質問メールは減るんじゃないかなあ、と期待しているわけですが。 あ、ちなみに女性の場合には上の話には当てはまりませんので、どしどし質問をば…って、またそういうオチかよ。 |
[ 46] スラッシュドット ジャパン | まつもとゆきひろ 答える
[引用サイト] http://slashdot.jp/article.pl?sid=03/03/14/0258247
|
先週、みんなはRubyの開発者まつもとゆきひろ(matz)さんにさまざまな質問をした。そこからスコアの高かったものを約10個をチョイスし、メールで送り、回答してもらった。興味深いお話、ありがとうございます。そして、さすがまつもとさん、質問のリストに直接は含められなかったいくつかの質問や疑問、コメントへの返答もちゃんと含まれている。前置きはこれぐらいにしておかないと物が飛んできそうなので、さっそくどうぞ! Larryが自身のインタビューで述べている通り、RubyはPerlからたくさんのものを引き継いでいて、そのもっとも重要な部分はその「哲学」であると考えています。ですから、Perlの哲学を表現したモットーである「やり方はいろいろある(TMTOWTDI)」というのは当然Rubyのモットーでもあります。もともとRubyはPerlとは「別のやり方」の実現であるわけですから。 しかし、Rubyがもっとも重視しているのは多様性ではありません。それよりもむしろプログラミングという精神活動の中でいかにストレスを減らすかという点に注目しています。私は短気なのでプログラミング中の「イラツキ」は嫌いです。怒りによって生産性が下がるからです。生産性が低いとたくさん仕事をしなければなりません。それは怠惰な私にとって耐えられません。ですから、そのようなことをできるだけ感じずにすむようにRubyを設計しています。そして、私は傲慢なので私にとって良いものは他人にとっても良いと決めつけて世界中に広く公開しています。 そしてなによりストレスが多いとプログラミングが楽しめないじゃないですか。「Enjoy programming」がRubyの真のモットーです。 このインタビューが行われるきっかけになったLarry Wall氏のインタビューを読まれてどのような感想を抱かれましたか? 特にRubyについて言及されていた一節 たとえば、なんでもオブジェクト扱いするのは、「初心者にとっての驚き最小の原則」の侵害だと思う。初心者にとっては、数字は数字だし、文字列は文字列だ。コンピュータが扱う限りでは、それらは当然オブジェクトなのだろうし、もちろん、上級者は、これらをオブジェクト扱いするのを問題にさえしない。けれど、いきなりオブジェクト指向を強いると、加速中の初心者にとっては徐行帯になってしまう。 については、おそらくこのような話は繰り返しあったのでしょうけど(僕はRubyについては全く知らないので推測でしかないのですが)、どのような感想をいだかれましたか? 後、どうもPerl -> Rubyを勧める人たちはPerlのことをかなり貶している(というか嫌っている?)人が多いように私には感じます。あくまでイメージしかないですが。私の持っているイメージは当たっているとお考えでしょうか?もしそうならそのことについてはどう思われますか? 聞いたこともある人もいるかもしれませんが、Larryはずっと昔から私の尊敬する人物のトップ10には入っていて、彼がRubyについて知っているというだけで感激モノです。また、Rubyのローカル変数のスコープの点に気がついた彼はやっぱりとても鋭い人だと思います(古今最高のルネッサンス人かどうかは別として)。私自身もこれはRubyの最大の欠点だと思っていて、機会があれば直したいと思っているので。 しかし、初心者に対しては私は彼とは違う考えを持っています。私は「初心者はいつまでも初心者ではなく、いつまでもその立場に甘んじているべきでもない」という理由で初心者に媚びることを拒否します。初心者向けの言語が存在してはいけない理由はありませんが、少なくともRubyの目指すポジションは「Rubyに十分に慣れた人が最高のパワーを発揮できる道具」です。自転車屋に行けば自転車にまだ乗れない人のために補助輪の付いた自転車を買うこともできますが、万人にそれが必要なわけではありません。私が乗りたいのは軽快に走れる自転車で、初心者に優しい補助輪付き自転車ではないからです。しかし、初心者も当然人間なので、人間に優しいプログラミング言語は初心者にとっても優しい側面があるでしょう。 同様の理由からRubyが「驚き最小の原則」と言う場合には、さまざまなバックグラウンドの人々すべてを驚かせないことではなく(それはそもそも不可能でしょう)、Ruby のやり方に十分に慣れた人が持つ常識が一貫して通用するという意味です。言い方を変えれば「私(matz)の驚き最小の原則」と呼んでも良いでしょう。そして、私にとってはすべてがオブジェクトである方が驚きが最小であるうえ、一貫性があり、しかも強力であったということです。 Perlを嫌っている人が多いというのは分かるような気がします。Perlは良い点も悪い点もある言語です。もちろんRubyを含めたすべての言語がそうなんですが、Perlは特にそれが極端な気がします。そういう言語を使ってプログラミングをするとストレスを感じる人がいます。しかも、仕事などの事情で言語を自由に選べない場合は特にそうです。私も以前仕事でC++プログラミングをしていたときにはC++が嫌いでした。もっとも、C++だけが悪いのではなく、私のチームが開発していたプロジェクトがC++を濫用していたことに真の原因があるのですが、それでも濫用しやすい言語は憎悪の対象になりやすいでしょう。 私はPerlを嫌いではありませんよ。私はRubyを選ぶことができますから、傍観者でいられますから。でも、私がPerlでのプログラミングを強制されたら嫌いになるかもしれません。 私はPerlを使っています。しかしRubyにも興味があります。だがRubyはPerlのように入り口が簡単であるとは思えません。それは私がオブジェクト指向に弱いせいかもしれません。そんな私にRubyも書けるようになるためのアドバイスをください。 人にはいろいろな好みと適性があり、Rubyがどうしても性にあわない人はいるのだろうと思います。そういう人にまで無理にRubyを使ってもらおうとは考えていません。あなたを含めたほとんどの人にとってRubyというのは単なる道具であって、やりたいことを実現させる手段のひとつにしか過ぎません。私にとっては少々違いますけどね。私にとってはRubyは作品だったり、自己表現だったり、パズルだったりしますから。 ただ、あなたがなぜ「簡単であるとは思えない」のかについては大変興味があります。オブジェクト指向に弱いからとおっしゃいますが、オブジェクト指向をばりばり使わないレベルではRubyとPerlとでは大差ないように、私には感じられます。 がそれほど違うとは思えないからです。むしろ配列全体は@なのに要素のアクセスには$をつけるなどのルールの方が私にはストレスになります。もちろん「$はスカラー」というルールは理解しているのですが、スカラーかどうかは私が今関心があることではないからです。自分の関心と言語が要求する注意点にずれがある時にはストレスを感じます。 逆にオブジェクト指向プログラミングが必要になれば、後づけでいびつなPerlのオブジェクト指向機能とRubyのそれとでは比較するまでもと思います。 となるとRubyだから難しいというのは幻想のように思えます。あるいは「簡単であるとは思えない」という真の原因は実は「今さら新しい言語を覚えたくない」言い換えると「Perlなら知っている。Rubyを覚えるのはめんどくさい」という深層心理からくるものかもしれません。いえ、仮にそうだとしても、それは責められることではありません。新しい言語を覚えるのはコストの高い行為で、心理的にも抵抗が大きいのは当然です。そこでの選択肢は「一歩踏み出して学ぼうとしてみる」か、あるいは「ここが幸せ、外の世界は恐ろしい」と踏みとどまるかのいずれかです。どちらを選びますか? 私自身は、新しい言語の学習には時間以外のコストはたいしてかからない上、結局その言語を使わなかったとしても学ぶことが多いので、Rubyを試してみることをお勧めしますけどね。 まつもとさんは、Rubyがしばしば「国産」「純国産」と呼ばれ、「国産なんだから応援しよう」「国産だから使う」というような評価をされることについて、どのような感想をお持ちでしょうか? 私個人としては、近代の国民国家的なコンテクストの中で教育を受け生活してきた人間として、「日本人」であるまつもとさんの成功を誇らしく思(ってしま)う気持ちがある反面、(私自身がしばしばしてしまう)「国産だから」というような評価に対しては、インターネット上でゆるやかに形成されている国民国家とは別のコンテクストに対する視点を軽んじてしまう危険性(インターネットの方がえらい!正しい!というような意味ではなく)や、まつもとさんに限らず、そういったコンテクストで活動されている人々の個性を矮小化してしまう可能性等々に、多くの違和感を感じてもいます。 他の方のご意見もいろいろあるでしょうが、そのあたりについてまつもとさんの感想、ご意見を伺えれば幸いです。 正直なところ、国産なんだからというフレーズには少々抵抗があります。日本人のためのプログラミング言語を作ったつもりはありませんし、日本のためにという思いもそれほど持っていません。もはやRubyのもっとも活発なコミュニティは英語によるメーリングリストruby-talkであり、日本のRubyと呼ぶべきものではないように思います。 しかし一方、私が日本人であることや、英語が下手くそな点は否定しがたい点もあります。日本人であることがRubyに影響を与えたのかどうかは自分でも分かりませんが。それにいろいろなところから支援を引き出すのに「国産」、「日本発」というキーワードを利用したりする私は「曖昧な日本の私」でもあったりします。ある意味ずるいんですが、大人が現代を生きていくためにはそういう小賢しさが必要なときもあります。悲しい。 Ruby の仕様で、これはやめておけばよかったというものはありますか?String の連結は、左右が可換ではないのだから + ではなくて * だろうという話はいまさらだよねということでそのままなのを残念に思っていたりします。すでに定着した仕様はそうそう変えるわけにいかないのはわかっていますが、Dr. Dennis Ritchie もC言語の設計で creat の spell を挙げていますので、せっかくなので、まつもとさんの心の棘を訊いてみたいと思います。 あんまりないです。今のRubyとまったく異なってRubyと同じくらい良い言語は存在できるだろうとは思いますが、Rubyをそのように変えようとは思いません。変えるとしたら、Larryも指摘したローカル変数のスコープくらいでしょうか。これは2.0(Rite)で変更しようと考えています。 「Stringの連結が * であるべきだ」という主張は私には理解できていませんし、そうするつもりもありません。私にとって + ってのは小学生のときに学んだ 雑誌などでまつもとさんのインタビューはいくつか拝読しておりますが、生い立ちについて触れられたものはあまり見たことがありません。 人に役立つものを作るプログラマになるためには、ただプログラミングが得意なだけではいけないはずです。他の素養はどう吸収し、言語開発にどう反映されているのか。つまり、子供の頃から、どんなひとに出会い、どんな言葉に感動を受け、何を学び、そして、それらによってどんな考え方のプリンシプルが形成されたのか。 抽象的な質問ですが、様々な分野の後進へのメッセージを兼ねて、思うところを自由にお話していただけませんか?Larry Wallのインタビューを翻訳しているときに、願うことなら、まつもとさんにも聞いてみたいと思っておりました。このような機会が得られたことに大変驚いています。 生い立ちですか。知ってあんまり役に立つ情報じゃないような。ま、ともかく。1965年大阪生まれ、4歳からは鳥取県米子市育ち、6 人兄弟の長男、ただし他の兄弟と歳が離れているのでわりと一人っ子的にのんびり育ったらしい。実家の前が書店だったので本屋に入り浸り、立ち読み三昧の少年時代を送っています。友達の多くは私を本屋の子だと思ってたらしいです。 コンピュータとの第1種接近遭遇は小学校6年のとき、父親が買ってきたL-kit16なるボードコンピュータ。ダンプリストを打ち込んで8 セグメントLEDが光るのを見て喜ぶ程度で「コンピュータ」としては理解していませんでした。第2種接近遭遇は中学校2年のとき、やはり父親が買ってきたSHARPのポケットコンピュータ(PC-1210)。今度はBASICを理解しプログラミング初体験でした。 しかし、すぐ飽き足らなくなり、次に進んだのはプログラミングの書籍でした。コンピュータ雑誌(ASCII, I/O, マイコン、RAM)やPascal入門、Lispや人工知能の本を読み漁りました。書籍の多くは立ち読みでしたから、今でもお世話になった本屋さんには足を向けて寝られません。ただ、高校時代は漫画やアニメ、SFにはまっていた時期でもあり、高校の友人は私がコンピュータ好きだったことは知らなかったかもしれません。プログラミング言語に興味を持ったのもこの頃です。おぼろげな記憶ではこの頃すでに自分のプログラミング言語を作ろうと思っていたように思います。文法も機能も何も決まってないのに、名前だけは先に決めて。当時から形から入るタイプだったのかも。 高校時代は数学が苦手でした。今でも十分苦手ですけど。一度、数学の試験で学年でだんとつでビリだったことがあります。得意科目は国語と英語、志望は工学部情報工学科という変な理系学生でした。 大学は情報系でした。今までは触れなかったUNIXや書籍の中でしか見たことがなかったソフトウェアや言語などに直接触れる経験は貴重でした。やっと知識に経験が追いついてきたという。また、高校時代に読んだ本の著者の授業を受けられたのも名誉なことでした。難しかったですけど。 大学在学中に2年間休学してキリスト教の宣教師として奉仕しました。一緒に働く同僚や上司の多くがアメリカ人だったので、この頃英語を覚えました。英語は今でも役に立っています。また、異文化や人によって異なる考えについての理解が深まったのもこの頃だと思います。また、自分自身を含めて人間を見つめる機会でもありました。 私がクリスチャンであることはオープンソースの動機にも関係していると思います。私のオープンソースへの動機と情熱の源は愛です。愛と言っても、恋愛の愛じゃなくて、もっと一般的なものです。それは自分自身を楽しませたいという自己愛と、人類にすばらしいものを提供したいという人類愛の両方が入り交じっています。でも、利己的な愛の方がちょっと割合が高いかな。 まつもとさん自身の経験から、今未来のおたくな高校生に向けてなにか伝えておきたいアドバイスや教訓などをはありませんか? 今の若い人たちは恵まれています。計算機パワーは潤沢でしかも簡単に入手できるし(娘の小学校にパソコン室なんてのがあってびっくりしました)、情報もインターネットですぐに最新のものが入手できます。こういう時代に育つ人は前時代の遺物のような私たちとは違う育ち方をするのかもしれません。 しかし、逆に恵まれているがゆえに逆境をバネにする「勢い」ってのには欠けるのかもしれません。また、出来合いのプログラムが豊富なために自分でプログラミングする楽しみを知らない人も多いかも。でも、スラッシュドットの読者は違うかな。 それから、高校までの学生時代には「全方位よくできる人」が期待されます。脳味噌から数学を理解する能力が欠落していた私はそういう周囲の期待には応えられませんでした。しかし、実際に世の中に出てみると成功している人ってのはどこかしら「いびつ」な人のような気がします。ひとつのことだけ得意な人、人格的になにか欠けた人、なにかすごく苦手なことがある人。 いびつであること、マイナーであることを恐れていてはいけない、たとえ周囲は理解してくれなくても。それが私からの教訓です。 まつもとさんは「ソフトウェアを書くときに仕様書を書かない」という話をどこかで読んだことがあります。普段から煩悩、常識というものにとらわれまくりの自分にとってこれは非常に興味深い事実でした。 さて、開発者をデスマーチに追い込みがちな旧来の開発手法に対してXP等の新たなパラダイムが提案され、また実践が進んでいる昨今ですが、まつもとさんにとって理想のソフトウェア開発プロセスとはどのようなものでしょうか? また、Rubyの開発に際して、プロジェクト管理をこうやって切り盛りしているよという裏話があれば是非教えてください。 でも、私は仕様を考えながら試行錯誤的にプログラムを書くことが多いので「仕様書はプログラムそのもので、バグまで記述してある」というケースはけっこうあります。ただ、プログラムには意図は記述されていませんから、意図を表現するためのテストプログラムを用意して(これも仕様の考察が進むたび変化する)、プログラムをコンパイルしてはテストプログラムを実行するというスタイルをここ10年以上行ってきました。XPのテストファーストプログラミングみたいですが、XPほど徹底してもいないし(テストを先に書いたりまではしないし)、網羅的でもないんで、私のは「えせXP」ですね。いつまでたってもテストファーストにもペアプログラミングにも踏み切れないし。 Rubyのプロジェクト管理はあんまりうまくいっているかどうか自信がありません。私はすぐにものごとを忘れちゃうし、Rubyの全容を把握するのは大変でバグが入り込んじゃうこともたびたびだし。 でも、CVSを中心にしているので間違いがあってもすぐやり直せる点と、議論のほとんどがメーリングリストで行われているので、私が忘れても誰かが覚えてるし、アーカイブの検索も行える点とでなんとか運営できています。つまりはオープンであることが失敗しない秘訣ということでしょうか。 オープンソースプロジェクトが成功するには、という話をすると、そのために必要なことは「継続すること」で、その秘訣はふたつのことを維持することです。つまり「やる気」と「生活」です。やる気がなくなればプロジェクトは停滞してしまうし、停滞したプロジェクトはほぼ間違いなく衰退します。また、生活が維持できなければ時間を喰うオープンソースプロジェクトどころじゃなくなってプロジェクトは停滞します(以下同文)。私はたまたまうまく行ってますが、このふたつを継続的に維持できる一般的で良い方法は私にもまだ分かりません。 Ruby に取り組んできたこの10年で、Rubyに起こったもっとも予想外のできごとを三つあげていただけますか? 私が今このインタビューでえらそうに語っていることのほとんどはRubyの開発を通じて学んだことです。あえて三つ選ぶならば 気象解析やバイオインフォマティクスでRubyが使われるようになるとは思いませんでした。先日Webでクマムシについて調べていたのですが、ページの下のほうにBioRubyのバナーが張ってあって驚愕しました。 日本を越えて、南北アメリカ、ヨーロッパ、ロシアなどなど本当に世界中でRubyは使われています。またRubyに関する集会も世界中で開かれています。また、Rubyの作者であるという理由で海外のイベントに招待されることさえあります。これは10年前には想像もできなかったことです。 私は今Rubyを開発しているということで給料をもらっています。「タダのソフト」を開発してるのに人並みに生活できて家族を養っていけるというのは、これまた予想外です。 今後、既存のRubyの言語仕様で対応しきれないパラダイム/スタイルが主流となった時、どこまで言語仕様を拡張して対応していきますか?言語仕様の複雑化を選ぶか、流行遅れの言語となることを選ぶか、というところに非常に興味があります。 先程も述べた通り、ほとんどの人にとって言語っていうのは単なる道具なんで、あらゆるパラダイムやスタイルに対応しようという試みは単純にナンセンスです。できるならやればいいけど、無理してまでやることじゃない。私は新しいプログラミングパラダイムの将来について悲観的なので、Rubyは広く使われているような近い将来にそのような「Rubyで対応しきれないパラダイム/スタイルが主流になる」とは思っていないのですが、仮にそのような事態になったとしても、それはRubyでない別の言語がカバーすべきではないかと考えます。そのような時代にはRubyは流行遅れになるとは思いますが、たぶんそうなっても私は(まだ生きているならば)Linux 20.4.2 あたりでRubyを使っているでしょう。私は今Rubyを使ってハッピーなので、そのような時代にあっても今Rubyを使っているようなタスクを解決するためにはRubyでハッピーなのではないかと思うのです。 Rubyが将来変化するとしたら(かならず変化すると思いますが)、それは新しいパラダイムに対応するためではなく、今まで気がついていなかった人間(プログラマ)の精神的特質をサポートするためでしょう。そしてその変化はゆっくりとしたものではないかと思います。Rubyは人間のためにあり、そして人間は機械に比べてゆっくりとしか変化しないからです。1950年代に登場した言語(FORTRAN, COBOL,Lisp)が人気は衰えつつも現役であることを考えると、言語の変化のスピードが分かるでしょう。 さて、言語の肥大化は言語設計者にとって非常に気をつけなければならない点です。世の中にはかつて数千とも数万とも言われる数のプログラミング言語が存在し、今も誕生し続けていますが、そのほとんどは現在生き残っていません。その最大の理由は「ユーザが少なく生き残るのに必要な人気を獲得できなかったので忘れ去られた」というものです。人気の獲得という最初の難関を乗り越えた言語が陥る罠が肥大化です。言語はあらゆる局面で使われるため、いろいろな局面に便利な機能をどんどん取り込んでいくと次第にその仕様が大きくなっていきます。そして肥大化を続けた言語はいつしか自らの重さで重力崩壊してブラックホールになり周囲のものすべてを飲み込むようになります(笑)。そのような言語は実装が難しく、使いこなすのが難しく、結局人気を失う危険性が高いのです。今、Perl6がその道を歩んでいるのではないかと心配です。Rubyは決してその道はたどらないようにしようと決心しています。 私は数ある言語の中で、Rubyがダントツ一番好きです。でも言語おたくというわけではないので、もしかして Ruby 並(以上?) に面白い言語があっても私が知らないだけかもしれません。ぜひ言語おたくとしての意見をお聞きしたいです。 言語オタクとしてのあるべき答えは「私はすべてのプログラミング言語を愛している」です。しかし、「より好きな言語」はLispの影響を受けたものです。直接Lispの血統であるCommonLisp, Scheme, LOGOは当然として、SmalltalkやMLなどにも影響を感じます。理由はおそらく「少ないルールによって広い範囲をカバーする」というところのような気がします。 この質問をした人をはじめ多くの人が普及は善であると考えているようです。「普及のためにはWindows対応を強化すべき」とか「cpam.pm相当が必要」とか、親切に提言してくれる人はたくさんいます。しかし、考えてみればRubyはオープンソースソフトウェアですからたとえ世界中のプログラマがRubyを利用しても(そして実際に利用していますが)、私にはどれだけメリットがあるのでしょうか。少なくとも経済的にはゼロです。 みなさんの中でRubyを使っている人、学んでいる人、知っている人など多くいると思いますが、その中でRubyを作ったことに対して私に報酬を払った人はいないでしょう。私の本を買ってくれた人は私に印税をもたらしてくれましたが、それはRubyを作ったことにではなく、Rubyの解説書を書いたことに対する対価だと思います。別にRubyを作った人でなくても本は書けるし、実際にそうしている人もたくさんいますよね。 それでもRubyを作るのはそれが楽しいからです。みなさんが「Ruby は良いものだからもっと普及した方がいい」と考えてくださることには本当に感謝します。ありがたいことです。普及して嬉しくないはずがありませんし、普及のための協力の申し出は喜んで受けます。でも、だからといって私に楽しくないことを押しつけるのは勘弁してください。オープンソースソフトウェアにマーケティングは必要ありません。私は期待以上のたくさんのユーザに恵まれています。普及は良いものを作った結果、副作用で十分です。 Windows対応については多くの協力者が大変な苦労をしてメンテナンスしてくれています。もしもっとたくさんの人が情報や労力などを提供してくださればもっとよくなるでしょうが、ほっておいてもよくなることはないでしょう。Rubyが成功した理由の一部は、Ruby のような言語になにが必要か私が分かっていたことにあると思います。私はWindows について知識がないので、Windowsユーザにとって正しい判断ができるとは思えません。より良いWindows対応のためには、どのようなものが欲しいか、どのようなWindow対応が「良い」のかきちんと定義できる人たちの積極的な参画によって実現できるのではないか、私は思います。 但し書き: コメントはそれぞれ投稿した人のものです。決してわたしたちが責任を負うものではありません。 いつもCCCDに対して不満たらたらいってるみんなから、なぜ 日本レコード協会会長かつエイベックス株式会社代表取締役会長 兼 社長の依田 巽 氏の名前があがらないかなぁ?盛り上がる事必死 ですぜ。 という話はさておいて、だ。個人的には次の方にインタビューを していただけたら面白いのではないかと思います。 ソニー(株)の土井利忠氏。 CDの規格策定に際して多大な貢献をし、ワークステーションNEWSの プロジェクトを成功させ、いまはロボットと戯れる?これぐらい 面白い事をやってきたひとはなかなかいないでしょう。 もちろんお約束の精神世界の話もたっぷりとお願いしたい。 困難かな、とも思いますが是非に。 2003年03月14日 17時30分1個のコメント が現在のしきい値以下です。 6個のコメント が現在のしきい値以下です。 過去からのわだかまりが解けたような気がします。 私は傲慢なので私にとって良いものは他人にとっても良いと決めつけて 初心者に媚びることを拒否します。 普及は良いものを作った結果、副作用で十分です。 いつだったかテレビ番組で,どこかの料理人が,客の欲しがるものを出すのではなく,自分が薦めるものを提供するのだ,と言っていて,すばらしいと思ったものの,後ろめたい気持ちもあり,声を大にして言えませんでした。RubyやPerlやPythonや,その他いろいろあるにもかかわらず,「自分好みのスクリプト言語を作ろう」という気持ちが湧いてきました。とりあえず正規表現エンジンあたりから取り組んでみようかと思います。 人はなぜ車輪の再発明をするのか。 「それが僕には楽しかったからさ。」 # なんか勘違いしているような気がしないでもないが,まぁいいか。 和が可換であることって別に必須じゃないよね。 harako氏がなぜ残念に思うのか聞いてみたいところ。 それもさることながら、私はなぜ連結目的で(*)が出てくるのかが理解できません。(+)は多くの言語やスクリプトでも使われていますし、数学他で一般的に使われている意味合いからも直感的にも理解できるのですが…。可換であるかどうかがヒントなのだと思うのですが、数学記号としての意味で挙げられているわけじゃないのでしょうか。 2003年03月17日 10時29分 1個のコメント が現在のしきい値以下です。 Re:文字列連結 私も代数学はやっていたのですが、それでも(*)が自然な表記だとは思えません。群で言うならば中点(・)の方が適切ではないかと思えるので、むしろPerlのピリオドの方が字面的に自然な気がします。(もちろんあくまでそれは私の感性での話です。一般論だと言うものではありません。) それはともかく、演算という目で見ると文字列連結には終端処理が入るためそもそも勝手が違ってきます。数値として見た場合、文字列は終端を含めたものが群になるべきではないかと思いますので、片方の終端を削って全体を繋げるという演算は数学には存在しないのではないかと考えてしまうのです。(数学エキスパートではないので、もし存在してましたら失礼!)つまり数学として見る事自体が不自然ではないかと。 ↑そしてまさにこれです。私が最初プログラミングに出会ったとき(最初はBASICでした、その後は色々と…)、(=)が左辺と右辺を等価にみなすための意味ではなく、単なる代入を意味する記号として使われているのに違和感を覚えると同時に「ああ、マイコンではこう書くんだ。」(当時パソコンという呼び方はしてなかった(笑))とむしろ新鮮でした。 なので文字列連結も、数値演算とは別に言葉として「加える」という意味合いで(+)が使われていると普通に連想していたわけです。少なくともこの連想では「掛ける」を使うのが不自然に見えても仕方がないとお考えください。 結局のところ、ソース上の演算子って演算目的の記号と特定の動作を表す記号のダブルミーニングなんですよね。Cだとさらにポインターの意味も加わったりしますし。それは時たま目やコンパイラを迷わせますが、まあ慣れの問題で良いのではないかな〜。…って、それだと(*)でもいいやんってなっちゃいますよね。でもそれだと英語で読む時に違和感があるんだよー。addだと文字列の場合でもそのままで読めるんで。 2003年03月17日 17時13分 1個のコメント が現在のしきい値以下です。 Re:文字列連結 2003年03月15日 5時34分 4個のコメント が現在のしきい値以下です。2個のコメント が現在のしきい値以下です。 まず、質問に答えていただいたまつもとさんに感謝。 それから、高校までの学生時代には「全方位よくできる人」が期待されます。脳味噌から数学を理解する能力が欠落していた私はそういう周囲の期待には応えられませんでした。しかし、実際に世の中に出てみると成功している人ってのはどこかしら「いびつ」な人のような気がします。ひとつのことだけ得意な人、人格的になにか欠けた人、なにかすごく苦手なことがある人。 いびつであること、マイナーであることを恐れていてはいけない、たとえ周囲は理解してくれなくても。それが私からの教訓です。 激しく感動&勇気づけられました。同種の友人にも伝えておきます^^; それとクリスチャンであることは初めて知りました。「愛」ですか...私の場合は「仁」かな? 3)の質問をしたKaturagiです。 私はPerl以外にもVBやAppleScriptなどを使います。 古くはPB-100BASICやN88BASIC、HyperCard、触っただけのCなど多くの言語を使ってきました。だから新たな言語を覚えるのに苦を感じることはありません。 自身の質問でPerlを引き合いに出したのは少しミスをしたかなと感じます。 まつもとさんの回答で十分な”解凍”を得ることはできませんでしたが、今回の回答で「とりあえず何度でもぶつかって砕けてみよう」と思いました。まずはPerlをRubyで置き換える”遊び”からはじめてみようかな。 まつもとさんの素敵な言葉に感謝です。 > プログラミングという精神活動の中でいかにストレスを減らすか という点は開発に携わる者としてはとても嬉しいな。 # 編集の方にも感謝。でも俺はfjじゃなくてyukifjだぜぃ(´ー`)y-~~ 2)で取り上げられたunnyaです。答えてくださった まつもとゆきひろ さん、投稿をモデレートしてくださったモデレータの方々に深く感謝いたします。 Perlのオブジェクト指向をぼちぼち勉強していて、「簡単なことは簡単に、難しいことは可能に」のスローガンの裏返しで、print "Hello, World!\n"; の頃に比べると随分坂がきつくなってきたなぁとか思っていますが(なんてこの場で書くと恥ずかしいのだけれど)、お答えを読んでいて、Rubyは最初の方が坂がきついのかな、とか勝手な感想を抱いたりしています。 ほとんどCGIを書くためにPerlを扱っている僕が、Rubyといえばまっさきに思いつくのがtDiary [tdiary.org]です。僕の環境では.htaccessが使えないなどの制限があって、そのままでは使えないのですが、Rubyで書いてあるためどこをどういじっていいかわからずいいCGIなのにと残念に思ったことが大きいからです。せっかくなのでこれを機会にRubyもやってみようかな、とか思う今日この頃です。 まさか選ばれると思ってなかったので感激のあまり(笑)、文章が支離滅裂ですが、とにかくありがとうございました。 言語に限らず,好きだったゲームとか Webサイトとか,PDAとか,ソフトが…人気を得て バージョンがあがってきたり続編を重ねていくと どんどん肥大化,複雑化してしまって残念に思うってこと…ありますよね. Rubyについても私は非常に愛用しているし,人気も高くなってきてるので その点はちょっと心配だったのですが,ちゃんと気がついて いらっしゃることがわかって安心しました. 自分も(プログラムじゃないんだけど)モノを作る職業にいる身として 「もっと人に気に入られるためには機能(何か特徴)を追加すればよい」と安易に考えるんじゃなくて 本当に良いとは何かについて真剣に 考えるべきだよなぁと改めて思います. ちなみに…今,肥大化について結構心配なのは w3mとかvimとか…かなぁ. まぁ自分でmakeする時に機能が選べるのは救いなんだけど. あと…Rubyの肥大化はたしかに歓迎できないけど…標準ライブラリは もうちょっと豪華になってもいいんじゃないかなぁと(ちょっと矛盾してるかもな意見?) 2003年03月24日 2時55分 1個のコメント が現在のしきい値以下です。 2個のコメント が現在のしきい値以下です。 私も最初、そういう現象に見舞われました。 あれ?と思ってリロードしたら、今度は全部表示されました。 当方ライトモード、Netscape7.0、win2kでござる。 #長すぎるとたまにこうなる、、、とか? > 8 セグメントLED > ↓ > 7 セグメントLED じゃないかな。 数字の右下にドットがついていたのではないでしょうか。 2003年03月17日 11時42分1個のコメント が現在のしきい値以下です。 2個のコメント が現在のしきい値以下です。 Re:自尊(オフトピック) 2003年03月17日 11時37分1個のコメント が現在のしきい値以下です。 1個のコメント が現在のしきい値以下です。 1個のコメント が現在のしきい値以下です。 Re:ローカル変数のスコープ 2003年03月20日 21時10分 3個のコメント が現在のしきい値以下です。 1個のコメント が現在のしきい値以下です。9個のコメント が現在のしきい値以下です。 |
【チョーほったらかし♪。のんびりナマケモノの主婦が179万円稼いだ株の超カンタンな裏技】
【パソコンど素人の主婦やサラリーマンが1日20分の片手間副業で月収273万円をらくらく稼いだ方法 〜7DAYSプログラム〜】