フロントエンドという領域の不明確さ
フロントエンドとはどこまでのことを指すのだろう?
仮にユーザーが接するインターフェースを作成している部分とすると、その責務を遂行するための技術はかなり変わってきている。
Webにおいて、ユーザーが接するインターフェースとはブラウザである。そしてそこに表示されているのはHTMLである。
それが現在では、サーバーからは必要なデータのみAPI経由で返し、クライアントサイドで(JavaScript)でHTMLを構築する流れが主流になりつつある。
JavaScriptは画面の装飾だったり、軽いDOM操作を行うためのものとして、エンジニア以上にデザイナーが触ることも多い。
サーバーサイドで頑張ってきたエンジニアと、デザインとマークアップ周りで頑張ってきたデザイナーのちょうど中間に、それは位置している。
どちらがやるべきか?という議論はひとまず置いておく。
今回問題にしたいのは、どちらもやってないというパターンが結構多いのではないかという話。
SPAの存在
フロントエンドの技術の速さについて色々記事が上がっているが、その中核を為しているのはシングルページアプリケーション(SPA)だと思っている。
SPAを構築するために様々なフレームワーク(ReactとかAngularとか)が出てきたし、その煩雑さを解消するためにCommonJSスタイルの実装が必要となっている。
そこでbrowserifyやWebpackといったブラウザ用にコードを変換するツールが出てきて、もはやNode.jsをクライアントサイドのために使う時代になっている。
従来のフロントエンド開発とはずいぶんかけ離れたものである。
なぜ、フロントエンド格差が生まれるか
やはり起因はSPAだと思っていて、例えば企業のランディングページだったりキャンペーサイトを量産するような仕事ではこれらの技術は正直使いどころがないだろう。
そして、思うに、従来のサーバーサイドでHTMLを構築するスタイルでも、正直ユーザーからしたら普通にストレスなく使うことができるため、そもそもSPAに移行する必要はないのではないか?という層が一定以上いる気がする。
SPAになるとルーティング等もすべてクライアントサイドで行うので、色々と考えないとならない点が増える。(権限周りとか、データの持ち方とか)
そういった工数的なコスパ問題から、従来のままで良いと思う層がいるのは、まぁ当たり前かなとも思う。
そしてフロントエンド技術の知識差がどんどん拡大していっている。
一昔前、テーブルレイアウトで人々はWebベージを構築していた。
そこにCSSという技術が突如現れ、テーブルレイアウトを駆逐していった。
それと同じような波が来ていると感じているが、その波に気づいてない人もまた、大量にいるという印象。
エンジニア「JSでしょ?自分には関係ないかな!」
デザイナー「自分、jQuery止まりなんで…」
という感じで双方我関せずなパターンが多い。
どうしたもんですかね。