
「プログラミングを勉強しようと思うけど、言語がたくさんあり過ぎて、どの言語を勉強したら良いか分からない。目的別にどんな言語が使われているか教えてほしい。」
今回はそういった悩みを解決します。
本記事の内容
- 実際の開発で使われているプログラミング言語を目的別を紹介
- なぜ目的によって使用されるプログラミング言語が違うのか?
Twitterで次のような悩みを見かけました。
https://twitter.com/mosakolife/status/1216493791311319040
プログラミング初心者の悩みの1つに、プログラミングを勉強しようと思うけど、世の中にはたくさんの言語があるため、どの言語を勉強すれば良いか迷ってしまうという点があります。
この記事を書いている私はエンジニア歴8年で、フロントエンドからサーバーサイド、アプリから業務システムまで幅広く開発経験あります。
ですので、それぞれの分野で使われている言語については結構詳しいです。
そんな私の経験から、実際の開発で使われているプログラミング言語を目的別に紹介します。
この記事を読み終えると、プログラミングをしたいけどどの言語を使えば良いか悩んでいる方は、使うべき言語が理解できているはずです。
実際の開発で使われているプログラミング言語を目的別に紹介
さっそく、実際の開発で使われているプログラミング言語を目的別に紹介します。
開発目的は次の6つに分類して説明します。
- ゲーム開発
- スマホアプリ
- Webサイト・Web サービス
- 業務系システム・アプリ開発
- 組み込み・IoT
- AI
ゲーム開発
ゲーム開発では最近だとC#とUnityというフレームワークを使って開発することが多いです。
Unityとは、スマホからPCまで様々なプラットフォームに対応したハイクオリティなゲームを作れるゲームエンジンで、ゲームに必要な高解像度映像の3DレンダリングもUnityで出来ます。
C#とUnityで作られた有名なゲームには次のようなものがあります。
- スーパーマリオラン
- ドラゴンクエストVIII 空と海と大地と呪われし姫君
スマホアプリ
スマホアプリ開発で使われる言語はOS毎で異なります。
- iOS:Objective-c、Swift
- Android:Java、Kotlin
iOSとandroidどちらも後者の言語が後継で移り変わっている状況です。
スマホアプリ開発で使われる言語はOS毎に言語がサポートされているため、基本的にはサポート言語に従うことになります。
最近では、先ほどのUnityのようにiOS/Andoriodどちらでも動かせることができるフレームワーク(クロスプラットフォーム)も登場してきています。
クロスプラットフォームのフレームワーク
- Unity:C#
- Apache Kordva:JavaScript
- React Native:JavaScript
- Qt:C++
スマホアプリ開発は目指すアプリやサービス、開発期間などによって言語を選定する必要があります。言語選択はエンジニアの力量が問われるところですね。
Webサイト・Webサービス
Webサイト・Webサービスはフロントエンドとサーバーサイドの2つに分けられ、それぞれ使用する言語が異なります。
フロントエンドとは、Google ChromeなどのWebブラウザ上で動作する部分で、ユーザ側の端末で使われています。
一方のサーバーサイドとは、ユーザ側ではないサーバ側で使われている言語です。
フロントエンドで使われる言語
HTML+CSS+JavaScript
サーバーサイドで使われる言語
PHP、Ruby、Java、python、C#など
メモ
HTMLとCSSはマークアップ言語と呼ばれ、厳密にはプログラミング言語ではありません。
プログラミング言語は何かの「処理」を実施できますが、マークアップ言語ではできません。
サーバーサイドで使われる言語は色々あります。それぞれの言語が得意とする分野があるので、状況に応じて使い分けられます。
また、サーバーサイドではフレームワークを一緒に使うことが多いです。例えば、PHPであればLaravelやCake PHPといったものが使われます。
Web 系も作りたいサービスに合わせて言語を選ぶ必要があります。
システム開発
システム開発で使われる言語"
Java、C#、C++
銀行や病院などの大規模な業務システム開発では、規模が大きく大人数で平行開発することが必要です。
そのため、拡張性や保守性に優れた言語を使うことが多いです。
組み込み・IoT
組み込み・IoTで使われる言語"
C言語、C++
組み込み系とはマイコンの制御など、表には見えにくい下回りの部分のことです。最近だとIoTの躍進で需要が増えてきています。
実行速度が求められるシーンが多いので、速度に定評のあるCかC++が使われることが多いです。
AI
最近流行りのAI学習ではPythonが使われることが多いです。加えてTensorFlowやCaffeなどのフレームワークを使います。
AIを実行する時は、学習と同じPythonで実行か、速度が求められるシーンではC++で組み込むことが多いです。
なぜ目的によってプログラミング言語が違うのか?
これはプログラミング言語によって得意分野が異なるためです。
詳しくは『プログラミング言語による違いを解説』の記事で解説していますが、簡単に言うと、色々な分野のニーズに応えるためです。
多岐に渡る分野のニーズを1つの言語でカバーするには無理があり、各言語の不満点を改善してより使いやすい言語にするために、多くの言語が生み出されました。
ソフトウェアへのニーズに応えるために、プログラミング言語が使い分けられています。
合わせて読みたい
まとめ
ということで、実際の開発で使われているプログラミング言語を目的別に紹介しました。
実際の現場ではたくさんのプログラミング言語が使われているので、目的に合った言語を選んで勉強するようにしましょう。