作者: 機械伯爵
日時: 2003/2/4(21:33)
 機械です(ねぶそく・・・)

>Pythonは「教育用言語」ではないという点とは別に。

 こちらは、石本さんに任せました☆

>|※学生にプログラムを教えるのに、Lispをあきらめて
>|  Pythonにきりかえたというのはそこらへんでしょう。
>
>いや、それはLispは「見た目がかっこ悪い」せいではないかと思い
>ますです。あと、Lispの伝統(lambdaやmacroを多用する)が辛いと
>思うときもあるので、そのせいかも。

 基本的には擬似コードとLispのコードが違いすぎるの
が原因だとか書いてましたが、それ以前にLispの演算子
の前置法が理解できなかったんじゃないかな、と思いま
す。

 正しくは、前置法による分析型の記述が理解できなか
った、というべきでしょうか。

 約束記号とかいったものが簡単に理解できる人は、面
白がって使うと思うんですが、自分の思考のベースを再
起的に拡張する能力って個人差があまりにも大きいです
から(化学とか技術とか子供に教えてて、このテのこと
で、飲み込みの早い子と、どうやっても理解できない子
の差は歴然としていますので)

>| 「何にでも使える」という言語が無いのは当たり前と
>|しても、カヴァー範囲が広がれば広がるほどそれぞれの
>|用途での有用性は下がってくるはずです。
>
>「はずです」というのは根拠のある推測ですか?

 例えば極端な例で、AWKとPythonを比較してみましょう。

 AWKをプログラミング言語とするかどうかは難しいとこ
ろですが、とりあえずCSVのような2次元テキストデータ
を処理するのには、絶大な威力を発揮します。

 PythonでもAWKと似たようなことはできないわけではな
いですが、AWKの専門分野のような処理を行おうとすると、
どうしても記述に無駄が多くなりますし、AWKに比べて見
やすいコードが書けるかといえば、必ずしもそうではあ
りません(処理速度たるや、比較にならないでしょうし)

 AWKの文法は(細部はC言語そっくりだとしても)特殊
ですが、フィルタという用途で考えれば「読みやすい」
形式にもなっています。

 Perlだと、AWKに近い記述が出来ますが、AWKのように
文法が少なくないので修得に時間がかかりますし、逆に
「AWKと同じことさえ出来ればいい」というなら、Perlと
しての豊富な機能を生かす場面も失われます。

 有用性という言葉を、私は可能性だけでなく、その言
語を習得し、実際に使いこなすことを含めた効率として
使っています。

 AWKよりもうちょっと詳しい記述をしたいならIconのほ
うが使いやすいでしょうし、計算をせずにフィルタリン
グのみに専念するのなら、sedのほうが使いやすいかもし
れません。

 Iconでパワー不足ならPerl、Perlのモジュールが一定
以上大きくなりそうならRubyやPython。

 今回は出発地点がAWKでしたから、こんな感じになりま
したが、処理内容の規模といった非常に単純なベクトル
であっても、それぞれ「これくらいならコレがベスト」
と思う言語があると思うのですが、いかがでしょう?

 汎用言語になればなるほど、特化した文法を組み込む
ことが困難となり、ライブラリやモジュールを使用する
ことになるわけですが、ライブラリやモジュールを使う
ことは、それだけ「素早さ(記述の少なさ・・・さらに
は見易さ)」を犠牲にしていることを考えざるをえませ
ん。

 ・・・ちとヤバげな話題を1個(ひとつくらい、私も
パンクスなの言わせてもらおう☆)

 Visual C++でWindowsプログラムを組むのは大変です。

 機能がたいしたこと無いものなら、HSPとかで十分です。

 しかしある規模を超えると、HSPでは不可能だったり、
可能でもかえって難しくなることが、VisualC++ではわり
とあっさりと出来たりします。

 これくらい極端だと、わかりやすいのではないでしょ
うか(ちなみにHSPは軽量GUIプログラム特化型として考
えました)

                     機械伯爵