結構多く質問が来ます
バックエンドはどれを選べばいいのかと
なので記事にまとめておきます
結論から申し上げるなら「どれを選んでも大差はない」
ということ
初学者のうちに明確な言語の仕様の差を感じることはないでしょう
基本的にできることは同じです
構文が違うだけです
今回はそれぞれの特徴を考えてどういう方に向いているか?で考えていきたいと思います
Ruby

まずはRubyからです
僕はWeb開発をするときの相棒です
- 非常にシンプルな構文
- 超絶強力なRailsの存在
- 学習路線のブレがない
このあたりがポイントでしょう
今回紹介する言語の中では僕は一番構文がシンプルだと思います
非常に読み書きしやすいです
そして何と言ってもRailsの存在
これはWeb開発のFWなのですが、圧倒的効率よくWeb開発ができます
何かしらのCRUDアプリを作るなら雛形はターミナルにコマンド打つだけで完成します
また他の言語だといろんなFWが存在したりして、どれを学べばいいか悩むことになります
しかしRubyはRailsが一強であり、絶対的正義という思想が統一されており、RubyをやったらRailsをやればいいという形で学習に迷いがなくなります
むしろそのままのRubyを書く機会はなく、Railsの案件が10割です
学びたいことがWeb開発!とすでに気持ちが固まっている方におすすめです
PHP

PHPはRubyと並んでバックエンドの案件が国内では多いです
個人的には構文は読みにくいですが、これは個人差あるかと
今までいろんなFWがありましたが現在はLaravelが一強となっており、今から学習を始める人はLaravelを学ぶと良いでしょう
またそのままPHPを使って開発することもありますし、何よりWordPressの案件も狙えるのは大きいかと思います
Web開発だけではなく、WordPressなども手掛けたいという人におすすめです
Python

Pythonは現在最も人気の言語と言っても過言ではないでしょう
機械学習(AI)やデータサイエンスなど幅広い用途で使われ、案件の種類も豊富です
とにかく汎用性が高いですね
構文としてはRubyレベルにシンプルです
Web開発に関しましてはDjango、Flask、FastAPIと3つの主流FWが存在します
Flaskは割りと簡単な方だと思いますが残りの2つは少々上記で紹介した言語のFWより難しいと感じるかもしれません
Web開発以外にもやりたいことがあるという方にはPythonがおすすめです
しかし、Web開発と機械学習は同じPythonでも学ぶことが違いすぎるのでほぼ別物だと思ってください
Python学んだから両方できるぜ!というわけではないです
ベース言語が同じということです
Java

今回紹介する言語の中では最も難しいと言えます
構文が長く、初学者の方には相当高い壁に思えるかもしれません
しかしながら静的型付け言語に分類され、ルールが厳格で見えづらいバグを未然に防ぐことのできる言語です
なので教育用に用いられたりもします
ルールが厳格故に、バグを未然に防ぐことから安全で堅牢なコードが書けます
故に大規模なシステムを作るのに最適です
処理速度もかなり早いので
Python同様に汎用性が非常に高いです
Web以外にも色々とできます
WebではSpringBootというFWがを使って開発していくことがほとんどです
大規模なWebシステムで採用されることが多いでしょう
長い歴史で築き上げてきたたくさんの資産がJavaにはあります
Python同様にWeb以外にもやりたいことがある、大規模システム、金融システムなどに興味のある方はJavaをおすすめします
案件の多さはJavaScriptと並んでTOPかと思います
JavaScript

実はWebのフロントだけではなく、Node.jsというものを使ってバックエンドも開発できます
リアルタイム処理に強いのでチャットに向いています
たしかグラブルってゲームにも採用されていたような??
もちろんCRUDアプリもできます
通常だとWebのフロントにJavaScript、バックエンドに別言語となっていた所でしたがフロントからバックエンドを一つの言語でできるのは魅力だと思います
MERNという言葉があってすべてをJavaScriptで完結させて作るということです
JavaScriptは使える人が圧倒的に多いため開発が人依存にならないということが大きいですね
現在JavaScriptでフロントを開発している、一つの言語で完結させたいという人にはバックエンドをJavaScriptで作るのがおすすめです
Kotlin

言語として考えるなら僕は一番おすすめしたいですし、完成度が桁違いに高いと感じています
難しいJavaをシンプルに書こう!というスタンスでJavaと完全互換性があります
Javaが築き上げてきた資産をそのままシンプルなコードで運用できるというのがめちゃくちゃ大きいです
現在国内ではAndroid開発に用いられるというのが主流です
新しい言語のため、まだ他の言語と比べると開発実績が少ない、日本語の情報が少ないという欠点があります
Android開発だと日本語の情報も多いですがWebや機械学習、データサイエンスとなると日本語の情報は少ないです
まぁAI使って教えてもらうなら関係はありませんけどね
案件で見るとほとんどがAndroid開発ですがJavaで作ったものをKotlinに改修という案件もあります
Javaで作ったWebアプリをKotlinに変えてほしいという感じですね
マルチプラットフォーム開発といって異なるプラットフォームのシステム部分を一つのコードベースで作れます
iOS、Android、Web、デスクトップのシステム部分の開発を一手で担えるということ
これは大きいです
Webをメインに考えるならファーストチョイスにはなりませんが、Androidアプリや他のことがやりたい
Javaを学習していた、将来性の高い言語をやりたいという方におすすめです
静的型付け言語なのでエラー、バグにも強い安全で堅牢なコードが書けます
まとめ
冒頭で結論書いているのでまとめることがないんですよね・・・。
まぁ用途考えて選べばいいですよってだけですw
そんな感じでやってくださいなw
適当に思えますが所詮言語は手段の一つなのでそこに固執する必要はないんです
コメントを残す