このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

論理的言明を装った感情論は嫌い、という感情論

ちょっと時間がたってしまったネタですが:

ワンヤグさんの「プログラミングの出来る人と出来ない人の決定的な違い。」は、たくさんのブックマークを集めた記事。それに対して、id:JavaBlackさんが随分と否定的な記事を書き、さらにワンヤグさんが当該記事への追記として反論(らしきこと)を書いています。内容的に、ドチラかが全面的に正しいとは思えないし、ドチラかに味方する気もありません。

ですが、僕のセンサー(どんなセンサーかは最後に述べます)が反応したので、思うところを書いておきます。


時間順が前後しますが、まずはJavaBlackさんの記事のほうから。僕は、元記事「プログラミングの出来る人と出来ない人の決定的な違い。」を読む前に、JavaBlackさんの記事のほうを先に読んだのです。

冒頭に「はい,大間違い.」という一言に続けて、6つの項目を挙げています。

その1:

  • □ 「簡単なプログラムが組める」程度ではプログラマーとは言わない.楽譜が読めてピアノでドレミファソラシドの音を出せるだけでは音楽家とは言わないように.

ということは、元記事は次の主張をしているはずですね。

  • ■ 「簡単なプログラムが組める」ようになればプログラマーと言ってよい。

その2:

  • □ ちゃんと動いていれば文法に従って書かれている.しかし文法に従ってかかれていても,バグは存在しうる.

ということは、元記事は次の主張をしているはず。

  • ■ 文法に従ってかかれていれば、バグは存在しない。

その3:

  • □ 「ちゃんと動く」「文法に従って書かれている」だけでは最低ランクのプログラム.文法が正しいのは当然で,プログラマーの仕事はそこからがスタート.

ということは、元記事は次の主張をしているはず。

  • ■ 「ちゃんと動く」「文法に従って書かれている」プログラムを書くことがプログラマーの仕事。

その4:

  • □ (一つの言語で)「書けた」だけでは「できる」うちに入らない.

ということは、元記事は次の主張をしているはず。

  • ■ (一つの言語で)「書けた」ならば、「できる」といってよい。

その5:

  • □ 一つの言語ができても,他の言語ができるようになるまでには相応の時間と努力が必用

ということは、元記事は次の主張をしているはず。

  • ■ 一つの言語ができれば、他の言語ができるようになるまでにさほどの時間や努力を要さない。

その6:

  • □ 好きな人でも,素質がなくて挫折する人は多い.

ということは、元記事は次の主張をしているはず。

  • ■ 好きならば、素質が足りなくてもなんとかなる。


さて次に、元記事「プログラミングの出来る人と出来ない人の決定的な違い。」のほうを読んでみたのですが、JavaBlackさんにより「大間違い」と否定されていた事項で見当たらないものがあるのです。○は「そう書いてある」、△は「そう解釈できなくもない」、?は曖昧過ぎて僕の解釈力では特定できない、×は「書いてない」とすると、次のような結果でした*1

  1. 「簡単なプログラムが組める」ようになればプログラマーと言ってよい。△
  2. 文法に従ってかかれていれば、バグは存在しない。×
  3. 「ちゃんと動く」「文法に従って書かれている」プログラムを書くことがプログラマーの仕事。△
  4. (一つの言語で)「書けた」ならば、「できる」といってよい。?
  5. 一つの言語ができれば、他の言語ができるようになるまでにさほどの時間や努力を要さない。○
  6. 好きならば、素質が足りなくてもなんとかなる。○

念のため、引用を添えておくと:

  • 「簡単なプログラムが組める」ようになればプログラマーと言ってよい。△

小さな会社とかで「プログラマ」を名乗るだけなら、それぞれの言語の if foreach while forや標準出力の使い方を覚えて、あとは各言語のマニュアルで標準関数にどういうものがあるのかを把握して、この言語では「〜〜までなら容易に出来る」「〜〜 をするならちょっと難しい」「〜〜はかなり難しい」とか判断する能力があれば問題ないと自分は思う。

  • 文法に従ってかかれていればバグは存在しない。×
  • 「ちゃんと動く」「文法に従って書かれている」プログラムを書くことがプログラマーの仕事。△

実際、「プログラマ」という人達が働く職場で、高度な「処理速度」「処理効率」を求められたり、高度な理系の考え方を必須とする現場の比率が高いとは言えない気がするんだよね。



お客も上司も「表面上ちゃんと動けばいいやぁ」ってノリじゃないのかなー。

  • (一つの言語で)「書けた」ならば、「できる」といってよい。?
  • 一つの言語ができれば、他の言語ができるようになるまでにさほどの時間や努力を要さない。○

一つの言語が出来るようになれば、「どの言語でも決まりに沿って書かれている」という事を理解しているから、その他の言語の習得は早いけど、

  • 好きならば、素質が足りなくてもなんとかなる。○

プログラミングが出来るかどうか、というのは「興味を持てるか否か」だと思う。



じゃぁそれがどういう文法なのかというのに「興味」を持つ事が出来れば、その人は簡単なプログラム程度なら組めるようになるのは早いと思う。

自分の考える「プログラミングの出来る人と出来ない人の決定的な違い」は
文字の羅列に興味を持つ事が出来、理解しようと真剣に取り組めるか否か
だと思う。

結局、「文法に従ってかかれていても,バグは存在しうる.」と「(一つの言語で)「書けた」だけでは「できる」うちに入らない.」によって否定・反駁されるべきターゲットの主張が見当たらないのです。

このテの「相手側主張の捏造」は、非論理的・エセ論理的な議論においてよく使われる手法のひとつです。JavaBlackさんは言ってもいないことに(も)反論しているのですね。論理的、あるいはメタ論理的な観点からは、おかしな構成であり、議論の枠組みが歪んでいます。だって、論理的な否定や反駁にまったくなってないもの -- つうか、そういう評価以前の瑕疵があると言うべきか。ワンヤグさんの主張を読み取れてない、つまり解釈力の不足も疑われるのですが、おそらくは、なにがなんでもイチャモンを付けたい気分が先行して、あんな杜撰な記述とあいなったのでしょう。

では、どうしてそんなにイチャモンを付けたいのでしょう。これはあくまで僕の想像ですが、例えば「『簡単なプログラムが組める』程度ではプログラマーとは言わない」なるJavaBlackさんの主張の背後には、次のような気分が作用しているのではないでしょうか。

ワンヤグさんが想定しているプログラミングは、あまり知的な作業とは言えず、このような作業に従事する人間を「プログラマー」と呼んでしまうと、プログラマーは労働力集約型産業に所属する労働者のような扱いになる。自分も「プログラマー」を名乗っているが、そんな扱いはイヤだ。たまったもんじゃねー。プログラマーは知的な選民であるべきだ。

これ(上記)なら僕には納得しやすいし、ある程度は共感もします。しかし、このテの主張には多分に感情的な(あるいは怨念的な)動機が含まれます。JavaBlackさんの動機が感情・怨念である確信はありませんが、感情の話(だとしたらそれ)を論理的な真偽の話であるかのようにすり替えるべきではないでしょう。

感情を、素直に感情として吐露しているなら、それに共感することもできます。しかし、なまじ論理的であるかのごとく装っていると、その論理のほころびや破綻に眼がいってしまって、僕は単に「論理的にダメな議論」と判断します。そして、幾分か腹立たしいのは、エセ(or ニセ)論理で感情をくるんだ議論を、かなりの人々が「論理的」だと受け入れてしまうことです。

どんなセンサー?

この「腹立たしさ」の感覚は、江本勝さんにも郡司ペギオ-幸夫さんにも共通するもの*2で、江本さんはワケわからないファンタジーを科学と装い、郡司さんはワケわからない思弁を数学と装っています。ファンタジーをファンタジーとして、思弁を思弁として、そして感情を感情として語るなら、僕の「ニセ {科学 or 数学 or 論理}」センサーも反応しないのですけどね。もちろんこれは、僕の「腹立たしい」感情 -- 書き手も読み手も、どうしてこうも論理性に無頓着*3なの?! ムキーッ -- を吐露しているのです。



[追記 time="2010-12-20T17:33"]小さな字の脚注に書いておいたことを、ちょっと挑発的に(笑)デカイ字にしておこうかな。

JavaBlackさんが「俺は明晰で論理的だぞ」とか言い返してくれたら、彼の「大間違い」6項目が、論理的にいかにメチャクチャでグダグダであるかを形式的に(formally)説明してあげてもいいのだけど、今はその気力が全然ありません。誰か別な人が僕をつついてくれてもいいですよ :-)

リクエストがあれば、感情論は抜きで教科書的な説明を書くかもよ。[/追記]

*1:△と○の差は微妙で、おそらく恣意性が混入してます。しかし、その点は僕の主張全体にさほどの影響はありません。

*2:影響力と実害は、江本さんが圧倒的に大きいですけどね。

*3:JavaBlackさんが「俺は明晰で論理的だぞ」とか言い返してくれたら、彼の「大間違い」6項目が、論理的にいかにメチャクチャでグダグダであるかを形式的に(formally)説明してあげてもいいのだけど、今はその気力が全然ありません。誰か別な人が僕をつついてくれてもいいですよ :-)