皆さんはバックエンド開発では何の言語を使っていますか?python?go?ruby?まさかJVM系(javaやkotlin)を使ってたりはしませんよね?
バックエンド開発において大事な2要素
1. 静的型付けの言語である
2. サーバレスに向いている(この記事の肝)
静的型付け言語について
なぜそんなにも静的型付けが大事か、それはAI開発との相性がばっちりだからです。
デバッグが速いとかのメリットもあったりしますが個人開発においてはこのAIとの相性というのがかなりデカいです。
型を作ることによって関数の戻り値を制限したりできるのでAIをプロンプト以外で制限することができるというわけです。(これが結構画期的)
サーバレスに向いているについて
どういうこと?サーバレスっていうのはデプロイ時のアーキテクチャだから言語は関係ないんじゃない?
そう思っていた時期が私にもありました。
結論めちゃくちゃ関係あります。それはサーバレスのイベント駆動という特徴が関係しています。
イベント駆動というのはユーザーからのリクエストがあったときに処理を行うのですが、一定期間リクエストがないとアイドル状態(サーバーを意図的にとめる)になります。
つまりリクエストなどがある度にプログラムが最初から実行されるわけです。
ここでJVM系などの仮想マシンを使っている言語は起動速度が遅くユーザーがリクエストを送ってから数十秒かかってやっとレスポンスが帰ってくるなんてことがざらにあります。そんなことしてたらユーザは離れていきますよね?
なので仮想マシンを使う場合は常時起動のサーバを使うわけですが、、そうなると費用が頭おかしいくらい高くなります。
## この二つを満たす言語がなかなかない
いやいやこの二つを満たしている言語であればgo言語だけじゃなくてもRustやC/C++があるじゃんと思った人がいると思います。正直に言います。
俺含めみんなそんな激むず言語使いたくないっしょ????
簡単で静的型付けでサーバレスに向いている言語はもはやgo言語くらいしかないといっても過言ではなりません。
結論
まあいろいろ言ったけどつまるところgo言語は貧乏な学生の個人開発エンジニアにかなり優しいといったところです。
(でもねサーバレスだとデータベースを外部で設置しないといけないからそこでお金かかったりは結構するよ)
費用を最小限にしてどんどんアプリを作っていき数うちゃあたる戦法でバズるアプリを作っていきましょう!!!!!