作者: 機械伯爵
日時: 2007/10/1(11:27)
 英文を読む度に頭から火を噴く機械です。

> > I also think there are other reasons that people have a hard time
> > pprogramming, founded in premature optimization, proprietary software
> > business models, cognitive science, user interface design, and
> > computability theory.  Some of these are remediable technologically.

<中学生にも鼻で笑われそうな和訳>
 私は、こうも思う。

 人々がプログラミングに苦労する理由は、時期尚早の最適化や専有ソフトウェアの
ビジネスモデル、認知科学、ユーザインターフェイスの設計、計算可能性理論……
こういったものの中にあるのではなかろうか、と。

 これらのいくつかは、技術的に矯正可能である。
</和訳>

 それは、『一応プログラムを書ける人』が苦労する理由であって、入門者を
寄せ付けない理由とは少しズレてるような気がします。

 関係あるとすれば、入門者がプログラムを勉強しようとして、ナニを間違った
かC++(!)でアクションゲーム(!!)を作る本を見てしまい、「これは
だめだ」と勘違いして断念すること(汗)は、大いにありえるかもしれませんが。

> > Smalltalkerの主張のように、オブジェクト/メッセージ志向のパラダイムって
> > 理解しやすいかどうか、は、私には正直判断しかねます。
> 
> んー、Smalltalkの一派であるSqeakを見るとそれほど身構えることも
> ないのではないかと思います。無論アレは最初の取っ掛かりから
> プログラムの字面が真正面に出てくるような教え方はしていないと思いますが。

 んでも、Squeak e-ToysからSmalltalk言語へは、滅多に進まない、と聞いた
気が……(大汗)

 ちなみに私もSqueakは、場合によってはメモ代わりに使うこともちょくちょく
あるのですが、ボタンの動作をいじる以上のSmalltalkコードは、ほとんど書き
ません(苦笑)
 
<ループ? イテレート?>
> まあ確かに、ループ構造を考えるとfor形式の方が特殊かもしれませんが、
> それはあくまでBasic/Pascal/Cのようなそれについてであって、
> たとえば配列(リスト)の全要素に対して何かの処理をする。
> ということであれば、
> 
> for item in myList:
>   ほげほげ
> 
> の方が、配列の添え字だ何だとやるよりはわかりやすいのではないかと
> 思うのですがどんなもんでしょうか?

 はい、そう思います。

 つまり、前回の私の失態は、自分の頭がFOR-NEXTループから抜けて
なかった点にあります。

 「全部に適用する」と「繰り返しやる」は、同一じゃないんですよね。
 
> こと話をCとその眷属に絞れば、for文は形を変えた(おまけのついた)
> while 文ですからね。BasicやPascalのそれとはちと意味が違うでしょう。

 あ〜PascalはCと、ほぼ同じですし、BASICも似たようなモンです。

 for-each構文が出てくると別ですが(DOSのバッチファイルでも使える
んで、シェルスクリプトでは基本かと)

> > ※およそハッカーに似合わない「行儀の良い」ことが美徳になってる言語カルト
> > って、PythonとPascalだけじゃないだろうか……まだあるかな?
> 
> 行儀よさとは違うと思いますが、明確な規範があるということでEiffelとか。

 Eiffelはそうなんですか……でも規範という感じなら、RubyやSmalltalkも
ある種の規範が強制されますが、そういう感じではないんでしょうか?

※蛇足ですが、強制ってのは、Pythonが字下げを強要されるのと同じ程度の
 「文法に縛られてる」という意味で。

 まぁ、逆に言うなら、「行儀の悪い」ことが公然と「クール」になってる
言語カルトは、Perlくらいかも(笑)

※「行儀の良いCコード」の本はあっても、「行儀の良いPerlコード」の本が
 あったら、多分みんな、何のギャグだ?と思うだろう……

 /機械伯爵/