世界のプログラミング言語 第57回 シンプル・高速・保守性の高さを目標に掲げたV言語はGo言語のライバルになり得るか?!

2025年2月10日(月)18時6分 マイナビニュース


V言語はGo言語のようにシンプルさと高速な動作、保守性の高さを売りにしています。毎回いろいろなプログラミング言語を紹介する本連載ですが、今回は2019年に公開され、現在も活発な開発が続いているV言語について紹介します。
○V言語について
V言語は、2019年にアレクサンダー・メドヴェドニコフ(Alexander Medvednikov)氏によって開発されたプログラミング言語です。当初は、デスクトップ向けメッセージングクライアント「Volt」を開発するために作られました。
開発目標として「シンプル」「速度」「安全性」を掲げています。Go言語のようにシンプルな言語仕様が特徴です。そして、静的型付け言語であるため、C言語と同等の速度で動作させることができます。
なお、V言語のユニークな点ですが、V言語のコンパイラは、V言語のソースコードをC言語に変換するトランスパイラとして実装されています。そのため、C言語が動作する一般的な環境であれば、V言語を動かすことができます。そのため、V言語はC言語との相互運用性が高く、C言語のライブラリを利用するのも容易です。
○Go言語と似ている
そして、V言語の文法はGo言語とよく似ています。Go言語のようにシンプルな構文を持ち、仕様が小さいため学習も容易です。デフォルトで変数の扱いが不変(immutable)となっており、保守性に配慮しています。そして、コンパイルサイズは、Go言語よりもずっと小さいものになります。
なお、Go言語ではガベージコレクション(GC)を採用しており、メモリ管理が自動化されています。これに対して、V言語ではガベージコレクションを利用せず、コンパイル時にメモリ管理が行われます。これによって実行時のオーバーヘッドを削減します。
このために、V言語ではLobsterという言語の手法を参考にして実装しているようです。これは、ヒープに確保されたメモリを静的な生存時間解析で自動管理するものです。開発者がメモリ管理の複雑な概念を意識することなく、Go言語のような感覚でプログラムを作成できます。
そして、Go言語では関数の戻り値として、エラーを返すスタイルが一般的ですが、V言語では、option型やresult型を採用しています。また、当初からジェネリクスをサポートしており、様々なデータ型が標準で用意されています。
加えて、vpmと呼ばれるV言語のためのパッケージマネージャーが用意されており、公開されているパッケージを手軽にインストールできるようにも工夫されています。
○V言語をインストールしよう
それではV言語を実際にインストールして使ってみましょう。V言語をインストールするには、C言語のコンパイラが必要です。
Windowsの場合は、オープンソースのmingw-w64を公式サイト(https://www.mingw-w64.org/ )からダウンロードしてインストールするか、Microsoftの公式サイトから、Visual Studio(https://visualstudio.microsoft.com/ja/)をインストールする必要があります。ただし、ちょっと試したいだけならば、Windows上でLinuxを動かすWSL(Windows Subsystem for Linux)を利用するのが簡単です。
WSLを利用する場合、下記のコマンドを実行することでインストールできます。
# 必要なツールをインストール
sudo apt update
sudo apt install -y git build-essential
# v言語のリポジトリからソースコードを取得
git clone https://github.com/vlang/v
cd v
make
macOSの場合は、Xcodeのコマンドラインツールをインストールする必要があります。以下のコマンドを実行してください。
# Xcodeをインストール
xcode-select --install
# v言語のリポジトリからソースコードを取得
git clone https://github.com/vlang/v
cd v
make
すると、ディレクトリvにvという実行ファイルが作成されます。これが、V言語のコンパイラ兼パッケージマネージャーです。このディレクトリvにパスを通すことで、インストールが完了します。下記のコマンドを実行するとどのディレクトリからもvコマンドが使用できます。
sudo ./v symlink
○V言語で一番簡単なプログラムを作ってみよう
V言語で一番簡単な格言を表示するだけのプログラムを作ってみましょう。下記のプログラムを「hello.v」という名前で保存します。
fn main() {
println(
"心ない発言は剣のように突き刺し
" +
"賢い人たちの舌は人を癒やす。")
}
このプログラムを見ると、メインプログラムはC言語やその他の言語のように、main関数から始まることが分かります。
プログラムをコンパイルして実行するには、ターミナル上で次のコマンドを実行します。
# コンパイル
v hello.v
# 実行
./hello
プログラムを実行すると次のように表示されます。
.

マイナビニュース

「言語」をもっと詳しく

「言語」のニュース

「言語」のニュース

トピックス

x
BIGLOBE
トップへ