世の中には数百種類のプログラミング言語が存在しています。そんなプログラミング言語について、
なぜプログラミング言語の種類はこんなに多いの?
それぞれの言語でできることや違いが知りたい
こういった悩みについて、プログラミング言語の数や言語が多い理由、それぞれの違いについてお答えしていきます。
また、次の記事ではそもそもプログラミング言語とは何なのか、その特徴や種類をできることも交えて解説しているので、あわせて参考にしてください。
→ プログラミング言語とは?種類別の特徴やできることをわかりやすく解説
プログラミング言語の数
プログラミング言語は非常に多く存在しており、細かく区別すると数えることがむずかしくなります。
「TIOBE」という独自のルールでプログラミング言語をカウントしている方法が信頼されたデータとして有名です。おもなルールは下記の通りです。
- 独立したWikipediaページが存在するかどうか = 十分な知名度があるかどうか
- コンピューターで処理可能かどうか
- Google検索で5,000以上の参照先があるかどうか
このTIOBEカウント法で数えるとプログラミング言語は250言語存在することとなっています。
参照:https://www.tiobe.com/tiobe-index/
プログラミング言語はなぜこんなに数があるのか?
では、なぜプログラミング言語はこんなに数が多いのでしょうか。
同じような疑問を抱いたことのある人も多いのではないでしょうか。
結論から言うと「用途によってそれぞれのプログラミング言語を使い分けて無駄を省くため」です。
基本的に何かを開発する際には、まず何を作るのかを決めて、どのような機能をもたせるのかを明確にします。
その後、目的の機能を実装するにはどんなプログラミング言語が最適で、一番効率よく開発することができるのかを決める流れになります。
プログラミング言語の種類
ここからは、数あるプログラミング言語を大きく種類別に分け、どんな特徴があるのか、具体的にどのような開発に向いているのかを解説していきます。
Web系言語
Web系言語は主にブラウザを通してアクセスするページを動作させるために使うプログラミング言語です。
例えば、今見ていただいているページでも使われていますし、様々な企業のホームページやTwitterやFaceBookといったSNSにも使われています。
Web系のプログラミング言語には主に「JavaScript・PHP・Ruby・Python・Go・Scala・Perl」などがあります。
組み込み系言語
組み込み系のプログラミング言語は、主に機械に組み込まれているコンピュータを動かすために使う言語です。
身近なもので言えば、冷蔵庫やテレビ・スマートフォンやパソコン・自動車などがあります。
最近では、Iot家電といったIT技術を活用した便利な家電も増えてきており、それらにもこの組み込み系言語が使われています。
組み込み系のプログラミング言語は主に「C・C++・Java・Microsoft Visual C++・Microsoft Visual Basic・C#」などがあります。
ソフトウェア系言語
ソフトウェア系のプログラミング言語では、主にOS上で起動するソフトウェアの開発に利用されます。
例えば、WindowsやMacといったOS上で起動するExcelやWordといったソフトウェアや、Internet ExplorerやGoogle Chrome・FireFoxといったブラウザなどもこのソフトウェア系言語が使われています。
ソフトウェア系のプログラミング言語には主に「C・C++・C#・Java・Microsoft Visual Basic」などがあります。
アプリ系言語
アプリ系のプログラミング言語では、主にスマートフォンやタブレット上で起動する「アプリケーション」の開発に使うプログラミング言語です。
iOSの場合はAppStore、Androidの場合はGoogle Play Storeに公開されているアプリケーションのことです。
アプリ系のプログラミング言語には主に「Swift・Java・Objective-C・Kotlin・JavaScript」などがあります。
その他(機械学習系、IoT系など)
ここまでに紹介したもの以外にも、「機械学習やIot、VR・AR」などの種類があります。
このような開発では新しいプログラミング言語も活用されており、より最先端な技術が活用されているイメージですね。
- 機械学習系 : Python・C・C++・JavaScript・R・Julia など
- IoT系 : Python・C・Java など
- VR・AR系 : Unity・C#・BluePrint など
プログラミング言語の違い
様々な種類のあるプログラミング言語ですが、ここからは具体的にどのような違いがあるのかをお話しします。
まず、一つ目の違いがプログラミング言語ごとの「書き方」です。
プログラミングをやったことのある人にとっては言語毎に書き方が変わってくることは当然わかると思います。
とは言え、ある程度、書き方が似ているところはあります。一つの言語で書き方を理解できれば、他の言語でもそれなりには読めるようになるでしょう。
次は少し詳細な話になりますが、「型」についてです。
プログラミング言語では一時的にデータを保存しておく際に活用する変数があります。
この変数に予めデータの型を指定する「静的型付け」と、実行されるときに型が決定される「動的型付け」の2種類があります。
また、「環境構築」にもプログラミング言語ごとに違いがあります。
プログラミング言語から、機械言語と呼ばれるコンピュータが理解できる言葉に変換する「コンパイル」が必要かどうかによっても、開発環境は変わってきます。
コンパイルが必要ない言語であれば、普通のテキストエディタでも開発をすることができます。コンパイルが必要な場合は「統合開発環境(IDE)」と呼ばれる開発環境がセットになったものを利用することで、更に開発をスムーズに進められることができるでしょう。
世界で見たプログラミング言語の人気ランキング
では次に、プログラミング言語のランキングを見ていきましょう。
なお、このランキングは日経xTECHで「プログラミング言語実態調査」としてWebサイト上に公開したアンケートを元に集計した結果です。
※調査期間は2019年9月26日~10月18日で440人の回答を得たものです。
参照: https://xtech.nikkei.com/atcl/nxt/column/18/01068/111100001
1位 c/c++
第一位は「c/c++」です。
これは2018年にも同メディアが実施したランキングでも1位をとっており、長い間多くのエンジニアからの支持を得ています。
c言語やc++言語は、組み込み系の開発やより処理スピードを求められるような開発に利用されることが多いです。
このような特徴から、IT業界のトレンドにもマッチしており、大規模開発では重宝される言語性能であることが上位を長期間維持している所以とも言えますね。
2位 Python
第2位にランクインしたのは「Python」です。
この言語は比較的新しいプログラミング言語で、機械学習や計算処理などのライブラリーやフレームワークが豊富にあり、最近流行っているAIのシステム開発やデータなどの分析システムの開発に活用されます。
やはり、トレンドによる言語の注目度は非常に強力で、時代にフィットした開発を行うことができるプログラミング言語のためPythonが急成長し、それを扱うエンジニアも増えている傾向にあります。
3位 JavaScript
そして3位にランクインしたのは「JavaScript」です。
2018年の調査では2位だったのですが、急成長しているPythonに抜かれてしまう形になりました。
JavaScriptではWebシステムやWebアプリケーションの開発に利用されます。フロントエンド開発に使われる言語の一つで、クライアント側、つまりユーザーが直接目に見える部分の開発を行います。
数あるプログラミング言語の選び方
多くのプログラミング言語がある中から、どのプログラミング言語を選ぶかは非常に悩ましいところです。
ですが、一番効率がいい選び方は「まずゴールを決める」ことが一番です。
もし仕事でプログラミングを使うのであれば、何の開発を行うのか。その開発をするためにはなんの言語が必要なのかを明確にして最適なプログラミング言語を選択しましょう。
仕事以外の場合も同じく、最終的に自分は「何を作りたいのか」と言う点をしっかりと考えれば自然と必要な言語がわかります。
どのようなものをどんな機能をつけて開発をしたいかをできるだけ具体的に考えてみるといいです。
なお、初心者向けのおすすめプログラミング言語については、次の記事で詳しく解説しています。
まとめ
今回は、プログラミング言語の数が多い理由や、それぞれの言語の違いについて解説しました。
各言語の違いやできることをしっかり理解することで、どのような言語を選択するべきかが見えてくるかと思います。
また、プログラミングに限らず、IT分野はトレンドの切り替わりが早く、今は最新技術でも来年はそうではないかもしれません。
ですので、常に新しい技術や知識の勉強は怠ってはなりません。
プログラミング言語はそれぞれに需要や将来性・学びやすさなどが異なります。もしこれから学習を始める際にはそれらを明確にし、自分にあったものを選択できるように早いうちに考えておきましょう。
学習するにあたっては「侍エンジニア」を活用することで、自分にぴったりなカリキュラムを組めて、マンツーマンで現役のエンジニアから学ぶことができます。より実践的な学習を行うことができるため非常におすすめです。