ショートカット
ファシリテーター × あり方
コーディングの向こう側
Hello, ANOTHER world!
オブジェクト指向のはなし
プログラミングのはなし
C言語実力診断クイズ
eSkillBooks
コーディングの向こう側

普遍的なもの

バイリンガル度

プログラミング言語の共通点

いくつかのプログラミング言語を覚えると、それらに共通点があることに気づきます。どれもコンピューターを制御するための手順を記述するためのものなので、当然といえば当然です。

例えば次のような概念は、複数の言語で共通です。

  • いろいろな演算
  • 変数
  • 引数
  • 条件分岐や繰り返し
  • 関数や手続き
  • クラス
  • スコープ
  • ネスト(入れ子)構造
  • スタック
  • メモリ操作
  • ファイル操作
  • ポインタや参照
  • 割り込みや例外処理
  • 条件付きコンパイル
  • コメント

これら共通の概念が、言語によって違う方法で表現されます。たとえばある種の BASIC では変数の宣言に Dim というキーワードを使いますが、C では使いません。Java や C++ にはクラスを表現するための class というキーワードがありますが、それぞれ書き方が違います。多くの言語は文法が似ていますが、Prolog や Lisp や PostScript などはかなり特殊な書き方をします。

表現方法が違っていても、概念は基本的に同じです。ですから、いくつかの言語を覚えて共通点を理解してしまえば、ほかの言語を新しく覚えるのが簡単になります。

食わず嫌い

Java の解説書を見れば、Java がほかの言語に比べていかに優れているかが説明されています。Perl の解説書でも、C# でも、C++ でも、みんなそうです。そして、それぞれの説明が矛盾しているように見えます。たとえば C では「Cの精神」というのがあって、プログラマーがやりたいことはすべてできるようになっています。しかし Java では、典型的なバグを排除するためにいくつかの制約が設定されています。どちらの主張にも一理あります。

要するに、状況に応じて使い分ければ良いのです。Java が適した場面では Java を使えば良いし、Perl が適しているなら Perl を使えば良いのです。もちろんいろいろな言語を修得していないとそういうことはできません。

ぜひ、言語を複数身につけてください。例えば Java しか知らない人は、解説書に書いてあるような「Java の素晴らしさ」を鵜呑みにしてしまってはいないでしょうか?Java がほかの言語に対して優れている部分はたくさんありますが、あらゆる場面に適しているわけではありません。どんな言語でも、長所があれば短所もあるのです。

食わず嫌いにならずに、どんどん新しい言語にチャレンジしましょう。たくさんの言語を覚えて、その中から共通の概念を見つけて、どんどん理解を深めていきましょう!

作る人・使う人

目次へ
それは不要な知識か

(「コーディングの向こう側」は2000年4月から2001年5月にかけて作成されたコンテンツです。)