ちょっと古い、だけど忘れてほしくないプログラミング言語たち「IT」

ちょっと古い、だけど忘れてほしくないプログラミング言語たち

書籍『プログラミング言語 温故知新 人工言語の継承を学ぶ』を出しました

株式会社エルデ 代表取締役 土屋勝

onkochisin

久しぶりに新刊書を書き下ろしました。Fortran、Lisp、COBOL、Algol、Pascal、Prolog、Smalltalkという7つの言語を取り上げ、Windows用処理系の入手先からインストール方法、簡単な機能紹介や文法の解説をしています。もちろんすべてオープンソース・無償です。

これら7つの言語は、今ではほとんど使われることがありません。私も30年近くソフトハウスをやってきて、AlgolやPrologで開発したことは一度もありません。今回も本を書くにあたって解説書を探したのですが、新品では手に入らず、ネットで古書を取り寄せることもありました。

しかし、これらの言語は単に昔懐かしいノスタルジーの世界ではありません。いずれもその時代時代で脚光を浴び、革新的な視点を提供し、後のプログラミング言語に大いに影響を与えてきました。

時代の先端を走った言語たち

Fortranは1954年に考案された、最初の高級プログラミング言語です。科学技術計算を得意としており、私も大学時代(30年以上前!)に実験データの処理に使いました。もちろんパンチカード、紙テープの時代です。今でもスーパーコンピュータの世界ではスタンダードです。

COBOLは最初の事務処理用プログラミング言語であり、大企業や政府機関など世界各国で広く使われています。村上龍の『13歳のハローワーク』では伊藤穰一が「COBOLプログラマーはすでに皆死んでしまった」と書いていますが、それはいくらなんでもないでしょう。今から覚えようとは思いませんが。

Lispは関数型言語の草分けです。FortranやCなど手続き型言語に慣れた頭だと馴染むのに苦労しますが、非常に新鮮な刺激を与えてくれます。今でもコンピュータサイエンスの分野では根強い支持を得ています。

Algolは最初の構造化言語であり、PascalやC、Javaなど「Algol系」と呼ばれる現在のプログラミング言語に影響を残しました。ただし、完全に「終わってしまった」言語であり、解説書は皆無です。そのため本書は現在日本で入手できる、唯一のAlgol解説書かと思います。

Pascalはその厳密な言語仕様からコンピュータ教育用として使われました。また、ボーランド社のTurbo Pascalは安く、高速で、パソコン時代の初期にはアマチュアプログラマーに重宝されました。DelphiはTurbo Pascalの後継言語にあたります。FreePascalはDelphiを元にオープンソースとして開発され、ワンソースでWindows、Mac OS X、Linux、Androidなどのアプリケーションを開発できます。

Prologはヨーロッパ生まれの人工知能言語です。手続き型言語とはまったく異なる論理型言語であり、使い方によってはかなり面白いものが作れます。日本では80年代のAIブームで脚光を浴びましたが、巨額の税金をつぎ込んだ第5世代コンピュータプロジェクトの失敗とともに忘れ去られてしまいました。かつて数十冊出ていた解説書も、今ではまったく見かけません。

Smalltalkは後にアップルフェローとなるアラン・ケイがゼロックスのパロアルト研究所で開発した、オブジェクト指向言語の先駆けです。パロアルトのグラフィックワークステーションAltoを暫定ダイナブックとするためのOS・言語としてリリースされました。Macintosh、iPhoneアプリケーション開発に欠かせないObjective-Cはその子孫です。

苦節7年

本書は2007年頃に書き始めました。最初はあるWebメディアに掲載するということでスタートしたのですが、先方の編集方針変更でお蔵入りに。それをLaTeXの本でお世話になっていたカットシステムの石塚社長にお話ししたところ、ぜひ単行本にまとめてみてはどうかと言われました。

その後、なかなか原稿が進まず、1単元であったPascalの章を膨らまして『やさしいPascal入門』として出版するなどということもありました。何しろ、私にとってこれらの7言語は得意分野というわけではありません。AlgolやSmalltalkのように初めて触る言語もありました。いくら一つの言語を知っていれば他の言語を学ぶのは楽だと言っても、歴史も文法も記法も異なる言語を説明できるレベルまで習得するのは大変でした。LispやProlog、SmalltalkのようにAlgol言語系でないものとなると、その考え方を理解するにも苦労します。それでもある程度言語の「癖」が分かってくると、その後はけっこうすらすらコードが書けるようになりました。

途中でオーム社から『7つの言語 7つの世界』という、7つのプログラミング言語をマスターしていく本が出版され、話題になりました。拙著も7つの言語を取り上げているところから、パクったのではないかと思われそうですが、スタートはたぶんこちらが先(笑 それに『7つの…』ではRubyやIo、Haskelといった最先端の言語を、ユーモアたっぷりの筆で紹介しています。それに比べて私の本は教科書のように堅苦しいかもしれません。

エンジニアとしての引き出しを増やそう

30年前にNEC PC-9801でパソコンの仕事を始めたころ、これらの言語は雲の上の存在でした。MS-DOSではまったく動かないか、動くものがあっても非常に高価で手が出せない。それが今ではどれも無償で入手でき、Windows上で動かせます。日本語も通ってしまいます。NASAが公開した宇宙開発用アプリケーションのFortranソースを、机の上のパソコンで動かすことも可能なのです。

現 在、ソフトハウスでSEやプログラマーとして働いている人にとって、これらの古言語を習得することは、直接的にはメリットはないでしょう。しかし、C++ やJavaなど、業務でばりばり使っている言語の大元を知ることで、現在の言語が産み出された経緯や限界を理解することができます。

C++やJavaなど現在主流の言語は手続き型言語です。それでもLispなどの関数型、Prologのような論理型言語をマスターすることで、より柔軟な発想を身につけることが可能になります。

本書をきっかけとして古い言語とつきあい、エンジニアとしての引き出しを増やしていただければうれしいです。

  • 書名:プログラミング言語 温故知新 人工言語の継承を学ぶ
  • 著者:土屋勝
  • 出版社:カットシステム
  • 定価:本体3,200円+税
  • 発行日:2014年10月10日
  • ISBN978-4-87783-328-2