たとえるなら
英語・中国語・フランス語のような、言語の違いだと思ってください。伝える相手(コンピューター)は同じでも、話す場所や目的によって使い分けます。国際会議では英語が便利なように、Webの画面ではJavaScriptが便利、といった具合です。
もう少しくわしく
プログラミング言語は、コンピューターにやってほしいことを正確に伝えるための言葉です。コンピューターは「いい感じにやっておいて」という曖昧な指示を理解できません。「この数字とこの数字を足して、結果を画面に表示する」のように、手順をひとつずつ、決められた文法で書く必要があります。その文法のセットがプログラミング言語です。
言語は数百種類ありますが、現場でよく使われるものはある程度限られています。Webページの動きを作るJavaScript、データ分析やAIの分野で人気のPython、大規模な業務システムで長く使われてきたJava、iPhoneアプリのためのSwift、Androidアプリで使われるKotlinなど、それぞれに得意な分野があります。作るものの性質に合わせて選ぶのが基本です。
混同されやすいのがフレームワークやライブラリです。言語は文法そのもの、フレームワークはその言語で開発するための土台、ライブラリは呼び出して使う部品集です。「JavaScriptが書けます」と「Reactが使えます」は別の話で、求人票では両方が並べて書かれます。HTMLやCSSも言語と呼ばれますが、手順を書くものではないため、プログラミング言語とは区別されます。
現場では、プロジェクトの立ち上げのときに使う言語を決めます。判断材料になるのは、作るものの性質、チームが書ける言語、そして長く保守できるかどうかです。いったん決めた言語を後から変えるのは、作り直しに近い大工事になります。すでに動いているシステムの改修に入る場合は選ぶ余地がなく、その現場で使われている言語を覚えるところから始まります。
学びはじめの落とし穴は、言語を次々に乗り換えて、どれも入門の途中で止まってしまうことです。文法を読んだだけでは書けるようになりません。小さくても自分で動くものを一つ作り切ると、力の付き方が変わります。もうひとつは、話題になっているという理由だけで選ぶこと。まわりに聞ける人がいない言語を選ぶと、詰まったときに前へ進めなくなります。参考にした記事や動画の情報が古いまま止まっていることもあるので、公式の解説に一度あたる習慣をつけておくと安全です。
働きはじめたばかりの人は、配属先で使われている言語を優先して覚えるのがいちばん無駄がありません。他の言語に興味があっても、まず一つを仕事で使えるところまで持っていくと、二つ目は驚くほど早く身につきます。エンジニアではない立場の人は、言語名を覚えるより「この言語は何が得意か」だけ押さえておくと、開発側との相談がかみ合います。
大事なのは、言語ごとの文法の違いは方言のようなもので、「手順を分解して考える」という根っこの考え方は共通だということです。人気の順位は時期によって動きますし、現場では複数の言語が同時に使われているのがふつうです。どの言語が優れているかという話より、目的に合っているか、チームで扱えるかで選ばれると覚えておけば迷いません。
現場での使われ方
「このプロジェクト、言語は何で書くんですか?」
開発で使うプログラミング言語は何かという質問です。答えによって必要な人材や開発のしやすさ、他社に引き継げるかまで変わるため、立ち上げ時の重要な決めごとになります。
「彼はPythonもJavaも書けるらしいよ」
複数のプログラミング言語を使いこなせるという技術力の話です。「書ける」は文法を知っているだけでなく、その言語で実際に動くものを作れるところまでを指して使われます。
「その処理はこの言語だと書きにくいですね」
言語ごとに得意不得意があるため、無理に寄せるより別の方法を検討したいという意味です。できないという話ではなく、手間が大きく不具合も出やすいという指摘になります。
「まずは一つの言語をしっかりやったほうがいいよ」
複数の言語に手を広げる前に、一つを仕事で使えるところまで深めたほうが早いという助言です。根っこの考え方は共通なので、二つ目からは習得の速さが変わります。
よくある質問
プログラミング言語はどれから学ぶのがいいですか?
作りたいものから逆算するのがおすすめです。Webサイトの見た目ならJavaScript、データ分析やAIならPython、というように選びます。迷ったら、文法がやさしく用途の広いPythonから始める人が多いです。入る現場が決まっているなら、その言語が最優先です。
プログラミング言語は日本語で書けますか?
主要な言語は英単語をベースに書きますが、必要な英語は中学レベルの単語が中心です。英語が得意でなくても、よく使う単語のパターンを覚えれば十分書けるようになります。エラーの文章を読むときは、翻訳の助けを借りてかまいません。最初は英語の表示に驚きますが、慣れれば大半は同じ言い回しです。
言語とフレームワークの違いは何ですか?
言語は文法そのもの、フレームワークはその言語で開発するための土台です。日本語(言語)と、報告書のひな形(フレームワーク)のような関係だと考えるとわかりやすいです。求人票では両方が並べて書かれることが多いので、区別して読めると、求められている力を正しく見積もれるようになります。
一つ覚えれば他の言語も書けるようになりますか?
そのまま書けるわけではありませんが、二つ目以降はかなり楽になります。手順を分解して考える力や、変数・条件分岐といった共通の考え方は使い回せるためです。文法の違いを調べながら書き進められるようになり、必要になってから覚えても十分に間に合うので、焦って何種類も手を広げる必要はありません。
使う言語はどうやって決まるのですか?
作るものの性質、チームが書ける言語、長く保守できるかどうかで決まります。すでに動いているシステムに入る場合は選べないことも多く、その現場の言語を覚えるところから始まります。途中で別の言語に変えるのは作り直しに近い大工事になるため、最初の判断は慎重に行われます。