プログラム言語経験

 今まで経験したことのあるプログラム言語(マークアップ言語を含みます)と、その言語についての説明や思い・考えを書いています。言語名の横にあるレベルは次のような意味です。


独学

DTD 習得レベル3
 SGML や XML での 定義を記述するための言語。SGML では必須だが、XML の場合はなくても構わない。ただし、あればその文書が正しいかどうかがチェックできます。
Elisp 習得レベル2
 正式名称は Emacs-lisp のようです。Emacs というテキストエディタの設定や機能拡張に使われる Lisp ベースの言語で、私の場合は Emacs の多言語対応版である Mule の設定変更に必要で覚え始めました。今まで経験のなかったタイプであるため最初はかなり戸惑いましたが、慣れてくるとそんなには違わないことがわかってきます。基本的な概念も比較的短期間で受け入れることが出来ました。
HTML 習得レベル6
 一般にはプログラム言語のように言われていますが、正しくは SGML アプリケーションです。長い間ブラウザ製作メーカーによる独自拡張のものが使われてきましたが、2000年代からはだいぶ正式のものが普及するようになってきました。相変わらず独自拡張は行われているようですが、きちんとした国際規格が存在することが知られてきたためか、啓蒙活動をする人もだいぶ増えてきてうれしい限りです。
HSP 習得レベル2
 BASIC に似た構文で、簡単に Windows アプリケーションが作成できるプログラム環境です。基本的にはインタプリタですが、リソースを含んだ実行ファイル形式にすることも可能です。今まではその構文に馴染めずに手を出さずにいましたが、訳あって使ったところすぐに馴染んでしまいました。
Java 1.1x 習得レベル3
 正式版になる前の JDK を雑誌で見かけて、面白そうだったので使ってみたのがきっかけです。当時はまだ日本語の資料がほとんどなく、コンパイルエラーなどもすべて英語でした。それでも簡単に GUIアプリケーションが作れることに感動し、いくつか簡単なアプリケーションやアプレットを作ったりしていましたが、 気が付いたら全くやらなくなっていました。
 なお、Java と JavaScript は全く別の言語です。構文が似ているという理由からそう呼ばれているだけです。
JavaScript 習得レベル4
 Netscape Navigator に搭載される形で LiveScript の名前で登場し、構文が Java に似ている(似せた?)ことから JavaScript に改名した。もともとはブラウザの中でのみ使えるインタプリタ言語だが、現在は ECMAScript として標準化された規格が存在する。当然のことながら Java とはまったくの別物。ついでに、JScript も互換性はあるがこれも別物。ECMAScript にしたがっているだけ。
Perl 習得レベル5
 最近は CGI を書くために多く使われる言語です。 私も最初の出会いは CGI でした。あるチャットの方から掲示板 CGI の設置を頼まれましたが、どうしても原因不明のエラーが出てしまい、少しやけになって1行ずつ解析したのが始まりです。気が付けばC言語のようでC言語ではないその構文にはまってしまい、今ではすっかり詳しくなりました。 CGI のみならず、バッチファイルのように面倒な処理をコンピュータにやらせるために使ったりしています。場合によっては、下手な置換ソフトを使うよりも強力です。理想のファイル名変換ソフトが見つからなかったため、バッチファイルと組み合わせて作ってしまったこともあります。CGI にしか使わないのはもったいない言語です。
PHP 習得レベル2
 使う機械がないためなかなか手を出せずにいましたが、アルバイト先で必要と言うことで、やっと手を出すことになりました。
 実際に使ってみて、Perl とは似ているようで全然違って気持ち悪いと感じました。foreach の構文が微妙に違っていたり、全ての変数の頭につく記号が $ だったり、配列もハッシュも同じ扱いだったりと、微妙な違いは混乱します。慣れていないということもあるとは思いますが。
SQL(MySQL) 習得レベル2
 データベースを操作するための定番言語です。予想していたよりもシンプルですが、奥が深そうな気配を感じています。
XHTML 習得レベル5
 HTML 4.01 を XML で定義しなおしたもので、こちらは XML アプリケーションです。1.0 は ほとんど HTML 4.01 と同じでしたが、1.1 からはモジュール化を行うなどかなり変化しています。
XML  習得レベル4
 SGML を簡略化して習得が容易になるようにしたマークアップ言語です。HTML が元になっていると勘違いしている人もいますが、本当は兄弟の関係に近いです。
 それ自体は習得の難しいものではありませんが、実用的な応用をするためには大量の周辺技術の習得が必要となり、それがエンジニア不足に繋がっていると言われています。まずは後述する DTD が必要でしょう。そのうち淘汰されると思われますが、まだしばらくは使われそうです。少なくとも現在稼動中の関連システムが全て新しいバージョンに移行するまでは生き残るでしょう。
XML Schema 習得レベル2
 W3C による XML ボキャブラリの1つ。DTD の代わりに使うことで、許容範囲の狭い検証が可能になります。
 さまざまな規格と連携できるように機能が大量に含まれているため、かなり巨大な企画になっています。その仕様書は2つに別れ、そのどちらも巨大です。全てを理解できている人はいないとまで言われている、まるで相対性理論のような規格です。
XSLT 1.0 習得レベル4
 XML 文書を他の形式に変換するためのテンプレートとしての言語で、これ自体も XML によって定義されています。
 読みこんだ XML ファイルに使用する XSLT ファイルが指定されていた場合、自動的にブラウザが変換することになっていますが、現段階ではそれが可能なブラウザはあまりありません。Microsoft Internet Explorer 6.0 が最も完全に近い実装となっているようですが、Netscape 6 はサポートすらしていませんでしたし、W3CAmaya と言うブラウザは期待していたのですが、不安定な上に2バイト文字を表示できませんでした。
秀丸マクロ 習得レベル5
 有名なエディタの秀丸エディタが搭載しているマクロ言語です。流石に何でも出来ると言うわけではありませんが、かなりいろいろなことが可能です。私は HTML をすべて秀丸エディタで書いてるのですが、スペルが覚えにくい部分や何度も使うタグの入力をサポートするマクロを書いて使っています。以前はいちいち資料を見て確認したりしていましたが、今では数回キーを押すだけです。

講義で習ったもの

C++ 習得レベル2
 Cの延長として習いました。やはり基本的なことだけです。オブジェクト指向プログラミングを覚えさせたかったのでしょうか。
CASL 習得レベル2
 学習用のアセンブラ言語です。命令数が少ないとはいえ、結構つらかったです。期間も短かったためか、 最後まで資料が必要でした。MPUが何をやっているかを知ることが目的だったのでしょうか。
C言語 習得レベル3
 UNIXを書くための言語として誕生しましたが、今ではかなり汎用的に使われています。 大学の講義で習っただけで、興味があって覚えたものではありません。世間では知っていて当たり前のような扱いをしているようですが、 基本的なことしか習っていないし、覚えてもいません。入門レベルの書籍と同じような感じですが、 それでも後に新たにプログラム言語を覚えるための基本的な知識としては役に立ちました。
FORTRUN 77 習得レベル2
 科学計算用の言語と言うことでしたが、今のところ役には立っていません。少なくとも私の中では。 構文がCの系統とは全然違うので、もうだいぶ忘れてしまいました。