アンドロイドのメイドさんの絵を表紙にして、色々と物議をかもした人工知能学会誌なんですが、2号ではそれさえもネタにしてしまったんですね。こちら。
前回、女性蔑視だとさんざん批判されていた女性アンドロイドの方からの視点で描かれていて、しかも、その読んでいる本はヘーゲルの「精神現象学」。
学会誌の内容も、前回の炎上への分析だったりして。小特集「「人工知能」表紙問題における議論と論点の整理」とか。
このまとめサイトでも議論されているように、してやったり、と思う人もいれば、それでも感じない人もいるんだろうなぁ、と。
私なんか今だに人工知能というとLISPと思ってしまう方ですが ^^;;
まだ8ビットのマイコン全盛時に、MZ-80のCP/M上で走るLISPの特集とかあったなぁ。あれはI/O誌だったけかな? carとかcdrとかconsとかは入門の特集では必ず出てきますね。確か、その記事ではLISP自身によるLISPの基本部分のソースがありましたね。2ページぐらいでおさまっていたっけかな。昔は処理系はアセンブラで書かれることが多かったからめずらしく見えたものです。(Wikipediaで見たら、最初のLISPはFORTRAN上でLISPコンパイラとして実装されたみたいです。)
まぁ、普段使うのはEmacs lispで~/.emacs.d/init.elをカスタマイズするときぐらいしか使ってないのが、ある意味悲しいところですが。。
日経ソフトウェアでの連載が始まったし、昨今のHaskellとかScalaみたいな関数型プログラミング言語の話題とともにLISPが取り上げられる機会も増えてきてるような気がします。
ちなみにLISPはFortranに次いで2番目に古い高級言語です。
昔のI/O誌には色んな言語の紹介がありましたね。あ、マイコン誌でも色々と紹介していたっけ。Pascalのことを知ったのもそのころだし。今ではすっかり忘れてしまいましたが。。MZ-80用のFortranとかも一回あったなぁ。言語仕様が当時は全然わからなかったし、今みたいにネットで調べることもできない時代だったので、なにやら難しい言語だという印象しかありませんでした。そういえば、大学時代にも、計算センターの端末でFortranが使えるようになっていたのですが、半ページぐらいに書いてあったソースでくらくらした思いがあります。BASICと違って全部の行に行番号があるわけではなかったので ^^;;;
まぁ、今にして思えば笑い話でしかないですね。今のFortranは固定カラムじゃないし、行番号も使わない方向に動いていますから。
PrologとかPL/1とかの名前もこのころ知りましたが、やっぱり全然わからなかったです。
そういう意味では、LISPはコアな部分に関しては解説がしやすいのか、異例に詳しく説明されていたような気が。ハノイの台とかのソースもあったな。
さすがに特集は見たことがないのですが、APLとかもありましたね。ASCII記号だけでなく、独自の記号が言語仕様の中に入っていて、それ専用のキーボードとかもあったようです。
まぁ、なんにしろ、当時はBASIC全盛期でしたけどねぇ。
よくやった遊び。
10 PRINT "A"
20 GOTO 20
今のBASICの子孫はさすがに行番号を使わなくなりましたけどねぇ。
昔はどのマイコン入門書でもtiny BASICとかマイクロBASICを筆頭にBASIC一色でしたね。
各メーカーが独自拡張をどんどんしていったので、言語仕様が複雑、というか互換性の無いコマンドがどんどん増えて行ったのが問題視されていましたけど、今時APIとか使おうとすると大量の関数を使わないといけないんですよねぇ。
パソコンでMS-DOSが動くようになったあたりからBASICもみかけなくなるようになりました。
そのころはMS-Cとかもあったけど、仕事ではMS FORTRANだったな。(FACOMのFORTRANとかHP FORTRANも使いましたけど。)
ホビーではTURBO PASCALとかが有名でしたね。
Windows時代になってからDelphiがはやるようになりました。
当時WindowsのプログラミングというとVisual BasicかVisual CでしたけどVisual Basicは画面設計としてボタンやらなんやらの部品を貼りつけるだけという楽なものでしたがインタプリターだし、Visual Cではそういうプログラミングができなかったので、難しいイメージだったのですね。DelphiはPascalベースですが、Visual Basicのようなプログラミングができるのが人気の元でしたっけ。
Internetの時代になると、圧倒的にCですね。Unix処理系そのものがCで書かれていましたし、ネットで入手できるfreewareはすべてソースがCで書かれていましたから。
あのころにまともにCをやっておけば今ごろ苦労しなかったんですけどねぇ ^^;;; あのころはまだ処理系も今ほど複雑じゃなかったですし。configureすらなかったから、処理系に合わせてMakefileをがしがし修正してコンパイルしていました。で、コンパイルエラーが起きたら、ソースのその箇所をskipするようにしたりして ^^;; (ありえないけど、それなりに動いてしまうところがなんとも。当然バグってるわけですけど。。。)
はぁ。こうしてみると、案外と色々な言語が使われていたんですねぇ。
っと、LISPの話からかなりそれてしまいました。。。