実用的機能か、仕様一貫性か
今まではiOS/Androidアプリエンジニアだったが、9月から新しい環境で働いている。
全体としてはデータ分析の部署。ただし私のミッションは別だ。システム、というかソフトウェア開発を行うために入ったので、領域としては似ているが、モバイルアプリではなくてWebの人になった。
業務内外問わず、これまでWebのシステムに関わりはあったが、業務で本格的に実装に携わるのは初めてだ。これまでの充電期間でWebの勉強もしていたものの、特にフロントエンドの文化のおかげでツールの選定や使い方に時間を取られている。
それにしても、感じるのは、HTML / CSS / JavaScriptというブラウザ動作言語の扱いづらさである。今までは対岸の火事だったが、当事者になると溜息の回数が増える。プロトタイプが元々あり、ある程度の規模のコードなのだが、そこで使われている技術スタックを一通り試すだけでも結構時間を食った。
控えめに言っても、HTMLとJavaScriptでわざわざアプリを作る行為は、あまりにも原始的な行為にしか思えない…
— イロノワ (@ironoir) 2017年9月18日
元の仕様が汚いので、頑張って上にライブラリを乗せてもそのマズさが隠しきれない…
— イロノワ (@ironoir) 2017年9月18日
いくらなんでも、他の言語で長くやってるプログラマからしたら、相当辛いんじゃないのか、HTMLもCSSも
— イロノワ (@ironoir) 2017年9月18日
プログラミング言語に機能を求める人がいて、かたや体系を求める人がいる。私は比較的、後者だ。「何ができるのか教えてくれたら、整合性とか細かい仕様はどうでもいいよ」が前者で、「使い方はこっちが決めるから、ちゃんとした体系の知識を俺にくれ」というのが後者である。
「欲しい機能が実現できたらなんでもいいよ」という人が多数派だと勝手に感じているが、そういう人からしたら細かいルール(仕様)を気にする奴は「手が遅い」「細かい」と感じるのかもしれない。HTML / CSS / JavaScriptは、もともとそういう人たちが好んで使っていたのだろう。それも分かる。また、少しずつキレイな仕様になっている。物事は、そんなに単純ではない。
私は小さい頃から「物事の理解」=「体系もしくは概念の関係性の理解」だと(こういう表現を知らなかった時期から)考えていたフシがあるので、特にCSSの「わからなさ」がすごい。SASSもLESSも、そういう意味では「便利な機能をつけた」だけで、やっぱりわからない。とにかく、たくさん書いて、自分なりの落とし所を見つけるしかないのかもしれないね。やれやれ。