プログラムでソフトウェアを作るとき、技術要素や作り方は日進月歩で多様性もありすぎて、何でもいいと思えるようになってきた。
「バックエンドは○○で、フロントエンドは××で」みたいな話をよく聞くし、どうしたらいいと思うか聞かれることもあるんだけど、「なんでもいい」みたいな答え方をしてしまっている。
決して投げやりではなくて、合理的で経験もあるエンジニアがネットで調べて見つけた3つくらいの選択肢だったら、どれでもいんじゃねと思う。(そもそも界隈じゃない人に対してはゼロベースで助言するけども)
理由は、「どれを使っても、出来栄えに影響しないから」
これに尽きる。
良いアーキテクチャを使えば良いシステムが作れる(言い換えれば、優れたアーキテクチャでなければ優れたシステムは作れない)時代も、確かにあった気がする。
たとえば、ダイナミックな UI/UX を作りたいと思えば、ブラウザにプラグインが必要とか、アプレットが必要とか、非同期的な実装が必要ならサードパーティが必要とか。
もっと言えば、良い機械がなければ、大きいシステムが作れないとか。
でもそういうのは終わったよね。
逆に、「出来栄えに影響」するのは、動機(Why)であると感じる。
どうして作るのか、誰が幸せになるのか、君はどうしたいか。またそれはなぜか。
ここがブレず、かつ素人集団でなければ、たぶん大丈夫。
Howにばかり答えを求めても意味がない。Whyをもっと議論しよう。