はてなキーワード: Gruntとは
>スキル
JavaScript / jQuery / TypeScript / HTML / CSS / Sass / WordPress / ActionScript / Flash / PHP / grunt / gulp / webpack
門外漢からするとこんな風に聞こえてる。(所々適当に書いてるし書いてる内容は嘘デタラメ)
「gulpでbowerしてsassをgruntでビルドすれば、cssがストリーミング形式でデタッチされるから便利だよ。それにgulpはCoffeScriptとかtypescriptみたいな流行りのサードパーティも従来のJSみたいに変換してくれるしウォータフォールじゃなくてアジャイル的なプロジェクトでも使いやすい。スクラッチから書かなくてもいい感じにアジャストしてくれるよ。あと、OSSとしてgit上に上がってるんだけど、DLなんかもAWSと連携させてWebGLとTensorflowやらchainerやらと組み合わせればブラウザでDQNとかA3CとかDCGANも動かせるスクリプトがリリースされてた、バックエンドではDNNを走らせてフロントで表示する分をNode.jsでカスタマイズしたりタスクランナーでプロセスをマネージメントできるからもはやjsでtensorflowを含めたpythonのラッパーみたいな感じで使えて便利。最近ではbluemixがBitcoinのマインングをサポートしていてブラウザ上でウォレットからマイニングのセットアップまでできるんだって、ブロックチェーンの仕組みを拡張して社内のタスクマネージャーとかNAS上のデータを分散してサーバーに保存できるみたいなこともあるんだって。」
ウェブフロントエンドの技術の進歩と興亡の速度には目を見張るものがある。
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万行からなるバベルの塔の建設に耐えうる言語でもない。
いわく
等々上げればきりがない。
こういう人達に共通しているのは、知識の根っこにある方が上だと思っていることだ。
プリミティブなことをやれば数学の公式のごとく、下流にあるすべてを把握できると思っている。
もうやめませんか、そういうのは。
知識がツリーになっていることは純然たる事実だ。新しく見える知識でも昔の知識をちょっと変えたものだったりするのは確かだ。
だけど、そんなのは当たり前の話なのだ。それぞれの知識はレイヤーで重なっていて、それぞれの役目を果たしている。
知識のツリーというは一種の生態系なのだ。シマウマはライオンに食べられるが、動物的にライオンのほうが優れているということはない(←(`・ω・´)お前それサバンナでも同じ事言えんの?)。
生態系と違うのはそれがものすごいスピードで起こるということ。だから時間が経てば今ある最上位のレイヤーの上にも更にレイヤーがどんどん重なっていく。
javascriptがいい例だと思う。
昔はブラウザでさえまともに動かせなかったが、node.jsやbowerやgrunt,gulpができて、javascriptというレイヤーの上に積み重なっていった好例だと思う。
つまりそういうことなのだ。あるレイヤーで満足してしまうと、いつの間にか最上位のレイヤーがはるか上の方にあって浦島太郎になっていたりする。
今の話題についていけずに、若者をひがんだりする。今お前らがやっていることはワシが育てたと言いたくなる。かっこ悪い大人の完成。
でもそれはしょうがない面もある。
おじさん達が若い奴らと一緒に知識を追いかけるのは無理があるからだ。走り続けるのには体力がいる。背負わなければならないものも増えてくる。
生物として、自分がやっていることが無意味だと言われないように、追い抜かれないように、必死なのだ。
だから知識のツリーを優劣と混同して、たとえ追いぬかれても自分の存在価値を示せるように攻撃を行うのだと思う。本来は全く逆なのに。
(※すべてのおじさんがこうだとは言いません。最後尾から安々と追い抜いていくすごいおじさんは確かに存在します。)
話を元に戻す。新しい知識の話を聞いたらどうか偏見を持たないで聞いてほしい。それはもう自分ではどうしようもなく、手が届かないかもしれないけど。
少なくともそれは優劣の問題ではない。別のレイヤー、次元の話なのだ。
そしてもし自分が持っている知識のさらに上にあるレイヤーの話をされたら喜ぶべきなのだ。
どんなレイヤーの知識も一つ下のレイヤーに依存していることは確かなのだから。
---ーー
流行を勉強しないやつとは仕事したくない
最低限下記は知っててほしい
プロマネならアジャイルサムライとかチケット駆動開発とかリーン・スタートアップとか読んどけ。頼むから。
頼むからこれぐらいは知っといてくれ。確かに流行り廃りがあって、追っていたものが崩壊したときツラいのはわかる。
しかし、上記はもはや流行りでも枯れてきてデファクトスタンダードになっているものばかりだ。
設定ファイルはバージョン管理しちゃうとまずいだろとか、本番とは違うからローカルは自分で手作業で変えろとか、何言ってんだおまえは。オーケストレーションツール使え。
クライアントが困ってるのに、オマエの環境で再現しねーとかあたりまえだろ。自分で環境かえてんだから。同じにしろ。
リリース対応に20時間かかるとか何馬鹿なこと言ってんだ。10人体制で20時間とか1リリースで予算300万超えかよ。本気かよ。
細かくリリースしろ。まとめんな。だから不具合もでかくなる。文言修正だけで3ヶ月待たせるな。機能の追加と軽微な修正は別だ。
あとエクセルやめろ。最初はいいけどメンテがつらすぎる。バグ管理やテストや設計図なんかはもはやそれ用のオンラインツールあるやろ。それ使え。
もう少し最新のヤツは勝手に追え。
俺はそれらがデファクトスタンダードになるかコケるかは責任もてん。