サーバーサイドを開発するモチベーションはどこにあるの?

発端:

先日、会社の同僚(フロントエンド開発者)に「サーバーサイドの開発を行うモチベーションってどのあたりにあるんですか?」と聞かれたがうまく答えられなかったので一晩寝てから改めて考え直してみた

概要:

あまり意識したことはなかったのだけどそういえば「そういったことを考えたことはないな」と思ったのでそのときに思いついたことを同僚には伝えた。

伝えた内容は以下のようなものになる。

  • 設計が綺麗に出来たときのシステマチックな美しさ
  • コードの美しさ
  • 「こんなこともあろうかと!」が出来たときの達成感

ただこれらは自分で言っておきながらなんだがいまいちしっくり来ていないと感じていた。 どれも別にサーバーサイドでなくても出来る内容だし、帰ってから「(´ε`;)ウーン…」となったのでとりあえず寝て起きたときに覚えていればそのとき考えよう、ということで寝た。

このときの心境は「起きたときに気になっていれば「考える価値」のある疑問だろうし、覚えてなければ然程気にならない疑問だろう」と思ったのが1点。

当日、最近では珍しく寝付きが悪い上に、朝早く目が覚めてしまったので眠かったのが1点。

そしてこれが超重要なんだけど翌日の朝一で劇場版響け!ユーフォニアムを見に行く予定だったのでさっさと寝ないと!って感じだったからだ。

ちなみに先程映画は観終わった。 端的に言って、響け!ユーフォニアムの映画は最高だった。 このブログは映画をみたあとで以前から気になっていたカフェでお昼を食べて食後のフレーバーカプチーノを飲みながら書いている(ドヤァ

eonet.jp

読書カフェに良さげなところ見つけたかも。

ナスと挽肉のキッシュ

フレーバーカプチーノ頼んだら予想もしないものが出てきたw

ユーフォニアムの感想はまた別のブログ記事として書こうと思ってる、めっちゃ「やっていき感」が出るのでマジおすすめ。 でもTV版の1期と2期みてからでないと端折られているストーリーがわからなくて十全には楽しめないかも。 TV版みて面白かったと感じていた人にとっては非常によい劇場版になっていると思う。 ぼくは原作も読んだしアニメも何度も見返すくらいには好きなので非常に楽しめた。

閑話休題

さておき、朝になってもこの疑問は頭にしっかり残っていた。 なのでもうちょっと本腰を入れて考えようと思ったのでブログに書きながら整理をしている。

そんな書きながら頭の中に浮かんだワードや考えを整理しているのでかなり支離滅裂というかむちゃくちゃな流れになっているんじゃないかと思うが許していただきたい。

最初に結論

そんなこんなでいろいろ考えたのだけどぼくの中で「サーバーサイドをやっていく!」というモチベーションはあまりないのではないか?というのがぼくの中での結論だと思っている。 少なくとも現時点ではこれが一番現実に即した答えに近いのではないかと思っている。

結論に至った経緯

ぼく自身はサーバーサイドが好きだし、これからも開発していくつもりだ。 だけどそれは別にサーバーサイドに固執しているわけではないように思う。

まず「自分が作りたいサービスを作る」がまず大前提としてあって、その表現方法がたまたまぼくの場合はサーバーサイドの開発であることが多いということなんじゃないかな。

なので「ゲームが作りたい!」ってなったらSwiftやAndroid触るし、フロントエンドでこれを表現したい!ってなったらReactやVue.js、Angularなんかも手を出すんじゃないかなーと。 ただその中で一番自分が得意なのがサーバーサイド開発で、それで表現することを楽しんでいるだけでモチベーションそのものはあまりないように思う。

その他に考えられる影響としては、ぼくが「インターネットが大好き」というのがあると思っている。 なのでインターネットを介したサービスを作りたいと思うことが多いのではないかな。

これは間違いなのかもしれないがサーバーサイドは妄想できる幅が恐らくフロントエンドよりも広いのではないかと思ってるところはあるかもしれない。 フロントエンドは書いたものがすぐさま画面に反映される。 逆にいうと妄想できる余地が少ない、というように感じているんじゃないかなと思う。

これはぼく自身のJSの理解力が低いからそう思ってるだけでJSの表現力は非常に広いと思う、だがその想像出来る範囲が狭いためいまいち妄想の余地が少なくなってしまっている、という可能性が大いに有り得ると思っている。 というか恐らくそうだろう。

かなりの期間JSに苦手意識があったことも手伝ってJSから身を潜めていたのだけど、最近のJSの書き方や思想、新しいAPIなんかはワクワクするものはある、と感じている。 ただじゃあそれを使ってなにかを実装したい!という欲求はサーバーサイドに比べて圧倒的に少ないのがぼくの実情である。

その点、サーバーサイドは「ここの部分をS3にして普段はキャッシュを参照させる」「ここの部分はスケールしやすいように設計をして必要なときだけこの部分に更新をかける」などの妄想できる範囲が具体的で、妄想が捗りやすくて楽しいと感じている。 この機能を実装したい、この設計に変更してパフォーマンスをあげたいなどなど。

サーバーサイド開発はとかく扱う範囲が広い。 コンピューターサイエンス的な合理性とシステマチックな解決策が用意されているのもぼくの好みに合っているのかも。

この辺はいくらでも理由が出るけど恐らく決定打ではない類の理由だと思う。 同僚に答えたのもここの部分での解答だったのでしっくり来なかったのかなと思う。

イシューではなく手段、メソッドで答えてしまったので芯を食った解答にならなかったのだと思う。

まとめのようななにか

なんだかだんだん脱線してきて支離滅裂になってきたが多分「妄想できる余地がある」「作りたいものがWebサービスに集中してる」というのがぼくの中でのモチベーションになってるんじゃないかなと思う。

なのでぼくの中で「サーバーサイド開発のモチベーションはほとんどない、ただ実現したいことがサーバーサイドで表現するのが一番面倒くさくない」というのが現段階での最適解になる。

この手の考えは変遷しがちなので半年後とかに改めて聞かれたら解答が変わっているかもしれない。 そのときはまたブログにでも書き出しておこうと思う。