予定していたつもりだと思うんですよね。
エヴァユーもそういうことをおっしゃっていましたしね。
なんですけど、この人はそういうことも
加味してもそういうふうに感じるというふうに
おっしゃっていますね。
容易でもないし簡単でもないのは当然だと思います。
こんだけ破壊的な変更があるというので、
僕らもその辺はある程度理解していますけど、
とはいえなかなか強いなという印象はありますよ。
ちょっと読んでいきましょうか。
誤解しないでください。Vue 3は素晴らしいです。
おそらく最高のフレームワークです。
しかしV2からの簡単な移行パスがないという事実は、
今後繰り返しにならない過ちですというふうに言っています。
なるほどですね。
やってはいけない、繰り返してはいけない失敗というのは
そこにあるというふうに言っていますね。
途中、この後多分出てくるはずですけど、
確かにアンギュラー感があるなと思いました。
アンギュラーJSとアンギュラーの移行というのは
確かに大変だったというか、完全別フレームワークなので
ほぼアプリケーション作り直しに近いんじゃないか
というところが正直あったと思います。
一応アンギュラーのACLAがいろいろマイグレーションの
サポートをしたりとか、割とコストかからないように
Google社も既にその辺は考慮して実装を進めていたとはいえ、
なんだかんだやっぱり作り直しに近いところがあるので
そこは結構大変だったんじゃないかなと思いますけど、
それの話とかなり僕は似たような感じがありますね。
ちょっとアンギュラーの騎士感を感じました。
はい。
もうぐらさんですね。
おはようございます。ご参加ありがとうございます。
タイトルのある記事をたらたら読んでいます。
はい、ビュー2の問題点ですね。
ビューというのは常に進歩的なフレームワークと考えられました。
進歩的というかプログレッシブですね。
フレームワークと考えられましたと。
オプショナルAPIか。
オプショナルAPIというのはすごい理解しやすく、
必要に応じてより複雑なパターンやライブラリを学習して
投入することもできましたと。
確かにここが結構強みだと思うんですけど、
学習曲線とは本当に小さくて、
ドキュメントもすごい充実していて、
好まれる理由というふうにされていたというのもありますよね。
投入コストと分かりやすさというのはかなり大きくて、
一気に広まった大きな要因になったんじゃないかなと思いますね。
そういうときもやっぱり素晴らしかったと思うと思います。
一方で共通ロジックをミックスインとかに抽象化する際に、
合成とかよりも継承を用いるというアーキテクチャの欠陥というのが
スケーラビリティの問題を引き起こしていて、
クリーンなコンポーネントの宣言とか原則の多くを
壊してしまっていたというところですね。
その解決策として導入されたのがコンポジションAPIであります。
やっぱりリアクトフックスの設計思想から
すごくインスパイアされたと思うんですけど、
やっぱり設計というか思想というのがものすごく素晴らしくて、
よりクリーンなコンポーネントというのが作れるようになったし、
制御とかいろんなロジックがあるようなことも、
細かいところまで制御がうまいことできるようになったというので、
いわゆるかゆいところに手が届くみたいなところですけど、
未来のところもできるようになったのが本当に大きいと思っていますね。
それと同じようなことをビューでもしたいというので、
コンポジションAPIが入ったと思うんですけど。
これは素晴らしい話だと思います。
素晴らしいんですけど、
じゃあリアクトで良くないという意見は僕はずっといまだに拭えてない。
ビュー3ちょっと僕もちょっとずつ勉強し始めて手を動かしているんですけど、
すごい疑似感しかなくて、
もうリアクトで良くないというのがずっと思っていたりはしています。
もちろんビューが素晴らしいことには全然否定する気は全くないですし、
本当に同感だと思います。
これ好みの問題ですね。
もう一つの重要な問題というのは、
タイプスクリプトのサポートであります。
もちろんビューのコンポーネントでタイプスクリプトを書くのは、
スクリプトタグにtype="ts",を追加するのと同じくらい簡単ではありますけど、
しかしテンプレートやストアの内部ではそのサポートに問題があります。
ビュー2の最大の課題はそこだと思いますね。
要はタイプスクリプト自体なので、
ビュー自体がタイプスクリプトを対応したりサポートを導入することが簡単だとしても、
その周辺内部ですね。
特にやっぱりストアが一番辛かったというのが正直に僕も同じことを思っていて、
そこがやはり懸念になったと思いますね。
現在のフロントエンドのアプリケーションでは基本的に
SPUを作ることがほぼほぼデファクトになっているので、
ストアというのは本当に切っても切り離せないんですよね。
そこがタイプスクリプトの導入がきついというのはやはり
でかい要因というか原因だと思いますね。
はい。
続いてビュー3ですね。
ビュー3のソリューションの話です。
完全な書き直しというのはフレームワークの内部を
改善するいいチャンスでしたと。
タイプスクリプトが対応されてリアクティビティ機構を含む
多くの側面というのがゼロから実装され直しましたと。
これによってバンドルサイズ、初期レンダリング、更新、
メモリ使用量の面で既にパフォーマンスの高いビュー2よりも
大幅にパフォーマンスが改善されましたと。
めちゃめちゃいい話ですね。
さらに多くの新機能も追加になりましたよと言っています。
はい。
コンポジションAPIもそうですし、
FSFCコンポジションAPIとか、
シンタックス収穫ですよね。
スクリプトセットアップというのがありますけど、
そのコンポジションAPIでシンタックス収穫が
投入されていますよと。
あとはテレポートですね。
これもいいですね。
あとはフラグメント。
あとはコンポーネントオプションの発行、
エミットってやつですけどね。
あとはクリエイトレンダラーAPIとかですね。
これアットビュースラッシュランタイムコア
っていうのがカスタムレンダラーになりましたよ
ということですね。
はいはい。
これも結構面白かったですね。
あとSFCのステートドリブンなCSSバリアブルですね。
Vバインドがそのスタイルの中に、
スタイルタグでVバインドができるということですね。
あとはSFCのスタイルスコープというのが入って、
いわゆるグローバルルールとかスロットサイドコンテンツのみを
対象とするルールを含めることができるのが
できるようになりましたという感じですね。
好みによって分かれると思いますね。
学習コストの話がよく出てくるんですけど
別にVueとかReact使っても周辺ライブラリとかエコシステムの
学習したり調査をしたりとかその辺キャッチアップしたりすると
結局学習コスト全体っていうのは
アンゲラと別にそんなタイタナリで僕は思ってたりするので
あとそのAPIとか書き方とか公文とかに
好みがすごく分かれていてそこは多分アンゲラは弱いと
僕は感じちゃいましたね。
直感的ではないです。どう見ても。
というところがありますね。
ちょっと余談が過ぎるな。続けます。
アップデートですね。
アンゲラJSとの比較というのは多くのコメントを誘発しました。
私の個人的な経験ではどちらのケースでも移行は同じように
難しく時間がかかりかつ不明確でした。
いずれにせよこの記事のポイントはその間違いを二度と繰り返さないように
することなのでどうかそこから目を逸らさないでください。
ビューツリーとビュースリーと移行に対して
同じことがあるのでそこに対して二度とこの間違いを
しないでくださいと言ってますね。
間違いという言葉をこの人が使ってるのはなかなか
強いとは思いますけど。
またあなたがフルスタックエンジニアであれば充電法の前に
Pythonのエコシステムで同じ状況が起こったことを
ご存知でしょう。すみません僕はその頃Pythonを使ってないので
分かんないです。
Python3しかサポートしない新しいライブラリが
出現してしまったため約10年間多くのプロジェクトは
アップグレードすることができませんでしたと。
なるほどですね。
Pythonのメジャーバージョンアップの話か。
もちろんその後のPythonのリリースではバージョン3でしか
使えない新しい機能や素晴らしい機能が追加されるようになって
この厄介な状況はまだ本当に終わってないんです。
まだ終わってないんです。
Python3の環境って結構少ないと思うんですけどね。
でもまだまだ終わってないしPython2のライブラリを
そのまま残されているというのになると
割とエコシステムがまだまだ汚れているというか
ゴミが残ってしまったみたいな結果になっているような気がしていて
そこは大変ですしこの問題10年間まだずっと依存して
残っているというのがあるとやみやかいなと思いますね。
フレームワークのメジャーバージョンと言語の
メジャーバージョンアップとそれに対する変更というのは
やっぱりスケールのタイプが違いますよね。
言語まで行くインフラじゃないですけど
そこまでのレイヤーが低いところまで行ってしまって
メジャーバージョンの破壊的変更なんです。
それは大変なんだろうなとよくわかります。
新規プロジェクトであればPython3のものを使えばいいというので
スパッと解決はするんでしょうけど、2から3への移行を
まだ残している人もしくは2のアプリケーションとか
サイトがまだ残っているのであればそれは本当に
大変だと思いますね。
これと同じようなことがVueでもやっぱり起きているよ
という具体例のもう一つでしたね。
ラストですね。
The future. Will this happen again?
今後についてまた同じことが起こるのかなという話ですけど