今日は、プログラマなら誰でも試して面白いと思えると私が考えているプログラミング言語6つを紹介したいと思います。
- 元記事 (英語)
Haskell
Haskellは静的型システムを持つ純粋関数型言語です。
Haskellはプログラミング言語の分野の有名な研究者たちによって設計されています。
Haskellによるプログラミングを通して、Haskellプログラマは、プログラミング言語の理論について多く学ぶことができます。
Haskellには優秀なユーザがとても多くいます。
Haskellの問題は多くの人にとって使い始めるのが難しいことです。
Haskellを使いこなすには、プログラミング言語の理論の抽象的な概念を多く理解する必要があります。
しかし、その表現力はとても強力です。
今までにない全く新しいコンセプトのソフトウェアを実装する際の実装言語として、Haskellは最も最適なプログラミング言語だと私は考えています。
Coq
Coqは証明支援システムです。
Coqはコンピュータ上で証明を記述するための言語とその証明を形式的に検査するためのツールを提供しています。
この分野はこの先とても重要な技術になると私は考えています。
Coqの問題点と私が考えているのは、Coqで記述された証明は全く直感的でないところです。
中学校で習うような初等的な数学の命題や証明さえ直感的には記述できません。
もっと直感的な証明を記述できる言語を作りたいというのが私の将来の目標の1つです。
Erlang
Erlangは分散システムを実装する際にとても便利なプログラミング言語です。
実は私の職場での業務の1つに分散オブジェクトストレージLeoFSの開発のサポートというのがあり、
平日Erlangを書いていることがあります。
Erlangはスケーラビリティが高く、ダウンしにくいソフトウェアを実装するのに便利なライブラリがあります。
最近、Erlangの技術は注目を浴びていて、Erlangの特徴を含む新たな言語が現れてきています。
Ruby風のシンタクスをもつElixerやLisp風のシンタクスをもつLisp Flavored Erlangなどが注目を浴びています。
Elm
Elmはfunctinal reactiveという珍しい概念を持つプログラミング言語です。
以下のリンクを訪ねると、Elmの面白さがすぐにわかると思います。
マリオを高くジャンプできるようにしたり、多段ジャンプできるようにしたり、もっと速く動くように遊んでみました。
とても面白いです。
公式サイトに他にも面白いサンプルがいくつもあります。
Viscuit
Viscuitはヴィジュアルプログラミング言語です。
Viscuitの面白いところは、ヴィジュアルプログラミング言語ならではの完全に普通のプログラミング言語とは違うメカニズムで動作するところです。
Viscuitプログラマは、メガネと呼ばれる左右の穴それぞれに絵を描くことによってのみプログラミングを行います。
左の絵が、右の穴に描かれた絵に次の瞬間にボード上で変換されるという単純な仕組みで動作します。
以下のリンクのビデオを見るとすぐにそのコンセプトを理解できます。
Egison
Egisonは私が作っているプログラミング言語です。
元記事(英語)もこの記事もこのEgisonの宣伝のためにもともと書きました。
(先週の記事で紹介したRubyのGemもEgisonの宣伝のために一生懸命実装しました)
Egisonは強力なパターンマッチの表現力をもつプログラミング言語です。
ぜひ以下のデモンストレーションを見てみてください。
Egisonは海外のニュースサイトで"注目を浴びつつある10のプログラミング言語"として最近取り上げられたこともあります。