kiyokaのブログアーカイブ

Archive of old blog posts

バベル案内

バベル案内について。 このエッセイは、C、C++、Lisp、Java、Perl、Ruby、Pythonの言語の紹介になっています。 多少乱暴だけど、言っていることは説得力があり概ね賛同できます。

バベル案内 Lispを学ぶのは簡単ではない。大きな飛躍がいるのだ。Cみたいなプログラム をLispで書けるというのでは十分でない。そんなのは無意味だ。CとLispはス ペクトルの反対の端に位置している。他方が上手く扱えない領域で大きな力を 発揮するのだ。 Cがコンピュータがどう動作するかのモデル化に最も適した言語とすると、 Lispは計算というものがどう振る舞うかをモデル化するのに最も適した言語だ。

そう、Lispはスペクトルの反対側に位置しているんです。 だからこそ、C言語とLispの両方を学ぶ必要があると思います。 ここで言っていることは私の経験と大体一致しています。 ただ、気になる所もあります。

  • Rubyを持ち上げすぎ(この著者は最初にRubyが好きと書いていますが) Rubyは言語仕様が安定しないという部分でビジネスに使えないという事実があります。 その辺は適用範囲によっては結構問題になります。
  • PHPが紹介されていない。 取りあげるに足らないということでしょうか…(笑)

私のまわりでは本当にLispユーザーのサンプル数が少ないので実態が良く分からなかったのですが、 これを読むと、Lispという言語が日本国外においてもあまりに特殊のようですね。 Amazonの初期のメンバーのほとんどがLispを使っていたというのは、輝かしい過去の出来事として語られています。 これは、オールドタイプがどうこうとか、世代間のギャップが関係しているわけではなさそうです。 すごいエンジニアは大抵、Lisp『も』使っているということでしょうか。 そんなわけで、私は仕事ではPythonを関数型言語として使いながら、いつかLispに優しい世の中がくることを願いつつLispのマクロの練習をコツコツやる日々です。