プログラマがC言語にこだわるべきでない0番目の理由

0131103628新しいプログラミング言語を作りたいと思ったら、そのプロトタイプはCのような低級言語ではなく、高級言語で実装したほうがいいのではないでしょうか。もちろん実行時のパフォーマンスなどのために、最終的にC言語で実装するということはあるかもしれませんが(相対的な話ではありますが、C言語を低級あるいは低水準と呼ぶのが許せないという人は、K&Rの1ページ目を参照してください。日本語訳では「はじめに」のp.2です。)

Cは比較的“低水準”の言語である。この性格付けは非難の意味を込めているのではない。これは単に、Cが普通のコンビュータで扱う種類の、すなわち文字、数、アドレスを扱えるようになっているという意味である。もちろん、これらのデータを組み合わせて、現実の機械で実行されるような普通の算術論理演算でいろいろな処理を行なうことができる。(p. 2)

以下、本題

プログラマがC言語を学ぶべきたった一つの理由

C言語がわかれば、あなた用のプログラミング言語を書くことが出来るから
そうなのです。PerlもPHPもPythonもRubyも(アルファベット順)、みいぃんなCで書かれているのです。

そうなのですか?

Haskellで書かれたPerl (Pugs)やRuby (RType)、Lisp、Javaで書かれたPython (Jython)やHaskell (Jaskell)、Ruby (JRuby)、JavaScript (Rhino)、Scheme (SISC)、Groovy、PnutsRubyで書かれたPrologがあります

そもそも、プログラミング言語を作ろうなどという人は、言われなくてもC言語は使えるでしょう。でも、世の中にはプログラミング言語を使うだけで精一杯の人のほうがはるかに多くて、そういう人たちに、「やっぱりCが一番か」などと思われるのは怖いことです。

ポインタで頭を悩ませている間に、シェルスクリプトの1行がどれだけ強力かを学んだ方が幸せであろう人はたくさんいるはずです。(生産性が上がって、失業率も上がって、結局不幸になる?)

ですから、「プログラミング言語は何を学んだらいいでしょう」なんて人に訊いてしまうような弱気な人に対して、間違っても「C言語だよ」なんて言ってはいけません。

おすすめのコース(案):

  1. sed, awkなどシェルスクリプト関連
  2. HTML
  3. JavaScript
  4. SQL
  5. Mathematica(現時点でフリーの実装はない)
  6. Ruby
  7. Java
  8. S (R)
  9. Lisp
  10. C

PHPはよく使うのですが、入れる場所がありません。

要は優先順位の問題です。ハードウェアをいじらなければならない人はC言語をもっと上位にし、アセンブラも追加してください。標準的な履歴書を書きたい人は、Rubyの上にJavaを持ってきた方がいいかもしれません。

「世界を書くための言語」というのは「世界の底」に直接アクセスする必要があるから

前言全て撤回。計算は物理過程なのだから、すべてのプログラマは素粒子物理を学べ。生物学者も素粒子物理を学べ。水泳選手も流体力学などでなく素粒子物理を学べ。

還元論を信じない者は悔い改めよ。C言語などは中途半端な還元論だ!

プログラマがC言語にこだわるべきでない10の理由

追記

dankogaiさんがコメントをくださいました:プログラマーが単一言語にこだわるべきではないN個の理由

問題は、高級言語側で「階段を下りる」方にはあまり労力が割かれていないこと。

下りたいわけですよね。うーん、こんな感じでしょうか。

デイブ「HAL。そこの計算、ちょっと効率悪いから、メモリいじらせてくれない?」

HAL9000「もうしわけありませんが、デイブ、それはできません。」

6 thoughts on “プログラマがC言語にこだわるべきでない0番目の理由

  1. 最近出てきたD言語は
    上の中のどれくらいの位置に入るんでしょうかね?
    そちらの提示された順番をこちらは
    まったく守っていませんねw
    いきなりC言語に飛んでますからw

  2. D言語
    メージャーになる前にいじる気になれる人にとっては、
    C言語は入門用として難しい言語ではないでしょう。
    そちら? こちら?

  3. ピンバック: Tweets that mention プログラマがC言語にこだわるべきでない0番目の理由 | inquisitor -- Topsy.com

  4. ピンバック: プログラマがC言語にこだわるべきでない0番目の理由 | inquisitor | ちゅどん道中記

  5. ピンバック: C++を学ぶべきか否か – Blue Sparrow

コメントは停止中です。