フリーキーズ | 独学プログラミング

プログラミング言語の選定で役立つ!27個のプログラミング言語を紹介

最終更新日
【画像】プログラミング言語の選定で役立つ!27個のプログラミング言語を紹介

コンピュータが登場して2023年現在までの間に、IT業界にはたくさんのプログラミング言語が誕生してきました。
このコンテンツでは、そういった数多くあるプログラミング言語の特徴と学習レベル別のおすすめをご紹介します。

先に結論だけ話しておくと、プログラミング言語は好みの問題なので直感で選んでもまったく問題ありません。むしろ自分が愛せる言語を探してください。流行り廃れよりも楽しくプログラミングできることが何よりも大切です。

「学習を始めたばかりでどのプログラミング言語を選べばいいかわからない」という人や「プログラミングには慣れたけど、勢いのある言語や用途を絞った言語を学んでみたい」といった人の参考になれば幸いです。

プログラミング初心者におすすめのプログラミング言語

HTML/CSS

いわゆるマークアップ言語と呼ばれるHTMLとCSSです。「プログラミング言語ではないからプログラミング言語と共に紹介すべきではない」とおっしゃる人もいますが、そのあたりの議論は好ましくないので省略します。

役割としては、HTMLはWebページの見た目の構造を定義してあげるもので、CSSはWebページの見た目の装飾をしてあげるための言語です。 たとえば「ここからここまでは文章の段落です」と示してあげたいときは p タグというHTMLを書きます。「この文章のテキストの色は青です」と示してあげたいときはCSSで color: blue を書きます。

とにかく早く「書いたものによって動く」を体験したい方はぜひ触ってみてください。HTML、CSSともに、インターネットに多くの日本語の情報があるので勉強には困りません。

PHP

PHPは代表的なWebプログラミング言語です。Web以外で使うことも可能ですが、Webに特化していると思ってOKです。

一般的な「データベースにデータを保存したりデータを取り出して表示する」といったことはもちろん、モジュールと呼ばれる拡張機能を使えば画像の加工なども可能です。

WordPressという世界で最も有名なブログシステムのベースとして使われているプログラミング言語でもあります。比較的勉強がカンタンなプログラミング言語なので初心者におすすめできます。

JavaScript/TypeScript

JavaScriptもPHPと同じく、Webに特化した言語でした。「でした」と過去形なのは、昨今さまざまなプラットフォームで使われることが増えたためです。

TypeScriptを並列に書いていますが、マイクロソフト社が開発したJavaScriptの拡張版です。コードを書くにあたって、より便利な機能が豊富なので、最近ではTypeScriptの案件がかなり増えてきました。

フレームワークとしてはReact.jsやVue.jsなどが有名で、実行環境ではNode.jsが有名です。こういったフレームワークや実行環境とセットで勉強することでより深く習得ができます。

Python

機械学習やAI、データ分析などのツールとして有名なPythonです。もはや説明不要かと思われるほど有名になりました。

とにかく書きやすい、読みやすいことが特徴として挙げられます。それだけでなく、ライブラリと呼ばれる拡張パッケージが豊富で、ちょっとしたツールからガッツリした業務基盤までカバーできるほどの力があります。

初期のInstagramやDropboxといった有名サービスでも使われていたことで知られています。ほとんどのパソコンに最初からインストールされているため、とりあえず触ってみる、といったときのハードルも低くておすすめです。

Ruby

日本国産プログラミング言語の中で最も有名なものがRubyです。一昔はよくPythonと比較されがちでしたが、Perlというかつて広く使われていたプログラミング言語の後継という立ち位置で開発されました。

Rubyも読みやすさと書きやすさは、プログラミング言語の中では随一なためとても人気が高く、日本語の情報も手に入りやすいです。

また、Ruby On RailsというWebフレームワークはWeb開発の現場でもよく使われています。freeeというクラウド会計システムをつくっている上場企業でも現役で使われているので、まだまだ学ぶ価値は高いと言えると思います。

Java

「どのプログラミング言語を学べばいいの?」という質問に対して、頻繁に名前が挙がるJavaです。先に話したJavaScriptと名前が似ていますが、まったく違うプログラミング言語です。

歴史の深さ、使われているシステムの多さ、機能の豊かさ、どれをとっても非常に高い位置にあるため、Javaはパソコンを触り続ける限り、必ずどこかで出会います。 その信頼性から、業務用システムに使われることが多く、ライブラリとフレームワークも豊富です。

Eclipseに代表されるIDEという統合開発環境を使えば、比較的お手軽に学習を始めることができます。フレームワークについては、SpringやStruts、Play Frameworkなどかなり種類がありますが、どのフレームワークもそれぞれ特徴があるので案件に合わせて選びましょう。

SQL

SQLは、データを保存するソフトウェアであるデータベースを操作することに特化したプログラミング言語です。SQLイコールデータベースに命令をするもの、という覚え方でOKです。

他のプログラミング言語と比べると、独特な書き方ではあるけれども、データベース内におけるデータの関係性をしっかり理解できていればとても使いやすい言語です。 他のプログラミング言語を使っていてもSQLにふれる機会は多々あります。

データベースエンジニアを目指す人やデータ分析を生業とするデータサイエンティストを目指す人は、最初から勉強しておくことをおすすめします。 機械学習などで使うデータの加工や整理といった作業はSQLだけでも完結できることも多いので、何かとよく使うことになります。

Swift

SwitftはApple社がつくり、MacOSやiPhoneなどに搭載されているiOSのためにつくられたプログラミング言語です。iOSアプリを開発する際には、別の言語で開発したとしても最終的にSwiftに変換します。

少し前までObjective-Cという言語を使っていましたが、より書きやすく読みやすいSwiftの登場でMacアプリ、iOSアプリの開発がグッとラクになりました。 日本語の情報も大量に探すことができるので、iPhoneを使っていて自分でアプリを作ってみたい!という人は楽しく学習できるプログラミング言語です。

Kotlin

Kotlinは、先に話したScalaと同じくJavaの環境上で動くプログラミング言語の一つです。Googleが正式に認定したことにより、KotlinイコールAndroidアプリ開発、というのが主流になっているため、主にAndroidアプリ開発で利用されると思ってOKです。

AndroidStudioというAndroidアプリ開発環境を使うことによって、気軽に開発を開始できることも大きなメリットです。 言語としては、やや特徴があるものの、さまざまなプログラミング言語の使いやすい機能が一通り揃えられていて、かなり高機能になっています。 かわいらしい名前ですが、コトリン島というバルト海にある島の名前が由来となっています。

中級者におすすめのプログラミング言語

Scala

先に話したJavaとの親和性が高く、連携が簡単なScalaです。Javaと比べて、書き方がいまどきっぽい雰囲気なため、JavaからScalaに移行する企業も多く見受けられます。

信頼性と書きやすさ、さらに頻繁に新機能がリリースされるということもあり、これからの成長性が期待されるプログラミング言語の1つです。「おかたく強い言語」と「軽めのわかりやすい言語」のハイブリッドなイメージです。

なお、JavaのPlay FrameworkはScalaにも対応しているため、Javaを勉強した次に学ぶ言語としてもおすすめできます。

Go言語

Googleが開発したことで有名なGo言語です。Golangという呼び方をすることも多いです。 シンプルな書き味と実行速度が売りなこともあって、Web界隈のみならず、ドローン制御などさまざまなシーンで利用されています。

日本での利用者もかなり増えたおかげで、情報の手に入れやすさも二重丸です。 ただし、シンプルといってもポインタやアドレスといったプログラミング初心者にはやや難しい概念も使われているため、初心者におすすめできるかといったらそんなことないです。

習得すればさまざまな企業や案件に携われる幅が広がることは間違いないので、他のプログラミング言語を勉強して基礎ができた後に学ぶのがおすすめです。

Rust

RustはGo言語と並んで最近人気がうなぎのぼりのプログラミング言語です。高い性能を持ちつつ高速で動作する上、システムプログラミングというコンピュータに直接命令するプログラムを書くのにも適しています。 この特徴が、C言語やC++に代わるプログラミング言語といわれるゆえんです。

また、組み込み系といわれる、一言で言えば機械やデバイスなどのいわゆるハードウェアに搭載するソフトウェアにも使われることが増えています。 インターネットと物理的なモノをつなぐIoTに興味ある人にはおすすめできる言語です。

C言語、C++

C言語とC++は、説明不要かと思えるほどプログラミング言語の代名詞的存在です。 C++はC言語を拡張したプログラミング言語で、より高機能ながらもより難解さが増しています。

コンピュータが生まれてから、かなり初期に生まれたプログラミング言語ですが、プログラミングを学ぼうとして最初に学ぶにはどちらも適していません。 かなり理解が難しいです。 ある程度、プログラムがなぜ動いているか、を他のプログラミング言語を学んでいる最中に少しずつ吸収した後に勉強することをおすすめします。 C言語から始めて挫折する人は多いです。

処理の速さはもちろんのこと、コンピュータに関して表現できないことがないと言い切れるほど汎用化されたプログラミング言語なので、深くプログラミング力をつけたい人はぜひ勉強してみてください。

C#

Javaと似ているといわれるC#ですが、実際はところどころ違う部分があるので学ぶときに混同しないように気をつけたいプログラミング言語です。 ゲームを作る際に使われるゲームエンジンのUnityを使った案件では、かなりの確率でC#が採用されています。 他にもスマートフォンアプリ開発で使うXamarinという環境でも使われています。

Visual Studioという統合開発環境で開発することで、かなり書きやすくなり生産性を高めることができます。 C++ に影響は受けているものの、学習の難易度ではC#のほうが学びやすいというメリットがあるので、初心者にもおすすめできるプログラミング言語です。

Dart

DartはGo言語と同じくGoogle社が開発したプログラミング言語です。ウェブアプリやモバイルアプリのフロントエンドという、ユーザーが触れることのできる部分を開発する際に主に利用されます。 DartそのものがJavaScriptやモバイルアプリのソースコードへ変換できるようになっているため、一つの言語でマルチプラットフォーム開発できるようになっています。

Flutterという開発キットと一緒に開発に使われることがほとんどで、Flutterを使うことでより多くの機能を手軽にアプリに組み込むがことができます。 最近新しく開発されたスマホアプリでFlutterが使われているものがかなり増えたこともあり、スキルとして習得しておきたいものの一つです。

R言語

R言語は統計解析と視覚化に特化したプログラミング言語です。統計学を仕事で使っていたり、学んでいたりする人にはうってつけのツールとなっています。 R Studioという開発環境を使うことで、コードを書いてからグラフ化するまでを手軽にできることも特徴です。

よく「Pythonでいいじゃん」と言われたりしますが、Pythonの実行環境よりハードルが低いこと、さくっと手軽にグラフ化までを実行できることなど、利点も多くあります。 その代わり、ほぼ統計とその視覚化以外に対する汎用性が低いこと、言語としてPythonよりコードが複雑化しやすいことなどデメリットも存在しています。

ガツガツ統計解析して結果を示さなくてはいけない、といった現場で使われています。 案件や使っている会社の数が少ないため、扱うエンジニアの数こそ相対的に少なくなっていますが、データサイエンティストを目指す人には特におすすめできる言語です。

上級者を目指す人におすすめのプログラミング言語

Erlang

Erlangは多くの通信の基盤となる分散システムを構築する並行処理を得意とする信頼性の高いプログラミング言語です。はじめに言っておくと、学習はかなり難解です。 大規模な通信が発生するシステムだとその恩恵をフルに使うことができますが、個人開発や独学では何ができるのか、を理解するところからハードルが高めです。

主な使い所として、ゲームの通信基盤部分に使われています。 データや通信の流れを一通り理解したあとに学べば、少なくとも利点を理解できる、といったレベルなので、ある程度の経験を経てから学習しましょう。

Elixir

ElixirはErlangの環境上で実行できるプログラミング言語です。Erlangをより親しみやすいものにしてくれます。 書き方としても日本人には馴染み深いRubyと似ているため、Erlang単体で学ぶよりもグッとハードルが下がります。 ただし、環境自体がErlangのため、Erlangをまったく知らない、という状況だとエラーが起こったときに困ります。Erlangに対する知識がほぼ必須なプログラミング言語といって良いでしょう。

使い所として、ネットワークサーバを構築する際には有用です。 初学者の方にとって最初に選ぶプログラミング言語になることはほぼないと思いますが、こういった用途が明確なプログラミング言語もあると覚えておいて損はありません。

Common Lisp

存在だけ知っておいてほしいプログラミング言語のLispです。Common Lispと書いているのは、Lispというプログラミング言語はさまざまな仕様があり、「これがLispです」と名言すると誰かに怒られそうだからという理由です。

書き方が独特なプログラミング言語を挙げろ、と言われたらまっさきに候補にあがります。カッコで表現する部分が多いのでコードを読みづらいです。

なぜLispを紹介しているか、それは僕がEmacsというエディタを使ってプログラミングしているからに他なりません。 EmacsではEmacs Lispによってカスタマイズができるようになっており、Lispに触れる機会があったり、著名な『ハッカーと画家』を書いたポール・グレアム氏のおかげで「言語としてレベル高い」というのを感覚的に理解できたからということがあります。

Clojure/ClojureScript

Clojureは先に話したLisp系プログラミング言語の一つです。並行処理を得意とするという点ではErlangとも比較されることがあります。 データは常に流れており、その状態を保持したり破棄したり更新したりといったことをしながら処理を進めていきます。 しかもそれが同時に複数発生しているわけです。 そういったデータの状態を流れとともに複数管理するのに適したプログラミング言語だと思ってください。

そういった高機能なClojureでアプリケーションをつくるのに最適化したものがClojureScriptです。ClojureでWebアプリを開発するのが容易になるというイメージでOKです。 JavaScriptへの変換を経由するため、最初からJavaScriptかTypeScriptでいいじゃんと思うかもしれませんが、Clojureを手軽に試す上で有用です。

Haskell

特徴的なプログラミング言語の1つであるHaskellは遅延評価を基本としています。遅延評価とは、「結果が必要になるときまで計算しない」というもので、大量のデータを扱うときに役立ちます。

主にデータ分析や研究といった分野で使われている言語ですが、金融業界やセキュリティ業界での利用実績も多いです。しかしながら一般的なエンジニアが真っ先に習得する、という対象としては適していません。 ただ、多くのプログラミング言語で取り入れられているオブジェクト指向という考え方と対比している純粋関数型言語という特徴があるため、「関数型言語とはなんぞや?」という勉強をするときにHaskellを触ってみるというのはおすすめです。

D言語

C言語に続くD言語は、C言語とコードの互換性はないものの、C言語の良いところを踏襲したシステムプログラミング向けプログラミング言語です。Javaと比較的似た書き方ができるため、C言語よりも学習コストは低いです。

C言語でつくりたいものがあるときに、代わりにD言語を使う、という候補として挙げられます。かなり表現方法が幅広く、先に説明したオブジェクト指向や純粋関数型、さらには手続き型などなど、マルチパラダイムプログラミング言語として知られています。

動作も速く、表現方法も豊か、さらには保守性にも優れているというメリットがたくさんあります。しかし、その分コンピュータに対して多くの知識を持っていればベストな選択をしつつプログラミングできる、ということでもあるので、経験を積んでから学習することをおすすめします。

Fortran

Fortranは今日紹介した中のものと比べても、1954年生まれと、とても歴史が長いプログラミング言語です。とにかく実行速度が速く、スーパーコンピュータなどの計算機科学と呼ばれる分野で使われています。

他にも宇宙分野などの計算量の多い科学系でも使用されることも多いです。といっても、言語仕様自体はそこまで難解というわけではなく、かなり読みやすい言語となっています。

大規模シミュレーションする人には向いていますが、初心者向けとは言い難いです。

Lua

Luaはスクリプト言語という簡略化されたプログラミング言語の中でも動作が速い言語です。もともとはC言語に組み込む前提で開発されたと言われています。 あまり馴染みが深くないプログラミング言語であるものの、ゲーム開発の現場でも使われることも決して少なくありません。

また、昨今のWebサーバとしてよく使われるNginxというソフトウェアの拡張をLuaで実装できるということもあるので、知らずにおくのはもったいない言語です。

書き方も比較的優しくわかりやすいほうなので、学習ハードルは低い印象があります。

Hack

Hackは一言でいえばPHPより高機能で速いPHPです。PHPと互換性があるため、PHPから学習を始めたエンジニアにとっては、もう一歩前へ進むのに適しているといえます。 HHVMという実行環境が必要だったり、PHPにはない機能が使えたりするので、学ぶことでプログラミングをより深く知ることが可能です。

ただ、案件として「Hackを使っています」というものを僕は見たことがないため、現場で使うことがあるかはわかりません。 PHPを使われている現場において、処理速度を求められる部分だけHackとHHVMで実行させる、なんて使い方ができると重宝します。

Perl

PerlもCommon Lispと同じく、歴史が長いプログラミング言語の一つです。10年ほど前はまだ現役で使われている現場がありましたが、現在では別のプログラミング言語に置き換えられて見なくなりました。

インターネット黎明期に隆盛を誇ったCGIというWebサイトにおける画期的な仕組みとともに語られることが多いです。しかしPerlもCGIも、より高機能になった技術がどんどん出てきてしまったため、今ではめっきり目にすることはなくなりました。

決して今から勉強すべきプログラミング言語ではありませんが、我々のインターネット社会の発展を支えた大きな存在として覚えておいてほしい言語です。

Nim

最後にご紹介したいプログラミング言語がNimです。現役エンジニアでも名前すら知らない、という人が多いのですが、今のところ僕としては最高だと思っているプログラミング言語です。 書き方がキレイかつシンプルなのにも関わらず、表現力が豊富で動作も高速、しかも高機能です。

書き方についてはPythonっぽく、C言語並みに様々な環境へ適応して実行でき、さらにGoやRustレベルで高速にもなります。 なぜ流行っていないのか、わりと真剣にわかりません。

ということでこの動画を見た人で、すでにエンジニアやっていて「新しく何か学びたいな」と思っている場合は迷わずNimを選んでみましょう。 Go言語やRust、TypeScriptを学んで案件の幅を増やす、それも悪くない選択肢ですが、楽しくコード書けるよ!感動するよ!ということでNimを推します。 僕もまだまだNimの学習を進めているところですが、久しぶりに子供のような気持ちで触れています。

個人的なおすすめ

ここまで一気にプログラミング言語を紹介してきましたが、個人的に僕がおすすめする言語は以下となります。

3位、Go言語/Rust/TypeScript。3つですが同率3位だと思ってください。どれ選んでも幸せになれます。仕事もあります。プログラミング言語としても非常に優秀です。
2位、Python。これはゆるぎようのない2位です。たぶん自分が勧めるプログラミング言語でずっと上位です。とにかく汎用性があって使いやすい上にコード書いていて楽しい。仕事でもよく使います。
1位、Nim。この時点で現役エンジニアの方には「案件ないもん勧めんな」って言われそうですが、やはり最後に紹介したNimをどうしても勧めたくなってしまいます。しばらくは個人的に学習を進めていきたいと思っています。もっと深く知ったらもっと好きになれそうなタイプです。

最終的に言語は好きなもの選べばいい、という話になります。おすすめを紹介しておいて突き放すような言い方ですが、こればかりは相性です。
言語というのはツールの粋を出ません。

日本語であろうと英語であろうと、「伝える」手段の一つなわけです。
プログラミング言語はコンピュータと対話するための手段なのです。伝え方や方言といったそれぞれのルールが存在していますが、結局より多くの表現方法を知っていれば洗練されていくという点では同じです。

他にも世の中にはたくさんの言語があるので、楽しく書けるプログラミング言語を見つけて、楽しく書きまくってみてくださいね!

関連するコンテンツ