Instagram の若者離れ的な話が最近あるじゃないですか。 構造としては、若者発祥でとあるサービス流行る=>おじさん・おばさんがあつまってくる=>おじさん・おばさんが使うものはダサいので使いたくないと思い別のサービスを探す=>最初に戻るという構造ですよね、と。

エンジニアリング的な話も概ね一緒だよねっていう捉え方をしていまして。 おじさんが使ってる技術は若者からするとダサいわけです。いい技術かどうかは関係なく。 C++は良い言語になりました、PHPは良い言語になりました、Javaも良い言語になりました、と。でもよくなったかどうかの差分なんてどうでもよくて、古いおじさんが使ってる技術なんて使いたくないわけですよね。 僕の世代(‘77世代)でいうと、構造化もたいしてできないようなプログラマがうようよいたりSEとか言って上流工程だとか言ってる人たちがいたりしたのを、オブジェクト指向だ・パターンだ・アジャイルだとか言って駆逐したじゃないですか。それと一緒の構図かなと。

ここまでが前置きで。

最近5年後くらいを見据えて、今働いてる会社で次世代のサーバーサイドの言語何にしようかなと考えてるんですが、構造としてはだいたい見えてきましたと。

  • 今おじさんたちが使ってる言語は選択しない
    • C / C++ / Java / PHP / Python / Ruby くらいのところまでは切る
  • 関数型は選択しない(若者が使わない)
    • Scala / Haskell も切る

なので結論は

  • Swift
  • Kotlin

が最有力で、次点で

  • golang
  • Javascript

かなと。もしかするともう一世代新しい言語を選択した方がいいかもしれない、という可能性はまだ自分の中に残ってて

はいいかなと。

「いやいやお前、コンパイルする言語とか頭おかしいんじゃないですか」とかありそうですが、僕の反論としては、今のプログラミング言語のレイヤって一枚抽象化するのが当たり前になってきてるじゃないですか、ES2015 みたいな。気分としてはそういう感じになってきてると思うんですよね。 あと、あらゆる言語で JS でいう Browserify なレイヤも整備されるフェーズが必ずくると予想していて、例えば現代においては Server Side Swift って Linux だと Foundation がまともに実装されてないので import Glibc ですよねからはじまるわけですが、これもいいかんじに iOS でも macOS でも Linux でもみたいなレイヤか Browserify 相当が作られていくはずなわけです。 同様に Package Manager も、様々な環境に対応する前提のものが整備されていくわけで。 Web なフレームワークにしても、フレームワークの乱立が必ず起きるので Ruby でいう Rack あるいは WSGI なレイヤが出てきますよねと。実際 Server Side Swift の世界においても Nest が出てきてますね。

まあそんなわけで僕の主張としては、アプリを書く言語(Swift / Kotlin)でサーバーも書きたいですっていうのが普通になるという予測の元、そのどちらかにちょっと投資しようかなとおもっております。という話でした。