HashiCorpは、仮想環境をプログラミングできるツール「Vagrant」の開発言語を、これまでのRubyからGo言語切り替えることを明らかにしました。
時期未定ながら、今後約1年のあいだに登場するVagrant 2.3、Vagrant 2.4を経て、Vagrant 3.0でGo言語への移行が完了する予定。
Vagrant 3.0では、デフォルトで新たなAPIやHCL(HashiCorp Configuration Language)によるコンフィグレーションなどに対応。また、Rubyベースのコンフィグレーションやプラグインを検出するとRubyや互換性維持用ヘルパーツールなどを導入し、最大限の互換性維持を図るとしています。
Vagrant 3.0で予定されている新機能など
Vagrant 3.0では主に次のような新機能が追加される予定です。
リモートマシンのVagrantを操作可能に
Vagrantは基本的にローカルマシン内の仮想マシンを操作するためのツールでしたが、クライアント/サーバアーキテクチャを採用することで、リモートマシン内のVagrantを操作できるようになります。
これにより非力なクライアントマシンからリモート先の強力なマシン内のVagrantを操する、といった使い方が可能になります。
ヘッドレスでの操作が可能に
これまでWindowsでは特権ユーザーの操作が必要な場合にはユーザーアカウント制御のダイアログボックスが表示されるため、それをクリックする必要がありました。Vagrant 3.0では特権的なサービスが可能になるため、こうしたユーザー操作が不要となり、ヘッドレスな操作が可能になります。
グローバルな構成管理が可能に
現在のVagrantのユーザーは自分の設定を参照することしかできませんが、新しいサーバベースのアプローチでは、グローバルに適用可能なVagrantの設定を管理できるようになり、設定のデータベースへの保存も可能になります。これにより設定が失われるなどの事故に強くなるなど、Vagrantの回復力の強化にもつながります。
プラグインAPIの改善とポータビリティの強化
現在のRubyベースのプラグインは引き続きサポートされ、それに加えて新たなAPIとGRPCのサポートによってGo言語やそれ以外の言語によるプラグインの開発が可能になります。新たなAPIはVagrantのリリースに依存せず、プラットフォーム依存もなくなるため、プラグインのポータビリティも容易に実現できるようになります。
Rubランタイムへの依存がなくなる
RubyベースのVagrantでは、Vagrantとともにそののランタイムとしての特定のRubyランタイムが必要でした。GoベースになるVagrantでは、こうした特定のRubyランタイムへの依存がなくなるため、ユーザー自身で好みのRubyランタイムを利用することができるようになります。
今後、Vagrant 2.3ではGo言語で実装されたアルファ版のVagrantが含まれ、Vagrant 2.4でGo言語で実装されたVagrant本体がデフォルトになり、Vagrant 3.0でGo言語で実装されたVagrantだけがパッケージに含まれることで、Go言語版に完全に切り替わる予定だとされています。
https://www.publickey1.jp/blog/21/vagrantrubygovagrant_30.html
昔、偉い人が 貧乏人は最初にC言語を覚える って言ってた。
どうしてですか?って真剣に聞いたら
貧しいから(まずCから)だ はっはっはっ だってさ。
案外、このネタ今でも使えるよな
>>4
始めた聞いたが…
今度使わせてもらう
ROR
しゃあない
だから表示に時間がかかるのか
管理人からひと言
お前、Rubyやったんか
この記事へのコメントはありません。