そんなのずるいじゃん。いや、自然の法則だしねえ。種屋さんに都合がいいのは確かだけど。この調子では、子供が「知財戦略」を理解できる日は遠そうだ。松江もう、毎週松江に出席するのは明らかなんだから、わざわざ松江と書くのも意味ないんだが。朝、電話がかかってきて、「日曜学校の教師が来れなくなったので代わりに教えて」という依頼が。なんとかなるでしょう、きっと。聖餐会の話者の割り当てもあるのだった。赦してもらわなくてはいけないことはたくさんある。いうことに限って忘れてしまいがちだ。痛みを与えた方はすぐに忘れても、与えられた方はなかなか忘れられない。実際に忘れてそうなことがたくさんあるなあ。日曜学校は「知恵の言葉」について。参加者が助けてくださったおかげで大変有意義な時間となった。するカップルの「ご結婚おめでとうパーティ」がささやかに開かれる。5年越しの恋が実ったのだそうだ。...そういえば、うちも出会ってから結婚までには5年かかってるなあ。皆にからかわれつつも、幸せそうであった。原稿の苦しみ終わらない。システムコールについてもざっと解説して、とか思うと悩ましい。久しぶりにCでネットワークプログラミングしたら、はまる、はまる。30分以上は悩んでしまった。これに比べたらRubyのソケットプログラミングは天国のようだ。いうことが、伝えたかったのだが、ページの関係もあって伝わったかどうか自信が無い。明日の東大の講演のためのスライドを用意しはじめる。その辺をちょっと反省して、書き直してみる。東大情報ならそんなこと気にすることはないのかなあ。「趣味の言語からビジネスの言語へ」---日本初のRuby大規模イベント開催ITPro、高橋さんによるレポート。タイトルがすべてを言い表しているような気がする。生じはじめる頃なのかもしれない。私は1.9で趣味を謳歌し、ビジネスパーソンは1.8で儲けてもらうというのはどうだろうか。エンタープライズ某社の人たちと打ち合わせ。松江までご足労いただいた。「エンタープライズ」って「規模のエンタープライズ」と「複雑さのエンタープライズ」がありますよね。ロジックやデータ構造の複雑さに関しては、Railsも特に助けてくれない、という話。具体的にRails(特にActiveRecord)では難しい事例つき。こんなことしたいニーズもあるのか。JavaなORマッパーはこういうのもサポートしてるのかな。さまざまな状況が考えられる「複雑さ」を一概に支援するのも難しい話だ。「重要さのエンタープライズ」ってのもあるな。大規模でも複雑でもないけど、止まったり誤動作したりすると大きな迷惑がかかるようなの。Rails研修を開始オープンドリームは以前アジア向け技術者研修で講師を出したところ。自前で講習を用意できるようになったらしい。うちの約半額というのが素晴らしい。うちも各種割引があるので実質の差はもうちょっと小さいだろうけど。教育って魅力的に見えるのかな。なんとか赤字にならない程度で推移しているくらいなのだが。それはそれで馬鹿にならないのだが。View今年もやります、だそうだ。昨年とはいくつか違いもあって、Railsオンリー(昨年はRails以外も対象)合宿を開くのだそうだ。今年も審査委員を引き受けた。Lamからのエントリ。言語実装の楽しみを実感できる人(ホビー言語設計者)が増えるかも。いうところに寄稿したのだが、有料登録しないと後半が読めなくなっていた。交渉して公開許可を頂いたので、ここで全文掲載。現代社会はもはやコンピュータがなければ成り立ちません。コンピュータは誰かが作ってソフトウェアがなければ、まったく役に立ちません。コンピュータは自発的に仕事をしてくれないどころか、誰か人間がソフトウェアという形でどのように仕事をすれば良いのか教えてやらなければ、なんの働きもできないのです。コンピュータが社会に役に立っているのは、ソフトウェアがあるからです。どんなに賢いように感じられるコンピュータでも、自らソフトウェアを開発することはできません。コンピュータは単純な計算をものすごく速く行うことができますし、それを積み重ねることで人間を越える能力を備えていますが、その一方で、なにか新しいことを創りだすなどの創造的な活動は苦手です。いうとまったくダメだと言ってもいいでしょう。当面の間は人間がソフトウェアを作って、コンピュータに仕事を教えてやるしかないのです。社会におけるコンピュータの重要性は明らかで、そのコンピュータがソフトウェアがなければ役に立たず、そのソフトウェアは人間にしか作れないとなれば、ソフトウェアを開発する人間こそが真に重要だということになります。現状、誰でもがソフトウェアを開発することができない以上、ソフトウェアを開発する人、プログラマを養成することは急務です。言うものの、どのような教育を行えば、優秀なプログラマを育成できるのかについて誰でもが合意できる方法はまだ見つかっていないようです。最近、注目されているのが若い人たち、特に小学生や中学生へのプログラミング教育です。確かに優秀なプログラマは若い頃からその才能を発揮している人が多いようです。プログラミング能力はあまり年齢に関係ないようで、天才と呼ばれる小学生プログラマがいると思えば、70歳をはるかに超えて現役で活躍する方もいらっしゃいます。そこで、若いプログラマを育てるために、小学校や中学校での情報処理の教育やプログラミング教育に力を入れようという動きもあるようです。自分自身のプログラマとしての経験から考えると、これにはなかなか困難がつきまとうように思えます。第一の課題は「誰が教えるか」という点です。学校をプログラミング教育の現場にするためには、当然のことながらプログラミングを教える教師が必要です。現在の小学校・中学校の教員でプログラミングの能力を持つ人はごく少数でしょう。教科書通りに教えることができる人は短期間で用意できるかもしれませんが、それでは子供たちにプログラミングに前向きな気持ちを伝えることは困難でしょう。中学生時代にプログラミングをはじめた私自身も含めて、若い頃からプログラミングに「はまった」人たちは、結局、コンピュータを使いこなすのが楽しいからこの道に進んだようなもので、教科書に書いてあるから、あるいは学校の授業だからという理由でプログラミングをはじめた人など見たことがありません。プログラミングを教えるというのであれば、少なくとも教える人はプログラミングの楽しさを自覚している人でなければ成果をあげられないと思いますし、そのような人をそれぞれの学校に配備するのは大変な困難ではないかと思います。第二の課題は「どのように評価するか」ということです。学校の授業であるということは、なんらかの評価をする必要があるわけですが、これがまた困難です。プログラミングの能力は、創造性をともなうという点である種芸術に似ています。いう点では美術の授業に似ているのですが、問題はプログラミングの場合、人によっては非常に短期間で上達するため、小学生であってもプロを越える作品を完成させることがたびたびあることです。人によって出来栄えが10倍、100倍あるいは1000倍も違うようなものを学校の成績としてどのように評価したらよいのか途方にくれます。第三の課題は「なにを教えるか」ですが、この点は最初のふたつの課題に比べればなきに等しいものです。学校教育はプログラマ養成にふさわしくないのであれば、いったいどうすれば未来を担うプログラマを養成することができるでしょうか。正しい答えは私自身も持っていないのですが、私の知っている優秀なプログラマのほとんどが自学自習でプログラミング能力を身につけている現実を考えると、あるいはプログラマとは、養成されるものではなく、発見されるものなのかもしれません。ある調査によれば、大学におけるプログラミング教育の受講者の内6割程度はプログラミングの基本的な部分の理解に困難を感じ、それは他の学科の成績に必ずしも相関しなかったのだそうです。すると、世の中にはプログラミングに向いた性格の人がいて、成績その他では区別することができないことを意味します。あるならば、少しでもたくさんに人にプログラミングに触れる機会を与え、そしてそれに興味を持てた人、才能の片鱗を見せた人にはより豊かな機会を与えるようなプロジェクトを総合的に設計することで、未来のプログラマを「発掘」できるのかもしれません。そのような才能あふれる人たちに適切な待遇を与えることが、このIT社会の競争力を強める最大の方策なのかもしれません。