日常

プログラミング・海・植物・サッカー・家のこと

サーバーサイドエンジニアの言語遍歴

7年くらい主にサーバーサイドでエンジニアをやってきた
ふりかえるといくつかの言語を色々な理由で使ってきたのでまとめる

Java

2015〜16年

初めて入った現場(金融系)で使ってた
独自フレームワークが使われてた

次の現場(転職サイト)もJava
Spring・DBFluteを使ってた

未経験からエンジニアになったので、プログラミングの概念の理解が大変だった
今でもJavaを使うシーンはある

Python

2017年

Flaskで書いたアプリケーションをZappaでAWS Lambdaにデプロイするというスタック
当時サーバーレスが流行ってたし、かなり楽しかった

入門Python3を読んで案件に入ったが、特に困ることはなかった
言語仕様がシンプルで個人的には書いていて違和感が無いというか、しっくりくる印象がある
ちょっとしたスクリプトを書くのにも便利

Pepperのアプリケーション(Pythonで書く)を作る面白い案件も経験した

Kotlin

2018年

初めて自分の意思で選定した言語
GoogleAndroidの正式な開発言語としたり、Springが正式サポートしたりちょうど盛り上がってた時期
会社の標準言語とチームメンバーの技術スタック的にはJavaを選定するのが順当ではあったが、以下の理由からKotlinを選定した

  • Javaと100%互換でJavaの資産をそのまま使える
  • 型推論など簡潔な記述ができる
  • Null safety
  • Javaエンジニアであれば学習コストが低い

Intellijを作ってるJetBrainsが開発してるのも安心感があった
関数が第一級オブジェクトであること、豊富なCollectionメソッド、拡張関数など個人的に好きなポイントもたくさんある

おすすめの書籍はKotlinイン・アクション

Node.js

2019年

参画したプロジェクトの資産があるため選定
フレームワークはExpress

副業でも使用することがあり、フロントと同じ言語で書けるのが一番のメリットだと思う
TypeScriptを使うこともあるが、個人的には純粋な静的型付けの言語が好き

Go

2022年

Kubernetesのエコシステムを活用したプロジェクトのため、チームで議論して選定
実行速度、コンパイルが速い、クロスコンパイルできる、シングルバイナリにできる、言語仕様がシンプル、豊富な標準ライブラリなど良い点がたくさんある

言語仕様がシンプルではあるが、コードが冗長になったり、ポインタ、エラーハンドリング、ダックタイピングなど他の言語から移ってきた時に慣れが必要だとは思う

GoLandを使用
CLIのツールを作るのにCobraが非常に便利

おすすめの書籍はプログラミング言語Go

これの発売を楽しみにしてる