bonotakeの日記

元・ソフトウェア工学系研究者、今・AI系エンジニア

仕事でプログラミング言語を作る

ええと、やっぱり書いてしまうわけですが:P
でも、誰かのブログにトラックバックもつけないし、つけられてもコメントもらっても反応しませんです。書きっぱなしジャーマンってことで。


仕事で言語(処理系)を作る機会は…自分の知る限り、DSLDomain Specific Language)なら国内でもあります(といっても矢鱈めったらある訳ではないですが)。 そのテの製品が結構なお値段でやりとりされているのを、規模の大小は問わず幾つか知ってますし、私自身、そんな仕事にイッチョカミ(死語)していたこともあります。
DSLなら、「未成熟さ(immaturity=こなれていないこと)」と「導入コスト」というディスアドバンテージを、「専用言語」というアドバンテージで大きく上回ることができる訳です…と言い切っていいかわかりませんけど、まぁ少なくとも、お金払ってもらうフレコミにはなりますw

んで、こういうのは大抵言語屋ではなく、そのドメインの専門家が作ります。なので、一般の言語として見ると結構(かなり)イケてないことが多いです;) そういう意味では、ちゃんとした専門家に作ってほしいなぁと思うことしばし、です。


ただこういう仕事、言語屋さんからして見ると、あんまりおいしくないだろうなと思うのも事実で。当然ですが、作るには何よりまずドメイン知識が必要ですし、言語としての新規性より、ドメインの中での優越性がずっとずっと優先されます。だから、言語としては枯れた技術を使ったり、場合によっては捨て去られた技術を使う場合も出てきます。
言語としてcutting edgeなものはそうそう作れないので、そこいらへんはコミコミでやらんとダメだと思われます。*1
そしてまぁ…特定分野でそういう言語を作った場合、その分野の学会には論文を出しても、POPLには出さない(出せない)です。一般的には :)



とはいえ。
ここまで書いてふと思ったんですが、最初っから汎用を狙って作った(そして普及した)言語って、どれだけあるんでしょうね? 自分の知る限りMLもHaskellも、C++JavaPascalも、大元をたどれば特定用途…というか、ある特定の目的ないしアプリケーションを狙って作られてると思うのですけども。
C言語についてはよく知りませんが、根っからの汎用言語なんですかね?

*1:もっとも、こういうのは現場でのソフトウェア開発一般に通じる話ではありますが。

注:bonotakeは、amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、 Amazonアソシエイト・プログラムの参加者です。