プログラミング言語の長い歴史
プログラミング言語は、多種多様です。
数十年の歴史を持ち、言語仕様の変更、バージョンを重ね、今も使用されている
- C言語
- C++
初めて公開されたのは1990年代だが近年ますます広く使われている
- Python
- JavaScript
登場10年以内くらいだがすでに人気を集めている
- Go
- Rust
- TypeScript
- Swift
など、それぞれ強みを持ったプログラミング言語が多様に使われています。
今日は比較的新しいプログラミング言語
- Verona
- Skip
- Concurnas
を紹介します。
Verona
Veronaは、Microsoftが開発しているプログラミング言語です。
Microsoftは、Project Veronaというプロジェクトを立ち上げています。
Project Veronaは研究プロジェクトで、Microsoft ResearchとImperial College Londonの共同で進められています。
スケール可能なメモリ管理とプログラミング言語といったテーマのように、メモリの扱いとプログラミングについて研究することを目的としています。
このプロジェクトで試験的に開発されているのがVeronaという言語です。
Project Veronaは、
といったプログラミング言語から影響を受けているということです。
Cycloneは、C言語の方言です。
Project Veronaは、2021年2月時点で研究プロジェクトであることから、
すぐにC++、Rustなどの代替言語として使われることはないと思います。
これから時間をかけて、メモリ安全なプログラミングといったテーマが扱われていき、
Veronaというプログラミング言語が発展していく可能性はあるかもしれません。
また、Project Veronaの成果に比例して、C++、Rustなどの開発コミュニティもより活発になる、ということも考えれます。
Microsoftが公開したプログラミング言語としては、今ではTypeScriptが注目されていますが、Microsoftはこれまでに多くの研究プロジェクトに取り組んでいます。
研究プロジェクトをもとに、Microsoftが公開したプログラミング言語にはF#があります。
Project Veronaが進めば、将来F#のように正式にVeronaがリリースされる日が来るかもしれません。
Github上で、始め方、FAQなどを確認することができます。
Skip
Skipは、Facebookが公開したプログラミング言語です。
Skipは、
- 安全な並列計算
- 効率的で予想可能なガベージコレクションを持つ
- オブジェクト指向と関数型のハイブリッド言語
などの特徴を持つとしています。
Webサイトから、
- チュートリアル
- Web上ですぐに試せるPlayground
- マニュアル
などを確認することができます。
Facebookが開発したプログラミング言語としては、Hackが知られています。
PHPと比較されるまでになったHackに比べると、2018年に公開されてからSkipはまだそれほど知られていません。
今後、利用が広がることがあるかもしれません。
Concurnas
Concurnasは、2020年に公開されたプログラミング言語です。
JVM言語であり、JavaやScalaなどJava仮想マシンで動作するプログラミング言語と親和性が高いとされています。
Concurnasは、
- マルチコアCPU、GPUなどモダンなハードウェアを活用する並行、並列プログラミングを容易にする
- JavaやJVM言語と相互運用可能であり、Java関連資産を活用できる
- 学習しやすい構文
などが特徴として挙げられています。
公式ドキュメントは充実していて、
などを確認できます。
使用が期待される領域として、
- 金融
- 計算科学
- スタートアップ
などが挙げられています。
機械学習やAIの研究開発に広く使われているPythonに比べると、JavaやJVM言語はその領域ではあまり使用されていない印象です。
Java環境周りでのGPUを利用した機械学習やディープラーニングにConcurnasが広く使用されるようになれば、Java環境での機械学習のエコシステムがより発展するかもしれません。
切磋琢磨と環境適応
今でも新しいプログラミング言語が開発され、公開されています。
新しいプログラミング言語は、それまでに使用されてきたプログラミング言語から影響を受けつつも、より良い機能を持つものであることが多く見られます。
では、新しいプログラミング言語が既存のプログラミング言語をすべて置き換えてきたかというと、そうはなっていません。
これには、いくつか理由があると思います。
- 既存のプログラミング言語も、新しく登場したプログラミング言語の効果的な機能を取り入れることがある
- それまでに存在しているプログラミングコードやドキュメント、学習コンテンツなど多くのリソースを活用できる
など、既存のプログラミング言語の強みになりうるポイントがあるのではないでしょうか。
今日紹介した3つのプログラミング言語、それ自体も注目ですが、これらの影響を受け既存のプログラミング言語がどう変化していくかも目が離せません。
- Verona → Rust、C++、Pony
- Skip → Hack、Julia、Python
- Concurnas → Java、JVM言語、Python
といったように、多くのプログラミング言語が新星プログラミング言語の影響を受け、改良を進めていくかもしれません。
これまでにも、特定のプログラミング言語の代替として登場した言語はいくつもあります。
しかし、既存のプログラミング言語も環境の変化に合わせて改良され生き残っている、というケースがあります。
例えば、
- C言語
- C++
- Java
などの代替言語は色々と提案されてきました。
2021年2月時点で、代替言語として提案されてきたプログラミング言語は、多くが
- あまり使われなくなった
もしくは、
- 既存のプログラミング言語と共存している、住み分けている(別用途で使用されるようになった)
という状況だと思います。
それだけ既存のプログラミング言語が改良され続けている、もしくは既存のリソース活用が重要視されてきた、とも言えます。
そのため、新しいプログラミング言語は、既存のプログラミング言語を進化させるために登場してきた
という見方もできます。
新しいプログラミング言語が世界を席巻するのか、既存のプログラミング言語が進化を遂げるのか、VeronaやConcurnasなどの新しいプログラミング言語から、プログラミング言語の変化を追うのも面白いのではないでしょうか。
コメント