«前の日(12-26) 最新 次の日(12-28)» 追記

Matzにっき


2003年12月27日

_ [原稿]年内〆切

アスキーから出るという『LL Magazine』の原稿(計5ページ)と、 『CODE Reading』の監訳の仕事が両方とも年内の約束である。 例によって引き伸ばしと怠慢によってぎりぎりになりそうだ。

『LL Magazine』ってのは夏に開いた『LL Saturday』の内容をベースにしたもので、 ここでの「LL」は当然「Lightweight Language」のことだ。

私の担当分は以下の通り

  • LL Magazineに寄せて(献辞)

    各言語のデザイナーからのLL Magazineによせる言葉。 Larry, GuidoからはOKをもらったらしい。PHPのZeevにも頼んだそうだが。

  • Lightweight Languageとは?

    一応、日本でLightweight Languageの定義を語る人物といえば、まつもとだろう、 ということで、私に依頼が来た。LL Saturdayでの発表をベースに総括する。

  • Language Update

    各言語の最新情報。Rubyについては、

    • 1.8.1と1.9について
    • Ruby2とRiteについて

    を報告。

『LL Magazine』いつ出るんだろう。

『0201799405』はすばらしい本なので、 ぜひ日本語化のお手伝いをしたいということで引き受けた。

_ [OSS]「オープンソースとエンジニアの決意」

@ITのDevelopment Style Round Table Talkingなるインタビューの3回目。

この座談会の第1回は、 この日記でも11月25日にコメントしている。

今回も面白そうなタイトルであるが、内容はタイトルを反映していないように思う。 決意について語ってるところあったかな。

興味深い発言としては、浅海さんの

つまり、利用者が無料で使えるというのは確実にいいことなんですが、無料で提供した人が得をするかというと、現状では得をしないんですよね。IBMのように大きな枠組みを構築できる企業は得をするかもしれません。しかも、もしもの場合は別のところでもうけて損失を補填する体力がある。しかし、オープンソースの中核を担う、あるいは担ってほしい人たち(多くの場合個人)は得をしないモデルなんですよね、いまのオープンソースというのは。この辺、どうすればいいのかなと考えてしまうんですが。

(中略)

いまは、オープンソース・プロジェクトの成果が全部法人に還元されてしまうじゃないですか。作った人はほとんどもうかっていない、一部の例外を除いて。また、優秀なエンジニアを個人として社会的に引き上げるシステムが絶対必要なんですが、いまはそういうシステムがないでしょう。

ま、事実の指摘としては、そういうところはなきにもあらずである。 この状態を称して「オープンソースの弱点」とあげつらう人がいるのが問題である。

あ、浅海さんは弱点なんて言ってませんよ。

たとえば、サッカーの試合のチケット収入は興行者に入るので、直接プレイヤーの財布には入らない。 しかし、それを問題視する人はいない。最終的に一部はプレイヤーに還元されることが分かっているからだ。

オープンソースで同じことが成立しない理由があるのか。あるいはまだ環境が整備されていないだけなのか。

個人的には後者だと思う。もちろん、サッカーと違って、 オープンソースソフトウェアは誰でも対価を払わないで利用してもかまわないという点が 違うといえば違うのだが、この条件がオープンソースの発展の障害となることはないと考える。

みんなは知らなかったかもしれないが、すぐれたオープンソース(フリーソフトウェア)は ビジネス的に注目されずもっと経済的に厳しい状況の中でもずっと生き延びてきていた。 ここ何十年も成立してきたものが、注目され状況がかえって良くなっている現代で成立しないと考える人は、 要するに「自分の常識で説明できない」から否定しているだけではないだろうか。

もうひとつの理由は、私は企業はそんなに馬鹿ではないと考えていることだ。 近視眼的には「ほっておいても無料で手に入るものに金を払うのは馬鹿だ」という考えもあるだろう。 しかし、オープンソースを活用する企業がオープンソースが振興するために投資することが 長い目で見れば非常に有効であることは、ちょっと考えれば分かるだろう。 「海に行けば魚が獲れるのに養殖するのは馬鹿だ」と公言するのはあまり利口に感じられないのと 同じようなものではないだろうか。

まだ、システムは確立していないのは事実だ。 オープンソース開発者でオープンソースだけで食べていける人は少ない。 これも事実だが、しかし、現時点までの状況ではかなり希望があると思っている。

100年前、「野球で飯を食う」と公言するとかなり笑われたと思う。 しかし、多くの人がシステムを構築してきたので、年収数億円のプレイヤーが登場するようになった。 今、「オープンソースで飯を食う」といっても「ありえない夢」と思われるかもしれない。 だが、そんなに遠くない未来には「簡単ではないけど実現可能な夢」と認識されるようになると、 私は固く信じている。いや、すでに「簡単ではないけど実現可能な夢」になっているのだ。 プロ野球選手になるよりは100倍簡単だと思うぞ。

ところで、全然違う話だが、この座談会では、第2回のタイトルが「日本発の独自技術を開発する」だったりして、 「日本独自」ということに結構こだわっているように見える。

そんなにこだわる必要あるのかな。ナショナリズムの昂揚とか?

_ [車]タイヤ交換

後輪もやっと交換。このぐずぐずした性格はなんとかならないものか。

_ [TV]ブラックジャック

録画してあったものをようやく見る。原作に妙に忠実かと思えば、 極端にアレンジしてある部分もある。 しかし、原作に忠実な部分は見られるが、 アレンジしてある部分は妙にできが悪い。 なんでアレンジしたかなあ*1

本間先生*2のエピソードで石の鞘を捨てるところは不要。まして娘など。 最悪はU-18のエピソード。「一緒にやり直しましょう」とか「私があなたのお母さん」とかのセリフには 寒気さえ覚えた。だいたい触ったり動かしたりできる立体映像ってなんだよ。

感動させようとして追加した部分が蛇足以下。 やはり手塚治虫の真似は誰にもできないということなのか。

アレンジされた部分で納得できたのはU-18のエピソードでのピノコの携帯の扱い。 あれは現代風で自然だった。別に必要でもないけど。

追記

ブラックジャック病? そんな病名だったかなあ。動物も人間もちっちゃくなっちゃう病気。 本間先生かどうかは覚えてないんだけど(たぶん違うけど)、 あの鼻と恩師という設定は記憶にある。

*1  アレンジしないとクリエータとして創造性を否定されたと感じるのかも。

*2  そういえば本間先生ってアフリカの奇病にかかって死んだんだと思ってた。このエピソードも記憶にあるんだけど。

_ [TV]『鋼の錬金術師』

たまに見ると面白い。この世界では国家錬金術師はそれぞれ独自の銘をもっているらしい。 主人公エドワード・エルリックの銘は「鋼」なので『鋼の錬金術師』ということだ。 ということは、あれだけたくさんいる国家錬金術師の中には銘が「」とかいうのがいて..(バキッ

それはともかく、なんでもありの魔法ではなく科学としての錬金術を表現しようとしている点が 面白いといえば面白いが、その制約が「等価交換」としか表現されていないうえに、 ほとんど説明がない(「質量保存」と「属性不変」ってのはあるらしい)ので、 やっぱり魔法と大差ない。

もうちょっと理論的背景をほのめかしてくれてもいいのになあ、 と思うのは硬めのSF好きのたわごとか。 そういうのが『4086301636』なんだろうか。 まだ読んでないが。


2004年12月27日

_ [言語]The Aikido Scripting Language System

Sunからリリースされているスクリプト言語。「合気道」とはまた変わった名前だこと。

特徴は

  • Block structure. A Pascal and Ada like block nesting structure
  • Object orientation. Classes, Interfaces and packages, with single inheritance and operator overloading
  • Multithreading. Threads can be created as easily as making a function call. Monitors are provided for synchronization
  • Block extension. The ability to extend any "block" (function, class etc)
  • Streams. These are builtin channels connected to devices (screen, disk, network etc)
  • Garbage collection. This is done using reference counting
  • High level data structures. Strings, vectors, maps, etc.

ということらしい。ざっと見た感じではGroovyとの差別化はできてないように思う。 が、スレッドやストリームの扱いとかは面白そう。

_ [言語]The Spry Computer Language

Prototype版PythonことProthonの作者、Mark Hahnが開発した.NET用動的プログラミング言語。 同じ.NET上のPython系言語でも、Pythonに静的型を付けたBooとは逆に、より動的な側面を強調した言語。

しかし、...

(続きは後述)

_ [言語]企業システムにおけるPHP5の可能性

Javaと比較してPHPを紹介する記事。 しかし、しつこいくらい繰り返しているが「PHPの良さ」はどこにあるのだろうか。

この記事ではこんなことを書いている。

PHP5はJavaと比較して、パフォーマンスの面では圧倒的に遅れをとりました。オブジェクト指向機能についてもPHP5は今ひとつJavaにはおよびません。しかし、PHP最大の利点はパフォーマンスやオブジェクト指向機能ではなく開発生産性の高さです。まずは下記をご覧ください。

本連載で掲載したソースコードの行数

PHP5Java
5000までの素数をWebブラウザーに表示する28行34行
5000までの素数を画面に表示する(バッチ)28行32行
データベースへの接続を繰り返す88行122行
Singletonパターン57行58行
例外処理122行97行
合計323行343行

上記は本連載で掲載したソースコードについて行数をまとめたものです。いずれも小さなプログラムですが、例外処理を除いてPHP5の方が少ない行数となっています。

こんな短いプログラムで比較するのもどうかと思うのだが、 Rubyで書いたら絶対これより短くなる。 ということは、PHPではなくRubyを使えという話なのか。どうも、そうではなさそうだ。

よくいただく反論は「PHPでもできる」ということであって、 同じくらい良い(動的)言語からPHPを選ぶ理由ではないはずだ。

PHPは決して速くないし、記述力が高いわけでもないし、たくさんの欠点が残っているように見えるが、 あちこちで「そのシステムPHPで書かないの」という質問が出る*1ところをみるとそれなりに使われているようだ。

もっとも、PHP陣営から出てくる数字はmod_phpのインストール数とか、mod_phpのパフォーマンスと(mod_perl抜きの)perl CGIとの比較とか、あんまりフェアでない印象があるが。

あるいは「すでにPHPを覚えているので、いまさら他の言語を覚えたくない」ということなのかもしれない。 その気持ちは理解できる。 もしかすると、よく分からない初心者をイメージ先行で取り込んでしまい、 「いまさら他の言語を覚えたくない」という」意識でロックインしてしまうというのは、 初心者をターゲットにした素晴らしいマーケティング戦略なのかもしれない。

もしそうだとするならば*2、Rubyは絶対にその戦略を取りたくない。 それくらいだったらマイナーなままでいてくれた方がずっと良い。

*1  先日、豆蔵の人もRubyでかいた社内ツールについて「なぜPHPじゃないの」と尋ねられたそうだ。逆に「なぜPHPにしたいの」と問い返したいところだ。

*2  これは仮定の話。「PHPはそういう戦略を取っている」なんて断言してませんからね、念のため


2005年12月27日

_ [会社] 仕事納め

今年の出社日は今日で終わり。

一年かけて机の上に積み重なった、 書類、雑誌、書籍、紙切れなどを片付ける。 ほとんどのものは破棄。一部は本棚に移動。

毎年この時期だけは机の表面がきれいになる。 2週間くらいしかもたないのだが。

_ 病気(3)

今度は長女が具合が悪くなった。 次々と病気をするものだ。

_ 後で書く

Setter/Getterの件」で、 初心者の意見からデザインのアイディアを拾うというワザを披露したわけだが、 実は最近気をつけている「アイディアの素」がもうひとつある。

が、冬休みが始まってしまったので後で書くことにする。 ま、「後で書くメソッド」についてはPaul Grahamも認めているようだし。

ヒント:スケーラビリティ


2006年12月27日

_ [知財] 日弁連、著作権保護期間の延長に反対する意見書を提出

日弁連から延長反対意見。 社会的に影響力のありそうなところから反対意見が出れば、 世の中の動きも変化があるだろうか。

延長賛成派の論に合理的理由を見いだせない私としては このままなしくずしに延長されてしまうことは避けたい。

_ [Ruby] SAGOOL開発元社長の「おもロジック」な頭の中

BON SAGOOLはRailsで書いてある。

「Ruby on Rails」で開発しています。なんといっても開発がすごく早いのがいいです。逆に苦労した点は、動作がすごく遅いことですね(笑)。

遅くて申し訳ない。もうすぐ速くなる、かも。

_ [Ruby] Ruby で JSON パーサーを書いてみました - WebOS Goodies

YAMLライブラリの対応は早かったRubyだが、JSONライブラリは添付される予定はない。 が、JSONもYAMLと同じくらい可能性があるフォーマットだと思うので、 個人的には標準対応したいものだなあ。

もっとも私自身がメンテできないから、誰かに名乗りをあげてもらう必要があるのだけど。

_ [言語] Common Lisp's Loop Macro Examples for Beginners

高名なCommon Lispの複雑さの二大巨頭の一つ(もうひとつはformat)の loopマクロの使い方いろいろ。

こんなの複雑すぎて使えないと考えるべきか、 あるいは、なんでもできてすばらしいと考えるべきか。

とりあえず冗談抜きで「なんでもできそう」ではある。

_ Unfuddle: Free Source Control, Bug and Issue Tracking

Basecamp風味のソフトウェアプロジェクト管理ツール。Rails製。 Tracに似てると言えば似てるかもしれない。

私自身はTracも使えてないので、こういうのがどれくらい便利か いまいち想像力が働かないのだけれど、 Rubyでもバグレポートやら新機能の提案やらなんやらがあちこちに分散しているのは確かなので、 そういうのを一ヶ所にまとめるワンストップソリューションにはニーズがあるのだろう とは思う。

どっかに用意するか。でも、最近Wikiには(Spamに)うんざりしてるので、 Tracじゃないものがいいなあ。

_ [言語] Java のクラスアンロード (Class Unloading)

Rubyにはclass/moduleのunloadingがない」との指摘があったので、 どれどれと調べてみた。

Javaでのclass unloadingってのは、思ったよりも複雑である。 正直、もっと簡単にできると思っていた。

詳細はリンク先を 見てもらいたいが、正直Javaのクラスローダの基本がよくわかってない私には難しかったが、 簡単にアンロード出来るようなものではないことはわかる。

一方、Rubyであるが、

  • そのクラス/モジュールを指す定数が削除され(remove_const)
  • そのクラス/モジュールを利用するクラスが存在せず
  • そのクラスのインスタンスが存在しない

状態になれば、クラスやモジュールもGCの対象になる。 ということは、クラスローダのないRubyの方がシンプルにアンロードできる ということにならないだろうか。

_ 狐の王国 ありもしない悪意を読み取る能力のある人々

あるある。

たとえば、私だと、HSPやPHPに対する「悪意」を読み取られたことがある。

別にそれらの言語を憎んでたり、あるいはそれらの言語ユーザに対して 思うところがあるわけではないのだけれど。

それらの言語には「これは変だ」とか「プログラミング言語としてみると欠点がある」とは思うし、それをはっきり口にする。けど、それは(私の感覚では)事実の指摘であり、 別に悪意でも何でもないんだけどなー。

もちろん、私がRubyに対する「これは変だ」とか「ここが欠点だ」とかいう指摘に対して、悪意を読み取るつもりはない。その指摘が合理性のあるものである限り。

敬愛するLispに対する悪意まで読み取られてしまうと、それは悲しい。

_ 取材

某非技術系雑誌の取材。

取材したライターの方は大変困っておられた。 まず、私のやってることそのものが業界外では理解不能。 また、相変わらず「力の抜けきった」応対をするものだから。 一般人対象の取材のときはどなたも困っておられるが、 今回はひときわのようだ。

あと、仕事がひけてから家族も含めて写真撮影。 妻は今までの取材その他の中で一番緊張していたようだ。

どの雑誌に載るかは、その時まで両親に秘密にしておこう。 2月号らしい。


2007年12月27日

_ 風邪ひいた

リリース祭りが完了して気が抜けたのか、 風邪をひいてしまった。 鼻水はでるし、喉は痛いし、 体の節々は痛むし。

熱はないみたいだけど。

今日はせっかく会社から休みをもらったのに、 結局一日中寝てた。もったいない。

あんなこともこんなこともしようと思ってたのに。


«前の日(12-26) 最新 次の日(12-28)» 追記