フロントエンドが嫌い に刺激されて私もフロントエンドというかJavaScriptに対する思いを綴ったポエムをば。私の立ち位置ですが、最近はぺちぱーでしこしこECサイト作っており、専業フロントエンジニアがいない程度の規模なもので、PHPエンジニア兼インフラエンジニア兼HTML・CSSコーダー兼JavaScriptエンジニアなどやってる…という感じです。要するに本業として触っているわけでもない私のフロントエンドに対する私の思いは大きく以下2つで、増田の方と似てます。
まず、JavaScriptフレームワークは使えないし使いたくないです。専業フロントエンドエンジニアいないのにReactやらVueやらに手を出すのは学習コスト高すぎて無理っす。また現実問題として、ページデザインは外注ということも多いので、もしこれらフーレムワークを使うならデザイン会社にそれを強制していくことになり、いくらなんでもそりゃ無理があります。結局のところデザイナーさんの共通言語であるjQueryに収束していかざるを得ないわけです。まぁデザインのためのJavaScriptもエンジニアでやる、JavaScriptフレームワークに置き換えていくというのは一つの解決策なんでしょうが、結局専業エンジニアがいないという問題に戻ってしまいます。
その他使いたくない理由としては、JavaScriptフレームワークの仕事がPHPフレームワークの領分と被ってしまっていることが挙げられます。PHPフレームワークでHTMLやらなんやらはいくらでもモジュール化できて分割していけるのに、その上にJavaScriptフレームワークを載せるのは役割がかぶってしまうだろうという予感があります。データはPHPで、DOMはJavaScriptで、とやればいいんでしょうが、正直PHPでDOMまで生成すれば良いものをわざわざ切り離す二重管理状態をやっていける気力があるか私にはかなり疑問です。ここら辺はバックエンドからフロントエンドまで完全にJavaScript一本かつ単一のコードベースで扱えるようになるなら良いなあと思いますんでAngular4なんかがもっと巨大になって全てを飲み込むのに期待です。
今後のJavaScriptとのおつきあい
ぶっちゃけjQueryバリバリのJavaScriptで特にビルドツールも使わずに生きていければいいんですが、どうもJavaScriptが少しずつ大きくなってしまっておりそうも言ってられない状況です。管理のためにまずWebpackに手を付けなければならないだろうという予感がひしひしとしています。いずれ管理のためにJavaScriptを細かくわけてモジュール化もしていきたいのですが、それを統合するのがPHP側で手動で書いたscriptタグとなるとやってられません。WebpackとかいうJavaScriptツールチェインの中でも最高に難しいに手を付けるのはかなーり気が引けますが、これ以外でまともな解決策になれそうな方法も無いので致し方なしです…
(いっそJavaScriptのビルドというかconcatを、PHPフレームワークのテンプレートエンジンでincludeやらなんやらを駆使してやってしまうという手もあるとは思います。CDNのおつきあいを考えるとJSはJSで固めてPHP側の変数が混ざらないようにした方がいいとは思うのですがもういっそ…という思いも無きにしもあらずです。
TypeScriptはWebpack導入後にさっさと導入したいですね。型のおかげでバグがなくなっていくのはとてもいいことです。脱jQueryについては今のところ必要を特に感じません。結局jQueryはVanillaJSの便利なラッパーでしかなく、つらいつらいDOM操作の悪夢に悩まされるのはJavaScript使う以上どれでも変わらないでしょう。それなら記述量の減るjQuery使えばいいじゃん派です。
それはともかくStandalone AMPが流行って欲しい
以上の記事を全部ぶった切った話ですが、それはともかくとしてStandaloneなAMPがもっともっと流行って欲しいですね!PCサイトからスマヒョサイトまで含めて単一のAMPページにしていくトレンドもっと流行って欲しい!
AMPはSEOを楯にしたグーグルのそれはそれは邪悪極まりないJavaScriptフレームワークであり、これに乗っかるのはグーグル一極支配をより受け入れていくことに他ならないのですが、PHPエンジニャーとしてはそれを遥かに上回るメリットがあります。だってJavaScript書かなくて良いんだもん。検索順位上がるよ!ってのを我らエンジニアも楯にしてどんどんAMP化を勧めていきたいですね。当然現状のスマヒョ版、さらにはPC版を置き換える形でね! (なお現実はスマヒョ版と並列でAMPが設置される苦しみ)
まぁAMPもいずれ一定の条件を満たすJavaScriptはOKになって苦しみが増していくんでしょうけど、今この瞬間の牧歌的空気をもっと満喫していきたいですね…