はじめに
あなたの好きなプログラミング言語は何ですか?
これまで多くのプログラミング言語が生まれてきました。Wikipedia の言語一覧を見てみると、非常に多くのプログラミングが存在することを読み取れます。
しかし、近年、「人気な言語」や「よく使われる言語」のランキングを見てみると、順位の変化はありますが、出てくる言語はほとんど変わらなくなってきました。もちろん、人気の言語は人気たる理由がありますが、マイナーな言語にも個性があり、学んでみる価値があると思います。新たなプログラミング言語との出会いで、人生が変わることもあるかもしれません。
この記事では、最近生まれた新しいプログラミング言語をいくつか紹介します。人生を変えるようなプログラミング言語との出会いのきっかけとなれば幸いです。
また、おまけとして、「新しいプログラミングを探す方法」についても考えてみたので、新たな言語を探す旅に出たい方はよければ参考にしていただければと思います。
最近生まれた新しいプログラミング言語
以下の3つのプログラミング言語を紹介します。
- Mojo
- Verse
- Onyx
Mojo
Mojo は Modular社が2023年5月に発表した新しいプログラミング言語です🔥
Python のようなシンプルな構文とCやRustのようなパフォーマンスが売りの、AI開発向け言語です。
拡張子は .mojo
または .🔥
(!?)となっています。関数の定義方法として、Pytohn と同様の def
と、型を指定する代わりに最適化などのメリットが得られる fn
の2種類存在します。
Hello World は以下のようになります。
fn main():
print("Hello, world!")
2023年は特に ChatGPT をはじめとしたAIの開発が盛んな年でしたが、そんな年だからこそAI開発に特化した Mojo のような言語が生まれたのかもしれないですね。今後、どうなっていくか気になります。
Qiita にもいくつか Mojo を紹介する記事がいくつかあるので、興味がある方はぜひ読んでみてください!
Verse
Verse は2023年3月の Game Developers Conference 2023 にて発表されたメタバース開発用プログラミング言語です。フォートナイト や Unreal Engine を作った Epic Games が開発しています。
UEFN(フォートナイト用 Unreal Editor)でゲームプログラミングを行うための言語らしいのですが、まだ僕は触ったことがないです。(いつか Verse で何か作ってみようと思います)
純粋関数型プログラミング言語 Haskell で有名な Simon Peyton Jones さんが開発にかかわっているため、関数型プログラミング言語界隈で話題になりました。
公式のチュートリアルも充実していそうなので、今度試してみて別の記事として書いてみようと思います。
Onyx
Onyx は Brendan Hansen さんが開発している WebAssembly へのコンパイルに特化したプログラミング言語です。2023年3月に ベータ版 v0.1.0 が公開されました。
WebAssembly といえば、C・GO・Javaなど既存の言語で書かれたコードを WebAssembly にコンパイルする、といった方法が多いですが、Onyx は最初から WebAssembly へコンパイルするために作られました。
Onyx は命令型言語ですが、関数型言語の特徴も採用しており、|>
のようなパイプ演算子で処理をつなげることができます。以下は公式ドキュメントに掲載されているプログラムです。
use core {iter, println}
main :: () {
sequence := i32.[5, 2, 4, 9, 29, 8, 2, 8, 3];
iter.as_iter(sequence) // Make the iterator
|> iter.take(5) // Only take the first 5 elements
|> iter.map(x => x * x) // Square each result
// Sum the squares with a fold operation
|> iter.fold(0, (x, y) => x + y)
|> println(); // Print it to the screen
}
まだ日本語の記事は少ないですが、これは逆に日本語の記事を書くチャンスです!
WebAssembly の注目度は日々上がってきています。今後、WebAssembly の動向次第でこの言語が活躍する未来も来るのではないでしょうか?
おまけ: 新しいプログラミング言語を探す方法
この記事を書こうとしたきっかけは Onyx です。Onyx とは偶然出会ったのですが、そのとき「最近あまり新しいプログラミング言語のキャッチアップができていないなー」と思い他にも最近生まれた言語がないか探したのですが、思っていたよりも難しかったので、どのように探したか書いてみます。
他にいい方法があったら教えてください!
頑張って検索する
Google で「新しいプログラミング言語」で検索してみてください。
実際に検索してみるとわかるのですが、「おすすめプログラミング言語」「人気の言語」「今年学ぶべきプログラミング言語」などしかヒットしません!このように
「newest programming language 2023」のように英語で検索するとギリギリ Mojo などが出てきます。
Google よりも、X(旧Twitter)で検索した方が、新しいプログラミング言語が見つかりやすい印象でした。
コミュニティを探す
普段からプログラミング言語の研究をしていたり、そういったアンテナが鋭い方々の力をお借りしようという作戦です。探してみると、「プログラミング言語処理系が好きな人の集まり」がみつかりました。
Zulip でプログラミング言語に関する雑談などが行われています。また、Rubyのコミッターの 国分(k0kubun)さんや笹田さんなども参加しています。最近だと Onyx に関する話題なども上がっていました。
カンファレンス・学会・論文を探してみる
プログラミング言語に関する研究は日々少しずつ進んでいます。そういった研究により新たな言語が生まれることも珍しくないと思います。なので、 カンファレンス・学会・論文をチェックすると、新しいプログラミングに出会う可能性があります。日本でもそういったイベントはあるので、そういったイベントに参加してみるといいかもしれないです。
さいごに
AI開発の Mojo、メタバース開発の Verse、 WebAssembly 開発の Onyxなど、最近生まれた言語は最近話題の言語と密接にかかわっていそうです。
あと、新しいプログラミング言語を探している途中で、以下のポストを発見しました。
ホットな新しいプログラミング言語は英語
ChatGPT などの大規模言語モデルが発展して、直接プログラムを書かなくても文章でAIに指示するだけでほしいプログラムを出力できるような時代になってきました。そうなってくると、いかにうまく指示をするかが重要となってきます。
そういった旨を表現しているポストだと思うのですが、それでも最終的には何らかの言語をコンパイルして実行する必要があるので、プログラミング言語処理系は今後も進化していくと思います。
また、プログラムを書くことは楽しいです。楽しいと感じたことがない人はまだ楽しさを知らないか、楽しい言語に出会っていないだけだと思います。ぜひ運命のプログラミングを探したり、自分で作ってみましょう!
参考文献