ウェブフロントエンドの技術の進歩と興亡の速度には目を見張るものがある。
browserifyが生まれ、Gruntが生まれ、Gulpが生まれた。
そしてその全てが死んだ。
Webpack, Babel, Flow, 今栄えている技術だってそのうちに死ぬだろう。Reactだって例外ではない。
一部はもう死につつあるし、少し前にあれだけ持て囃されたTypeScriptも今や消えつつある。Coffeeは全エンジニアから嫌われた。
そんな万華鏡のように目まぐるしく変わる情勢に追い付かんと研鑽を続ける者等がいる。アーリーアダプターを自称し最新技術のケツを追いかけQiitaにクソを垂れ流す彼らこそ我らがイケイケウェブフロントエンジニアである。
最新技術に目を凝らし、やれ新たなこれイケてるだの古臭いあれはイケてないだのと宣いチュートリアル記事を量産する彼らであるが、彼らの存在は決して無駄ではなく、生まれたての技術の知名度は彼らにより上げられる。
それはやがて大きな同調圧力的空気となって流行った技術を押し流す。
さて、少し話は変わる。
書いてしまったソースコードと拭いきれない遺物と化したクソの塊だ。
ウェブサービスはただ作って終わりではない。その先にあるのは長く続くメンテナンスだ。
少し例を挙げたい。あるところにイケイケウェブエンジニアのあなたがいたとする。
ある日あなたは上司からあるウェブサービスを作ってほしいと頼まれ、それを引き受けた。
さて、サービスを作るにあたりあなたは使用する技術を選定する。イケイケウェブエンジニアのあなたはとても流行に敏感だ。勿論jQueryを使い泥臭くDOMを弄くり回すことなどあってはならない。
あなたはESの最新規格に準拠したコードを書き、Flowtypeで静的型検査を行い、Angular4を使うことにした。
勿論そのままではブラウザで動作しないためWebpackとBabelを駆使してトランスパイルする。
数週間後、めでたくサービスは完成した。
あなたは脳内で試算する。時間と手間は掛かるが可能だと判断したところで、はい、と答え一年ぶりにプロジェクトのソースコードを開いた。
一年後の未来の世界では Webpack2 など既に新しく現れた技術に叩き潰され醜く断末魔の鳴き声を上げる死に瀕した哀れなヒキガエルの如き存在だった。もちろんAngular4はもう誰も使おうとはしない。
もちろんあなたもそれらを過去の存在へと葬り去った新技術に首ったけだ。
一方は、クソだクソだと悪態を付きながらもはやメンテナンスもされていないクソプラグインの体系化されていないクソドキュメントとにらめっこをしながら古臭いクソの塊と付き合っていくこと。
もう一方は、新たに聳え立った最新のクソの塊に無限に移植を続けることだ。
前者を選んだあなたは時間が経つごとにまともな情報を得られなくなり、やがては身動きが取れなくなった段階でようやく最新技術への移植を考えはじめる。しかし、その頃には膨れ上がった旧時代のクソはそんなことを容易に許してはくれやしない。
さて、後者を選んだあなたを待っているのは無間地獄の如き最新技術の濁流だ。それに揉まれながら一年ごとに、古臭きは悪だと声高に叫びながら無限の移植作業を行うことになるだろう。
あなたがクソと罵り選択肢からも除外されたjQueryである。一年後の未来であってもjQueryはそこにあった。もちろんクソと野次られながら。
けれども一年前のあなたはjQueryを使ったコードが読めるし、今のあなたももちろん読める。一年後のあなたは疎か、三年後のあなたの後継ですらも (泥臭くDOMを弄るコードに閉口しながらではあるが) やはりあなたの書いたコードを読めるだろう。
JavaScriptはDOMを書き換えるためだけに存在している書捨てのクソ言語であって、サーバーサイドを書くために存在している言語でも、100万行からなるバベルの塔の建設に耐えうる言語でもない。