Webのフロントエンド開発に関する所感
React、Vueの拗れてる感
最初はどちらもシンプルでとっつきやすかったけど、
ユーザーが増え、要求が増えていくうちに、関連ライブラリも増えて、
今では、それが敷居になっているとさえ見える。
利用者が増えれば、そして、使い込めば要求も増えてくる。
最初みえなかった課題も見えてくる。
それは当然のことだけれど、果たして、シンプルにGUIを開発する上で、
最善の選択肢なのだろうか?
勿論、betterな選択肢ではあると思う。
いつか来た道だけれど、昔、Javaとオブジェクト指向が持ち上げられていた時代があったが、
それと同じく、段々、それを使う人が増えたり、使いみちが深化してくると、複雑化していき、
いつしか、次世代の人からは敬遠されてくる。
React、Vueもそうした既視感がある。
新しくて楽になるもの。新しいけど複雑なもの。
ソフトウェア技術者、特に、Webの開発者としては新しいものへのキャッチアップは一つの義務みたいな風潮さえある。
「新しい」というのは本当はあんまり評価に値せず、
「より工数が減る」か否かが大切な指標。
たまたま、そういうツールが生まれたとき、「新しい」という属性が付加的についているだけ。
「新しいからよい」のではなくて、「良いもの」がとりあげられるときに「新しい」というだけ。
Svelteは、シンプルさを切望するから生まれたものかも。
Svelteは既存のコンポーネントライブラリよりシンプルであることを売りにしている。
たしかに、VueやReactのよいところをとってシンプルにしているようにみえる。
どちらかというと、Vueに近い印象がある。
Svelteそのものは置いといて、それが生まれるということは、どこかに
React、Vueへの不満もあるのではないかと思っている。
Reactはエコシステムというよりも、もう、ジャングルやアマゾンのようなライブラリ群になり、
数年前もてはやされていたものが、問題があるからと新規では採用されなくなる。
そして、それを繰り返している。
これは、Reactに限ったことではないのだけど、
ユーザーやユーズが増えると、こうした複雑化は避けて通れないのかも。
長期的には実装より仕様・設計:ソフトウェアのDNA
ReactやVueは、DOMの操作だけではWebのフロント開発は効率化しないという「設計思想」から、コンポーネント指向という設計を取り入れた。
React、Vueそれぞれには良さがある。
それは、実装そのものよりは、「仕様・設計」としての良さ。
実装は、後方互換という純粋にそのライブラリが解決する課題とは別のロジックをもつことになり、段々、本来の目的から違った様相を呈することがある。
ただ、その実装があるからこそ、新しい「仕様・設計」が具現化する。
そして、後発のライブラリは、こうした過去のライブラリの「仕様・設計」をDNAのごとく引き継ぎ、無駄を省き、新しい「仕様・設計」を実装を繰り返して探求する。
ソフトウェアは、「仕様・設計」というDNAを、ライブラリの栄枯盛衰を通して、紡いでいる。
今あるものもいつか廃れるが、それは「実装」が廃れるだけで、
「仕様・設計」が廃れているわけではないのかもしれない。