2020年ふりかえり

今年2020年の振り返りは去年みたいにがっつり振り返りはしないけど、一応振り返っておく。ちなみに、去年はこれ。

ひたすら Vue I18n メジャーバージョンの開発

Vue 3 に対応するために Vue I18n のメジャーバージョン v9 を開発していました。引用した Tweet にも書いているけど、開発に着手したのが、2020年1月6日。現時点は、9.0.0-beta.17 でほぼ実装は終わっている状態。ドキュメントも準備済み。あとは vue-cli-plugin-i18n といったツール周りが残っているけど、もう RC をリリースしてもいい状況。

Vue I18n はこれまでにいろいろとアドホックに機能を追加したり、新しいメッセージ構文をサポートしていたりして、かなりカオスな状況になっていたので、今後の拡張性を考えてフルスクラッチから開発している。i18n リソースで使用するメッセージのコンパイラを作ったり、内部構造を整理して i18n の処理する中核のところは Core として構造化して、Vue べったりに依存しないようにした。おかげで今では、Vue のみならず Node.js とか他の環境でも利用できるようになっている。実際に、Node.js で動作する @intlify/cli で使っている。

今回の開発で大変だったのが、Vue 3 向けの対応。Vue 3 では Option API と Composition API の両方をサポートしているため、Vue I18n もそれらを考慮してサポートしないといけない。それぞれに対して両方別実装として対応するのは大変なので、Composition API 向けの実装をベースに、Option API 向けにはそれをラップしたもので対応した。今回の開発で改めて互換性を維持するのって大変だなあ、とつくづく実感している。Microsoft の Windows って本当すごいなーと思う。

Vue.js Amsterdam 2020 に行ってきた

2020年2月末に Vue.js のグローバルイベントに参加するために、Amsterdam にいってきた。

ちょうどこの時期は COVID-19 で日本も慌ただしくなってきた時期だったけど、まだヨーロッパの方はロックダウン前だったので、カンファレンスイベントに参加することができた。

参加した感想としては、海外のカンファレンスイベントはスケールがすごいなーと。会場の巨大スクリーン、美味しいランチ、はじけてるアフターパーティー。海外のカンファレンスはまさにフェスティバルだ!と噂で聞いてたけど肌で体感することで改めて認識した。

画像1

画像2

画像3

Intilfy のアートワークを作ってもらった

去年の振り返りでも書きましたが、去年立ち上げた OSS プロジェクトの Intlify のアートワーク沖さんに作って頂きました。Intlify のロゴは引用したTweet にもあるとおりな感じです。

Intlify のアートワークのデザインが決まった経緯ですが、後で沖さんが詳しくブログで紹介されると思うので、ここでは詳しく話しませんが、Intlify で解決したい i18n & l10n の想いである「The Borderless i18n」から来ています。

提案して頂いたアートワークのデザインを見た時、鳥肌たったの今でも覚えています。と同時に、OSS プロジェクトでも、ロゴとかのデザインはモチベーションの源泉になるので大事だなと感じています。

アートワークをデザインしていただいた沖さんに大変感謝しています。本当にありがとうございました!

英会話の挫折と復帰

2018年の振り返りでも書きましたが、1年遅れで英会話のトレーニングをはじめた。

Vue.js Amsterdam に行く前1月ごろから初めたけど、COVID-19で非常事態宣言でトレーニングする機会が減ってしまって、やる気が失って途中挫折。

ただ、Vue コアチームの定例MTGで英語で雑談ができなくて、話に入っていけない惨めさを味わっていくたびに何とかしないという気持ちが再び再燃してきた。来年2021年 Vue.js Amsterdam のカンファレンスイベントに登壇することで、英語を使って話すことから逃げれないように自分を追い込むことで、再びまた英会話のトレーニングしています。

英会話ができない自分に、日々絶望を味わいながら頑張っています。

2021 年はどうする?

去年とほぼ同じく、OSS は Vue.js と Intlify 、そして英会話のトレーニングをやっていきます。

Vue I18n @v9 をリリースしたら自分は Intlify プロジェクトのコア部分に取り組んでいきたいと思っています。

今回の Vue I18n メジャーバージョン対応で、メッセージフォーマットのコンパイラを作りました。ただ、Vue I18n のメッセージフォーマットは i18n 界隈で標準メッセージフォーマットになりつつある ICU メッセージフォーマットの構文とは異なります。今回のメジャーバージョンでは既存の Vue I18n ユーザーに対して互換性を提供するためこ同じメッセージフォーマットの構文仕様のままにしました。メッセージフォーマットが独特であるため、ローカライゼーションサービスと相性がよくありません。

今後将来を考慮して、ICU、そして unicode working group で検討されている標準メッセージフォーマット仕様を元に、今後メッセージフォーマットを拡張していく予定です。自分の Intify プロジェクトでコアにフォーカスしたいので、いっしょにこのプロジェクトに関わりたい人も増やしていきます!

おわりに

最後に、今年自分が OSS の開発がっつりできたのは、Vue.js 日本ユーザーグループのスタッフのコミュニティ活動をおかげです。Vue.js 日本ユーザーグループのスタッフの皆様、COVID-19で大変な中、2020年ありがとうございました!

来年2021年もどうぞ、よろしくお願いします!

この記事が気に入ったらサポートをしてみませんか?