Scribble at 2022-06-08 07:53:55 Last modified: 2022-06-08 09:20:49

プログラミング言語には、もちろん昔から強い興味がある。中学生となった祝いに SHARP の MZ-80B というコンピュータを買ってもらった頃も、確かに幾つかの用途を雑誌などで期待していたのだが、それだけではなくプログラミングという実務、つまり設計やリファクタリングやバグ・ハンティングも含めた作業そのものにも関心があって、当時も MZ-80B 用に幾つか販売されていた処理系を物色していた。もちろん正規の SB5520 (SHARP Basic 5520) は白い A4 のマニュアルを学校にも持参して読んでいたけれど、それ以外にもハドソンから発売されていた Hu-G Basic を使ったり、確か Pascal も販売されていた筈だ。そして、そもそもそれらをロードしている環境で何が起きているのかという「低水準」に目が向くと、当然だがアセンブリ言語(アセンブラ)も興味の範囲に入ってくる。実際、当時は『Oh! MZ』などの雑誌に「付録」として掲載されていたゲームや商業計算用のプログラムは16進数のコードが印刷されていて、試しに動かすためには数百行から数千行ものコードを自らキーボードで手作業で入力していたわけである。そして、テンキーとメタ・キーだけで A, B, C, D, E, F を入力するためのユーティリティなども使っていた。

自分では当たり前のことだと思っているが、職業的なプログラマやサーバ技術者となってからも、仕事の道具としてだけでなく趣味の範囲でプログラミング言語やスクリプト言語には、それなりの興味がある。おそらく、一般論として言えばプログラミング言語ヘ関心をもつ動機や目的としては、五つくらいに大別できるだろう。第一に、コンピュータ・サイエンスの研究分野として。第二に、単独で科学計算などを行うための処理系として。第三に、クライアントへのレスポンスを目的とした C/S モデルで使うサーバ言語として。第四に、デスクトップ・アプリケーションを開発するための GUI プログラミング言語として。そして第五に、フロントエンドでコンテンツの制御に使う言語として。それらの関心に応じて、僕も仕事で使っている言語だけでなく、他に色々な言語なり処理系を学びたいとは思っている。

既に一定の勉強をしている BASIC, C, PHP, Perl, Python, JavaScript などを除くと、学んで何かプログラムを書いてみたい言語として関心をもっているだけなら、たくさん候補がある。まず筆頭は、とりわけ高水準な処理系としてのプログラミング言語が誕生した時期に考案された、Fortran (FORTRAN) や COBOL や LISP、そして1960年代から Perl が登場するまでのあいだに出てきた BCPL、C++、Forth、ML、Pascal、Prolog、awk(異論はあると思うが、PL/I や Ada は出来た経緯や研究者の評価などから、あまり手を付けたくない)、そして Perl 以降だと Haskell、Ruby、Lua、Java(Java を挙げるのは職業的なエンジニアとして意外かもしれないが、Black Book や Complete シリーズの大著を所持しているものの、あまり真面目には学んでいない。実装経験もないので殆ど素人だ)、Erlang、Go、Rust、Julia といったところだ。なお、僕は Windows の互換シェルに関心をもっているが、実は GUI プログラミングの言語にはあまり興味がないので、Tcl/Tk のようなスクリプト言語を学ぶ意欲はない。同じ理由から、たとえば Python はオンライン・ゲームのクライアント環境で動くプラットフォーム言語として GUI プログラミングにも採用されていることは知られているが、Python のそういう使い道についてもあまり関心がない。あと、僕は VM 上で動く処理系はコンピュータ・サイエンス的な観点での興味がなくもないが、仕事の道具としては使う気にならないので、Scala とか Groovy のような一世を風靡した言語は手を付けない方針だ。PowerShell や WSH (Windows Scripting Host) のように特定のプラットフォームでしか動かない処理系や、PL/I のようにオープンな処理系がなくて気軽に試せない処理系も、どれほど有名であろと無視する方針だ(それらについての無知が、僕の技術者としての見識を致命的に制約するとは思えない)。

確実なこととして、今後も新しいプログラミング言語は続々と考案されるのだろう。それはそれで楽しみだし、僕自身は自分で処理系を設計したり実装するまでの意欲はもっていないので、あくまでも「ユーザ」としてしか関わらないのだが、やはり気に入っていて実績も出せている道具はマイナーであっても(PHP や Python のようにトレンドとして採用されている言語なら誰でも勉強する筈なので)お勧めしたい。当サイトでも何かコンテンツを公開できればと思う。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook