比較的新しいプログラミング言語
プログラミング言語は様々あり、それぞれ独自の強みを持っています。
今日は比較的新しい、かつあまり知られていないプログラミング言語について紹介します。
- Nim
- Red
- Ceylon
- Elm
- Pony
- Hack
の6つです。
- 知らなかったが面白そう
- 息抜きに試してみよう
- プログラミング学習に取り入れてみよう
など、新しい発見があるかもしれません。
Nim
Nimは、2008年に初めて公開されたプログラミング言語です。
Nimは、
- Pythonに影響を受けている
- 実行速度が速い
- ついに2019年9月にバージョンが1.0に
などの特徴があります。
公式サイトでは、
- 効率的
- 表現力が豊か
- エレガント
が特徴であるとされています。
効率的、に関しては、
- プロセス仮想マシンに依存しない、ネイティブな小さいサイズの実行可能ファイルを生成
- コンパイラと生成される実行可能ファイルは、WindowsやLinux、macOSなど主要なプラットフォームをサポートしている
などが挙げられています。
表現力が豊か、という点については、
- コンパイラや標準ライブラリがNimで実装されている
- 強力なマクロを持っている
などが紹介されています。
エレガント、については、
- Nimのシンタックスは十分に柔軟なため、マクロによる変更ができない
- モダンな型システム
などが該当するとされています。
Nimの公式サイトは、入門用のリソースが充実しています。
Playgroundもあります。
Red
Redは、2011年に公開されたプログラミング言語です。
Redは、REBOLというプログラミング言語に強く影響を受けているとのことです。
REBOLは、1997年に初めて公開された、通信や分散処理に向いているプログラミング言語です。
Redの公式サイトによると、
- 同図像性
- 関数型言語、命令型言語、リアクティブプログラミング、シンボリックプログラミング
- マクロ
- スクリプト実行とコンパイルともに可能
などがRedの主な特徴です。
同図像性で知られているプログラミング言語は、Lispです。Lispでは、S式で同図像性を実現します。
S式を採用しているプログラミング言語には、Clojureがあります。
Redでは、S式(カッコを使う記述)ではなく、ブロックという構造とスペースを使って表現します。
Redには公式のチュートリアルがあります。
Ceylon
Ceylonは、Red Hatによって開発され、2011年に公開されたプログラミング言語です。
2017年には、Eclipse Foundationに参加したとアナウンスがありました。
Red Hatは、Linuxで有名な会社で、
Eclipse Foundationは、統合開発環境(IDE)として有名なEclipseを開発している団体です。
Ceylonの主な特徴は、
- Java仮想マシンで動作する
- JavaScriptにコンパイルできる
- Node.jsで動作する
- 統合開発環境(IDE)としてEclipseやIntelliJ IDEAなどが使用できる
- C言語やJavaと構文が似ている
- 高階関数をサポート
などです。
Node.jsは、Web開発で広く用いられているJavaScript実行環境です。
高級関数とは、簡単に言うと、関数を引数や戻り値として使う関数、のことです。
Java仮想マシンで動作することからCeylonは、JVM言語であると言えます。
公式サイトには、入門者向けのリソースがあります。
Elm
Elmは、2012年に公開されたドメイン特化プログラミング言語です。
ドメイン特化プログラミング言語とは、特定のタスクを処理するために作られたプログラミング言語のことです。
汎用的なプログラミング言語とは異なり、特定の領域で使用されることが想定されています。
Elmは、
- JavaScriptにコンパイルすることができる関数型言語
- 実行速度といったパフォーマンスが高い
- 静的型付け言語
などの特徴があります。
公式サイトの様々なサンプルから、
WebベースのGUIを作成するといったWeb開発に特化したプログラミング言語であると言えます。
Elmでは、
と呼ばれるWebアプリやゲームを開発するときに使用できるパターンがあります。
The Elm Architectureは一種のフレームワークとも言えるものです。
The Elm ArchitectureはReduxやVuexなどのJavaScriptフレームワーク / ライブラリに影響を及ぼしていると言われています。
関数型言語であるElmはとっつきにくいイメージがあるかもしれませんが、
チュートリアルが充実していて、取り組みやすくなっています。
Pony
Ponyは、2014年に公開されたプログラミング言語です。
Ponyには、
- オブジェクト指向言語
- アクターモデルを採用
- Capability-based securityを採用
などの特徴があります。
アクターモデルは、並行計算のための数学的モデルです。
Erlang、Elixir、Scalaなどがアクターモデルを採用しています。
Capability-based securityは、安全なコンピュータを設計するためのコンセプトです。
これらの特徴から、
- 型安全
- メモリ安全
- 例外安全
- デッドロックがない
- 並行処理に適している
などの強みがあるとされています。
デッドロックとは、簡単に言えば、2つ以上の処理がお互いの処理終了を待つことで、結果的にすべての処理が滞ってしまうことです。
あまり知られていないPonyですが、チュートリアルがあります。
Hack
Hackは、Facebookが2014年に公開したプログラミング言語です。
Hackは、HHVMで動作するプログラミング言語です。
HHVMは、HipHop Virtual Machineの略で、プロセス仮想マシンの一種です。
- JavaやJVM言語に対する、Java仮想マシン
- ErlangやElixirに対する、BEAM (Erlang virtual machine)
と同じように、
Hackに対しては、HHVM
があります。
Hackは、サーバーサイド言語として長く使われているPHPの影響を受けていると言われています。
PHPに似た構文を持ちつつ、
- 型指定(Type Annotation)
- ジェネリクス
といった特徴も持っています。
ジェネリクスは、ジェネリックプログラミングとも呼ばれるプログラミング手法で、データの型に依存しないプログラムの記述を目的としています。
FacebookというITの巨人が開発したプログラミング言語としては、まだあまり認知度は高くないかもしれません。
公式ドキュメントは充実しており、
チュートリアルも用意されています。
PHP7系が公開されてから、比較されることの多いHackとPHP、
- PHPを学んできた
- PHPを学ぼうと思っていた
という人は、Hackを試してみると面白いかもしれません。
(PHPは、2020年11月に8系が公開されました。)
今後に期待
今日は、比較的最近誕生した、プログラミング言語
- Nim
- Red
- Ceylon
- Elm
- Pony
- Hack
を紹介しました。
これらの言語と同時期に公開されたプログラミング言語としては、
- Go(2009年)
- Rust(2010年)
- Dart(2011年)
- Kotlin(2011年)
- TypeScript(2012年)
- Swift(2014年)
があります。
これらの言語は、
- Go言語 → シンプルな構文、並行処理などの特徴から広く用いられている
- Rust → メモリ安全であり、C / C++の後継として期待されている
- Dart → モバイルアプリケーションフレームワークのFlutterで使用
- Kotlin → Androidアプリ開発で使用
- TypeScript → Web開発で使用
- Swift → iOSアプリをはじめとするアップル製品向けアプリ開発に使用
などの形で広く知られています。
今日紹介した6つのプログラミング言語は、まだそれほど知られていないと言えるでしょう。
しかし、まだ新しいプログラミング言語である、とも言えます。
今後、脚光を浴びる日が来るかもしれません。
気になった人は、一度試してみてはいかがでしょうか。
コメント