小林健一郎:プログラミング 20 言語習得法

作成日 : 2024-06-25
最終更新日 :

概要

本書では、プログラミングとは何か、プログラミングの学び方に続いて、下記のプログラミング言語を主要 5 言語として解説している。

  1. C
  2. C++
  3. Java
  4. Perl
  5. Visual Basic

下記のプログラミング言語は、さらに知っておきたい特色ある 15 言語として紹介している。

  1. FORTRAN
  2. BASIC
  3. Pascal
  4. Ada
  5. Objective-C
  6. Smalltalk
  7. C#
  8. COBOL
  9. LISP (Common Lisp, Racket)
  10. Haskell
  11. Scala
  12. Python
  13. Ruby
  14. VBScript
  15. AWK

次の 2 言語は「おまけ」として扱われている。

  1. JavaScript
  2. PHP

感想

扱われている言語で面白いと思ったのがいくつかある。まず、Ada は名前だけ有名で言語仕様が一部でも紹介されることはめったにないからだ。 また、Objective-C は、Apple 社の MacOS 上で稼働するアプリケーション開発に事実上限られているので、やはり仕様が紹介されることはほとんどない。そこで面白いと思った次第だ。 さらに、Smalltalk もオブジェクト指向言語の嚆矢として真っ先に言及される言語だが、実際の言語が紹介されることは少なかった。これらは著者の見識をうかがわせる。

いっぽう、疑問に思う選択もある。Visual Basic と BASIC、VBScript をそれぞれ個別の言語として取り上げた理由がわからない。Visual Basic も VBScript も BASIC にのっとっているわけだから、 一つの言語として扱うのが妥当だろう。 BASIC は方言による差が大きいということを考慮するのであれば、本書の LISP のような扱いにすべきだろう。

LISP では、Common Lisp と Racket を扱っている。Racket には少々びっくりした。Common Lisp と対で扱われるのは Scheme だろうと思っていたからだ。もっとも、Scheme の処理系にもいろいろあって、 その中で本書で扱うには Scheme を発展させた Racket がよいと著者が判断したのだろう。

扱われていない言語の最右翼は Prolog であろう。せっかく多様な言語を紹介する場なのだから、Prolog や Erlang を登場させてもよかったのではないかと思う。 なお、本書が発行された 2014 年には、Go 言語や Rust はまだそれほど知られていなかったから、ここに出てこないのもやむをえないだろう。

ついでにいうと、おまけ扱いされた2つの言語も「おまけ」でなく格上げすべきだろう。まず、JavaScript に関しては、p.267 で、JavaScript のことを基本的には WEB に特化した言語なので、本書でいう意味の「プログラミング言語」ではありません。 と説明している。しかし、WEB に特化しない言語としての処理系も Node.js などがある(初版は 2009 年だから知られていたはず)ので、「おまけ」扱いするのはもったいない。 また、PHP に関しても p.273 で PHP が WEB ページ作成のために作られた言語であることを説明したあとで、じつは、WEB と関係なく実行するプログラムを書くこともできます。とただしがきがある。 事実、https://www.php.net/manual/ja/features.commandline.php では、PHP をコマンドラインから使用する方法が述べられている。以上から、両者を「おまけ」扱いするのは今となってはおかしいな、と思う。

細かなことではあるが、本書の「FORTRAN」という表記は厳密には正しくなく、「Fortran」として頭文字だけを大文字に、あとを小文字にするのが、Fortran 90 以降としては正しい。p.183 で Fortran を扱った節では、 拡張子に 「.f90」を使っているから、Fortran 90 準拠だと想定される。

書誌情報

書名 プログラミング 20 言語習得法
著者 小林健一郎
発行日 2014 年 9 月 20 日(第1刷)
発行元 講談社
定価 980 円(本体)
サイズ 新書判
ISBN 978-4-06-257881-3
その他 川口市立図書館で借りて読む

まりんきょ学問所コンピュータについてコンピュータの本コンピュータ言語 > 小林健一郎:プログラミング 20 言語習得法


MARUYAMA Satosi