プログラミング言語 V とは
謳い文句では「保守性に優れたソフトウェアを開発するための、シンプル・高速・安全なコンパイラ言語」と公式ドキュメントには書かれております。またGoに似ており、Oberon、Rust、Swiftの影響を受けているとも書かれており、CやC++を変換云々とも書かれている。まだ開発初期段階らしいのですが、V1.0の公開が今年の12月を予定しているそうなので、かじっておくのもありなのかなと思い試してみました。インストール
インストールは以下の手順でできました(警告が出ましたが、とりあえず動きました)
$ git clone https://github.com/vlang/v
$ cd v
$ make
後は.bashrc
にexport PATH=$PATH:$HOME/v
と書いておく。これで、$ v
とすれば、対話シェルが起動します。また.v
ファイルを作成し、$ v -o ~~ ~~.v
とか$ v run ~~.v
とする。まずは対話シェルでお試しでも良いかと思います。
$ v
V 0.1.19 9c9e629
Use Ctrl-C or `exit` to exit
>>> println('Hello, world!!')
Hello, world!!
>>> x := 123
>>> x
123
:=
は、変数宣言と初期化を同時に行うものですが、Goと同じと言いたいが、実はデフォルトでイミュータブルとなっているので、例えば以下のようなことをするとGoでは大丈夫だけれど、Vではエラーとなる。
>>> x := 123
>>> x = 456
ERROR!!
これはRustではおなじみなので、私的には違和感はないです。したがって、Rust同様ミュータブルな変数は明示的にするmut
必要があるようです。
>>> mut x := 123
>>> x = 456
>>> x
456
基本的に右辺の値から型推論されるようですが、型変換もしくは型を強制することもできるようです。
>>> x := int(123)
>>> x
123
楽だなと思ったのはリストに要素を追加する際の記述法です。
>>> mut l := [1, 2, 3]
>>> l << 4
>>> l
[1, 2, 3, 4]
構造体のあたりで、pub mut mut:
というのが出てきて、ちょっと面倒さを感じましたが、それは人それぞれ感じ方が違いますので。何とも言えませんし、単に慣れの問題かもしれません。今後どうなるのか分かりませんが、結構注目されているようですので、気になる方は要チェックかもしれません。私はRustとLispで手一杯、頭一杯……