作者: きむらこういち
日時: 2007/9/30(23:34)
Bruce.です。

自分なりの意見がまだ十分には固まっていないので基本的には余計な
口は差し挟まずに生暖かく見守っていたのですが、TODOくんのえさに
なりかけているものから以下の様なリンクを発見。

why programming is hard
http://lists.canonical.org/pipermail/kragen-tol/2006-October/000832.html

> 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.


07/09/29 に 機械伯爵<kikwai@...> さんは書きました:
> PerlとかRubyとかPythonあたりならいいかな……全てオブジェクトだけど、
> 例えば言語としてのSmalltalkとかだと微妙ですね。
>
> Smalltalkerの主張のように、オブジェクト/メッセージ志向のパラダイムって
> 理解しやすいかどうか、は、私には正直判断しかねます。

んー、Smalltalkの一派であるSqeakを見るとそれほど身構えることも
ないのではないかと思います。無論アレは最初の取っ掛かりから
プログラムの字面が真正面に出てくるような教え方はしていないと思いますが。

> そもそも私は、PythonMLで「forよりwhileのほうが分かり易いのでwhile
> をまず教えたら?」と云って、蜂の巣をつついた(上に、2chでさんざんバカ
> にされた(苦笑))ことがありますが、それくらい「飲み込みの悪い」人間
> なので(まぁ、自分の能力の低さを主張する度にみじめになるだけですが)
> 「それ、難しいなぁ」と感じる閾値が低いのです。

まあ確かに、ループ構造を考えるとfor形式の方が特殊かもしれませんが、
それはあくまでBasic/Pascal/Cのようなそれについてであって、
たとえば配列(リスト)の全要素に対して何かの処理をする。
ということであれば、

for item in myList:
  ほげほげ

の方が、配列の添え字だ何だとやるよりはわかりやすいのではないかと
思うのですがどんなもんでしょうか?

こと話をCとその眷属に絞れば、for文は形を変えた(おまけのついた)
while 文ですからね。BasicやPascalのそれとはちと意味が違うでしょう。


> 人のコードを理解するのと、自分のコードを作るのでは、意外に人の
> コードを理解する方が難しいのではないかと。

それはあるでしょうね。
明確な例は出せませんが実感としてそれはあります。

> Pythonの基本文法なんて、Rubyを使える人なら10分で一通りマスターできる
> と思いますけどねぇ、多分(苦笑)

イマドキの言語は文法だとか構文規則を覚えただけじゃどないにもならん
代物だと思います。無論一行野郎レベルみたいなものはまた別でしょうが、
言語の背後にある膨大ともいえるライブラリをマニュアルなりを引きながらでも
それなりに使えるようにならなければその言語を「使える」ようには
ならんのではないかと。

と、書いていてSTLをよく覚えていないワタクシはC++の入門者レベルかも
と思ったり思わなかったり。

閑話休題。

> ※およそハッカーに似合わない「行儀の良い」ことが美徳になってる言語カルト
> って、PythonとPascalだけじゃないだろうか……まだあるかな?

行儀よさとは違うと思いますが、明確な規範があるということでEiffelとか。


-- 
木村浩一
 I thought what I'd do was, I'd pretend I was one of those deaf-mutes
or shoud I?
 mail kbk at kt.rim.or.jp
 web  www.kt.rim.or.jp/~kbk/zakkicho/index.html