シンプルで高速、かつ安全なコンパイル型プログラミング言語「The V Programming Language」のソースコードが6月21日に公開されました(Hacker News)。
The V Programming Languageは今年の3月、Webサイトで概要や一部の仕様が公開され、期待を集めていた新しいプログラミング言語です。
もともとVoltと呼ばれるデスクトップアプリを作成するために開発された言語で、現在のところ開発はAlex Medvednikov氏一人によって行われている模様。MITライセンスが採用されています。
まだ発展途上のプログラミング言語で全ての機能は実装されていないようですが、以下のような特徴を持つと説明されています。
- 高速なコンパイル
- グローバル変数の排除やnull排除などさまざまな安全性を高める機能
- パフォーマンスはCと同じ程度高速
- 維持可能なプログラムのためのシンプルなプログラミング言語
- 依存なしの400KBのコンパイラ
- C/C++言語からの変換(DOOMソースを0.7秒で変換)
- ホットコードリローディング
- パワフルなグラフィックライブラリ
- ネイティブクロスプラットフォームのGUIライブラリ
- などなど…
これだけ多数のプログラミング言語が存在するのに、なぜ新しい言語を作ったのかという質問に関しては、以下の全ての機能を満足するものがなかったとの理由が挙げられています。
Fast compilation | Go, Delphi |
Simplicity & maintainability | Go |
Great performance on par with C and zero cost C interop |
C, C++, Delphi, Rust, Nim, Zig |
Safety (immutability, no null, option types, free from data races) | Rust |
Easy concurrency | Go |
Easy cross compilation | Go |
Compile time code generation | Zig |
Small compiler with zero dependencies | - |
No global state | - |
Hot code reloading | - |
実際にV言語はシンプルで、例えば配列を順番に表示するソースコードは以下の通りになります。またほかにもJSON、ネットワーク、ゲーム(テトリス)などのサンプルコードが公開されています
fn main() { areas := ['game', 'web', 'tools', 'science', 'systems', 'GUI', 'mobile'] for area in areas { println('Hello, $area developers!') } }
公開されたバージョンはv0.0.12とまだ開発の初期段階ですが、今後の発展に期待したいと思います。