Introduction

ブログ内検索

  • このサイトの記事を検索 by Google

おすすめの一冊!

無料ブログはココログ

« 生 CD イメージを再生したい!! | トップページ | *OBSOLETED* »

2006-04-03

普通のやつらの上を行け

『普通のやつらの上を行け ---Beating the Averages---』を読みました.
(翻訳してくださった Shiro Kawai さんに感謝!!)

前に記事にした『普通のやつらの下を行け』とは逆のタイトルですが,
こちらはこちらで非常に興味深いお話です.
一言で言うと『Lisp 万歳!!』ってお話でしょうか(違う?).
ちゃんと言うと,『許される範囲でもっとも強力な言語を使うことで
開発効率が最大になり,競争力も増す』というのが主張だと思います.
まぁ,意見が分かれる内容なのは確かでしょう….

で,Seaoak が一番面白いと思ったのは,
   プログラミング言語の持つ力は言語によって異なるが,
   より強力な言語を使う人にしかその違いは分からない
という話です.

高級なプログラミング言語(より人間の思考形態に近い言語)には,
低級なプログラミング言語(よりマシン語に近い言語)には無い,
抽象度の高い概念が組み込まれていると考えられます.
というか,それを目標に高級言語は設計されています.
で,多くの場合,低級な言語しか知らない人は,より高級な言語にしか
無い概念(より抽象度の高い概念)を理解するのが難しいのです.
# 『高級/低級』は言語としての優劣ではありません.
# 適材適所だと思っています.(念為)

単純な例で言えば,初期の Fortran や COBOL しか知らない人は,
『名前空間(変数のローカル化)』や『再起呼び出し』の概念を
知ることはないでしょう.C言語や Pascal しか知らない人が
オブジェクト指向を理解するのは並大抵のことではありません.
また,『クロージャ』について知ることもたぶんないでしょう.
つまりはそういうことです.

Seaoak はこの意見にほぼ全面的に賛成です.
『新しい言語を学ぶことは,新しい概念(考え方)を学ぶこと』
だと思います.だからこそ,『毎年新しい言語を勉強する』という
目標にも意味があると思っています(これは,以前読んだ本に
書かれていた『成長し続けるためのアドバイス』のひとつ).
新しい言語,新しい概念を学ぶことによって,たとえ同じ言語を
使うとしても,一段上の視点に立った設計が可能になると思います.
(アセンブラでも構造化プログラミングは可能,とか?)

まぁ,新しい OS や CPU を学ぶことも同じような効果がありますし,
なんとなく,『新しい(国の)言葉を学ぶことでその国の文化への
理解が深まり,結果的に自国の文化への理解も深まる』とかいう話と
共通するところがあるかもしれませんね.

ふと,Ada72 さんのコラム『アセンブラを知らない子供たち』
引用されていた次の言葉が思い出されたりしました(孫引き).

言語は考え方を形造り、考えられるものを決定する。 - Benjamin Whorf

« 生 CD イメージを再生したい!! | トップページ | *OBSOLETED* »