Vue.jsの生みの親 Evan氏が箱根でみんなの質問に答えてくれた【動画有り】

こんにちは、生形です。

先般開催されましたVue Fes Japan 2018のために、JavaScriptフレームワーク「Vue.js」の生みの親であるEvan Youさんが来日されました。

この機会を逃す手はない!ということで、Evanさんへの質問をTwitterで公募し、インタビューした様子をライブ配信しました。インタビュアー兼通訳を担当したのは、Vue Fes Japanのスタッフでもある、弊社代表の田中です。

f:id:kanako_ubukata:20181108222109p:plain

左:Evan Youさん/右:アシアル 田中正裕

当日、Evanさんは温泉で日本を堪能していたようです。なんとライブ配信は箱根の旅館から!浴衣がお似合いですね。


--まずは軽めの質問から。普段エディタは何を使っていますか?

はじめはSublime Textをずっと使っていて、次にAtomに切り替えましたが最近はもっぱらVS Codeを使っています。
VS CodeはTypeScriptのサポートが強力なので便利ですね。ちなみに、VS CodeのVue.js用拡張機能「Vetur」の作者であるPineさんはVue.jsのコアチームとして一緒に働いています。

--Veturといえば、最近Vue.jsのGitHubリポジトリに仲間入りしていましたね。他にもVuePressなど新しいプロジェクトが追加されているようですが、公式プロジェクトはどういった基準で採用しているんですか?

Vue.jsのコアチームがVue.jsエコシステムにとって重要であるとみなしたプロジェクトをOrganizationリポジトリに追加しています。
定期的なメンテナンスを実現するために、そのプロジェクトの開発者がVue.jsコアチームメンバーであることが公式プロジェクトとして採用される条件になります。

--Vue.jsでは、コードネームにアニメのタイトルがつけられることでもお馴染みですね。アニメはお好きなんですか?

日本のアニメや漫画は大好きです。特にワンピースや、エヴァンゲリオンなどが好きです。
コードネームは漫画のデータベースサイトを見ながら、どれにするか私が決めています。

--ここからはVue.jsの使い方や設計思想について教えてください。Vue.jsでモバイルアプリを作る場合はどんなライブラリと組み合わせるのが良いのでしょうか?

いくつか方法があるので、ケースバイケースです。ネイティブライクなUXを望む場合はNativeScriptやWeexを使うのが良いでしょう。Webの技術を使って効率的に開発したいのであれば、Quasar、Ionic、Onsen UIのようなライブラリを使うのも良いと思います。

--Web Componentsについてはどう考えていますか?今後のVue.jsのロードマップに影響を与えるものでしょうか?

Vue.jsの内部でWeb Componentsを使うと、SSRができなくなるといった課題があるので、今後Vue.jsにWeb Componentsを組み込むことはおそらくないと思います。
Web Componentsの使い所としては、IonicやOnsen UIがやっているように、UIライブラリの中でコンポーネントをカプセル化するために使用し、Vue.jsはそれらをサポートするという関係になるかと思います。

--Web Componentsもそうですが、HTML5のさまざまな標準仕様とVue.jsの間で考え方がコンクリフトすることはあるのでしょうか?

例えばHTML5のES Modulesは、Vue.jsの単一ファイルコンポーネントと同等の機能です。HTML5とVue.jsの設計思想は異なるものではないので、今後Vue.jsが標準仕様から離れていくといったことは今のところ無いと思っています。

--Reactのhooksをどう思いますか?vue-hooksというリポジトリが公開されているようですが?

Vue.jsにはコードの再利用性を高めるためのmixinという機能がありますが、mixinを多用するとネームスペースの管理が複雑になってしまう点が問題でした。hooksではそういった問題が解決されているので、とても面白い技術だと思っています。
vue-hooksは試験的に作ったもので、Vue.jsに組み込むかどうかはまだわかりません。皆さまからのフィードバックをお待ちしています。

--Evanさん個人のことについて教えてください。プログラミングに興味を持ったきっかけは何ですか?また、それをいつ職業にしようと思ったのですか?

中学生のときに、クリエイティブなことをしたいと思ってFlashを使いはじめたのがプログラミングの原体験です。
その時はドラッグアンドドロップでコンテンツを作成していましたが、大学に入ってからもう少しプログラミングを勉強しようと思い、ActionScriptを使うようになりました。
大学卒業後Googleに入社し、オープンソース開発に携わるようになりました。
プログラミングを仕事にしようと決めた瞬間があったというわけではなく、成り行きで今の自分があるといった感じです。

--好きなプログラミング言語は何ですか?

もちろん一番好きなのはJavaScriptです!JavaScriptは表現力が豊かで、簡単にグラフィックを表示できる点が好きです。
javaScript以外だと、RubyやPythonのようなダイナミック言語が好きです。
RustやC言語のような低レイヤの言語はあまり性に合わないなと感じています。

--Vue.jsを開発してから、Evanさん自身の人生にはどのような変化がありましたか?

そもそもVue.jsは実験的に始めてみたものだったのですが、多くの人に使っていただくようになり、寄付をしてくれるスポンサー企業も現れました。
当時の自分にとってVue.jsをビジネスにする決断は大きな賭けでしたが、現在では会社勤めをしていたときより収入も上がり、好きなことに全面的に取り組むことができてとても幸せです。しかしその分プレッシャーも増えました。Vue.jsをより良くするために、常に責任を感じながら開発に取り組んでいます。

--日本のVue.jsユーザーが支援できることは何かありますか?

Vue.jsは完全なOSSですので、皆さま一人ひとりに支えられて成り立っています。スポンサー企業様を募集しているのはもちろんですが、金銭的なサポートではなくても、GitHubにPRを送って頂いたり、ユーザー間で質問に答えて頂いたりといった行動がVue.jsのためになります。
今回Vue Fes Japanが日本で初開催されますが、来年はさらに規模を拡大し、多くのVue.jsユーザーの方と触れ合いたいと思っています。Vue.js日本ユーザーグループが今後より大きなコミュニティに成長していくことを願っています。


当日のライブ配信の様子は、YouTubeでご覧頂けます。

笑顔が素敵で、穏やかな雰囲気でありながら、技術に関する話題になると熱い思いを力強く語ってくれたEvanさん。Evanさんの人柄がよくわかる素晴らしいインタビューだったと思います。

アシアルでは、Vue.jsを応援しています!本ブログでもVue.jsに関する技術情報や最新ニュースを不定期で配信していく予定ですので、ご期待ください。

Evanさん、どうもありがとうございました!