星の贈り物

強くなれない理由(わけ)がある

2003年3月の日記

2003年3月1日

かく言う私は Scheme と Haskell 初心者

Perl と他の言語のシェア問題について

Google で引っかかった件数では PHP が圧倒的に1位で、Ruby は3位ではあるものの日本語のサイトでは Perl に肉薄しようとしている具合なので、Ruby が Perl を抜けていないのは PHP の方に人が流れてしまっているのが大きいのではないでしょうか? (ちなみに世界では Lisp が Perl より多いし、Scheme もかなりあるので(SXML のおかげで) Scheme が Perl を抜き去るという劇的な展開もあるかも。)

どっちのユーザーでもないのであくまで外から見た印象に過ぎませんが、サーバーを借りて使っている人は大体 Perl ユーザーになって、初期に Perl に入れ込んだ人以外のスクリプト言語を多く使う人が Ruby ユーザーになっている感じがします。(Python は 3DCG か Zope がきっかけになっているようですね。)

あと、(初期のメンバーはともかく) Ruby のユーザーに言語マニアが多いのではなくて、様々な言語をうろついた後一番かゆいところに手が届いてなおかつ楽な言語として Ruby に落ち着いている人や、達人プログラマーの訓えに従い、考え方の幅を広げるために様々な言語を習得しようとしている人が多いのではないかと。(師曰く、毎年少なくとも一つの言語を学習するべし)


2003年3月2日

Humane Interface への遠い道のり

The Humane Editor 、LEAP って書いてあるからあれですね。ファイルの概念を廃して(マニュアルを含めた)全てのドキュメントを1つのものとして扱う代わりに、LEAP キーを押すことで検索キーワードを作り、その検索キーワードをドキュメントの単位とするというものです(おまけにその検索はインクリメンタルサーチなので、Migemo と組めればかなり強力そう)。本では改ページなどの記号もきちんと文字として入力できるし、タイプライターのように文字を合成することもできると言ってましたが、実装されているでしょうか? (文字列がコマンドになるものはまだ実装されてませんよね?) ちなみに保存は自動でおこないます。

現在のコンピューターとはまた別のパラダイムなので、直感的でないと批判してしまうのは妥当ではないと思います。また、ヒューメイン・インターフェースでは「直感的」や「自然」とは身の回りに良くあり既に学習されたものを指すに過ぎないといった批判がなされています。実際 LEAP を用いたワープロである Canon Cat のユーザーは GUI のコンピューターと出会ったとき、ファイルやフォルダの概念を理解するのに苦労したとか。

ただ、今は Emacs Wiki や (今後検索機能をつけ加える必要がありますが) xyzzy の hogewiki というアプローチもあるので微妙かも(この手のエディタは改造しまくればヒューメイン・インターフェースに近づけるはず)。

プログラム言語として Python を選んだのは妥協の結果でしょうね。これも Humain になってますから、多分 Haskell のように文芸的コメントができるものなのかな? いや、Python には確か独自の XML 構文がありましたね。XML の取り扱い自体はうまくないのでどうにかしなくてはなりませんが……(その辺で優秀なのは Scheme(Lisp)。XML 関連の技術は実は Scheme のデッドコピーになっている部分が多いので、本当は Scheme を使った方がいいんですが…… S 式による XML の記述とか楽そう) Python はインデントを解釈する(ブロックの記述にレイアウトを使用する)という強みがあるけど、それは Haskell 系の言語でもできることですし、関数プログラミングもできるのは Ruby でも同様であるらしい上に関数型言語自体があるわけですし……言語としては Haskell 系が一番優秀なんですが、Haskell は monad が難しいし、monad のいらない Clean はまだ発展途上(2.0 のドキュメントすら未完成)な上にライセンスに制限があるし、そもそも Haskell 系はコミュニティが他と比べて小さいし…………で、結局優秀ではないけどその辺を一応フォローしつつシェアの多い言語として Python が選ばれたのではないかと。

xyzzy と予測/例示システム

xyzzy 用 Dynamic Macro が公開。

同時にQuickMLにメーリングリストができました。加入方法は以下の通り。(QuickML を使った別のメーリングリストに既に参加しているものの、xyzzy-ML の告知は誘導が悪くて散々悩みました。加入者だと思った人が加入してませんでしたし……)

ジャンク扱いですけどPObox も本家準拠のものがでています(pop-up 版は Shift で次候補にいけないのと、作業中に任意の単語を登録できないのが欠点)し、次なる目標は強化版対応でしょうか?(前に勘違いしてましたけど、IME との連携はできていないのでそれも。(ただし SKK の逆である kakasi とは強化版は連携できています。)) ……それよりも本体に多言語(というより文字コード)サポートしてもらいたいですね。そうすれば(辞書を作る必要はありますが)ドイツ語やフランス語を入力するのが楽になりますし。


2003年3月3日

しのぶさん2日3日の日記を読んで色々と考えてみるけど、形にならない。今ここで語るということは、繰り返しや模倣にしか過ぎないような、そんな気がする。


2003年3月26日

……雑事に時間を取られすぎて、思うように物事が進みません……。書きたいことがたくさんあるのに……って書いたのはもう二ヵ月も前の話ですね………。

とはいえ、いくつか収穫もありました。一応、ゲームをやる気力があることを確認できたこと(見ることの方がが好きななのに、一時は見る気力さえもなくなったのかと思ってしまって……)。Haskell の monad がきちんと理解できたような気がすること。Sxmlcnvが使えるようになった(gauche のコンパイルが一番大変でした)こと、など。

Sxmlcnv には、 namespace をきちんとサポートしてなかったり、DOCTYPE や コメントがサポートされてなかったりといった不満もありますが、Scheme のコードとして記述すればマークアップ中に Scheme のコードが埋め込めるのでかなり強力です。マークアップを省略した形で記述しておけば、(呼び出すライブラリを変更するなどによって)文書ごとに展開させ方を変えれますし……一方でHaXmlは思ったより制限が多いようで残念。とは言っても、(Scheme には劣るものの)一応上に挙げた利便性を満たしているので、いずれにせよ XSLT よりは遥かに便利な感じ。

あと、卒論が公開される時期がきている(web日記コミュニケーションのもたらす心理的効用に関する研究という論文が紹介されています)ようなので、まだ XML としてのマークアップすらまともに終わってませんが私のWebに関する論文を公開しておきます。……勢いでやりすぎたり、今見るとダメだなと思う部分もあるわけですが……(こういうものの宿命ではありますが)。


声なき言葉へ