フロントエンドへの複雑化について、一つの視点

これらの件

前提

去年は勝手Reactエヴェンジェリスト(自称)として、日本に複雑化するフロントエンド技術の海外の動静を紹介をし続けていた。

僕としても、フロントエンドは複雑化してると思ってるし、それは「目的の複雑化に対して必要なもの」だったと思っている。ここでいう目的とはSPAの構築であって、普通のウェブサイトは含んでいなかったが、普通のウェブサイトも当たり前のようにリッチ化目指しているのが現在なので、境目は曖昧ではある。

僕もフロントエンドの複雑化がだれにでも必要なものだとは思っていない。が、定期的に情勢を整理して、交通整理するのを心がけてきたし、春からはじめるモダンJavaScript / ES2015 - Qiita みたいな記事を書いたりした。

で、現在誰でもキャッチアップする価値がある技術としては

  • ES2015: 仕様化済み
  • npm: エコシステム
  • browserify | webpack: ビルドツール

を挙げてる。まあその詳細については↑の記事を読んでくれという感じ。

それに比して、フレームワークを使うべきかは人によるとしか言いようが無い。ReactもReduxもAngularも、僕は「普通のウェブサイトを作ってる人」は無視して構わないと思う。僕は仕事、というかQiitaの開発で「普通のウェブサイト」に部分的にReact入れてるけど、これはこれでフロンティア感があって、悩ましくて毎日試行錯誤してる。(その部分についてはあとで雑誌の記事なりQiitaなりでまた書くと思う)

あとはTwitterから

注: スタートアップ界隈での話。大きな会社ほど専業化の傾向は強まる。

注: さすがにポジショントークすぎますね…

サボったこと

そりゃね、可処分時間でゲームやらずにサボらなければ今苦手としているDockerやAWSの運用もMySQLの効率的なクエリも雑ではないちゃんとしたCSSRailsのテクニックももっと高いレベルで身についたと思う。

だけど、相対的に興味ないことを、モヒカン的に全部やれって言われるの辛いんで、全てはスキルツリーと可処分時間のバランスの問題で、僕はフロントエンドのスキルに僕が必要と思うだけ時間割いた結果やっぱ他のスキルおざなりになってるのは自覚しているところですけども、その分踏み固めるんで、僕の学習成果は公開するし、他の人が効率的にそれらを消費して欲しいと思ってる。

フロントエンドエンジニアの審美眼

あとまあフロントエンドを名乗るエンジニアの平均的な技術力が低いことは僕も認めるところではあるんだけど、これはJSが元々「サーバーサイドもしくはデザイナが片手間にやる」時代の変遷から仕方なくて、そのせいでコミュニティとして技術的な審美眼が欠けてるから、使えるものと使えないものの見極めに時間掛かって収束しない、という傾向はある。これが一番悩ましい問題だとは思ってる。

で、「真っ当な」エンジニアからはJS界隈がまるごとそう見えるだろうと思われるであろうのも自覚している。じゃあ何を信用するかというと、時間による淘汰をみてくれとしか言えない。フロントエンドの複雑化の流れは2012年頃のnode.jsのフロントエンドへのフィードバックから始まるので、そこから生き残ってる奴はまあ使えるんじゃないの、って感じ。

つらさ

どのライブラリとは言わないけど、「これやばいだろ…」、ってライブラリに釣られて皆ホイホイ釣られていて、「あ〜う〜んやりたきゃいいんじゃないの、ダメだと思うけど…」みたいなスタンス僕は取ってること多いんだけど、そこでそのライブラリについて悪くいうと、僕がReact押しだったのもあって、なんか政治的な色彩とか帯びてしまって、やりづらいっすね。つらい!