プログラミングができる人の需要が高まっている昨今、プログラミングの勉強を始めようと考えている人が増えてきています。
一方、プログラミング言語がたくさんありすぎて、一体どれを学べばよいのだろう‥?と悩んでいる人も多くいるのも事実。
この記事では、数あるプログラミング言語の中から、代表的なものを取り上げて、そのプログラミング言語の特徴や学ぶメリットなどを紹介していきます。
代表的なプログラミング言語11個
プログラミング言語はマイナーなものも含むと200種類以上あると言われています!ただ基本的に、どの企業もメジャーなプログラミング言語しか使わないのも事実。
なので、メジャーなプログラミング言語だけ抑えておけばOKです。
そこでよく使われる代表的なプログラミング言語を紹介します。ピックアップするのは次の11の言語です。
- PHP
- Java
- Ruby
- JavaScript
- Python
- Swift
- Kotlin
- R
- C#
- C++
- Scala
この中でも特に人気なのは、
PHP / Java / Ruby / JavaScript / Python / Swiftの6つの言語ですね。
最初に上記6つの言語から特徴を紹介していきます。
PHP
PHPは、1990年代後半に登場したプログラミング言語です。
PHPは、Webアプリケーション、Webサーバの開発における代表的な言語としての地位を築いています。
PHPの特徴
PHPは、数あるWeb開発系の言語と比べて、初心者でも容易に取り扱うことができるのが特徴としてあげられます。その理由は、構文がシンプルで分かりやすいからです。
また、PHPでは、様々なフレームワークが発表されているのも特徴としてあげられます。
フレームワークとは、Web開発において土台となるようなソフトウェアのことを言います。1からPHPで書くのではなく、あらかじめ用意されたフレームワークに沿って開発をすすめることで、開発の手間を削減できます。
PHPの注意ポイント
一方、PHPはその自由度の高さから、プログラミングする際にコーディング規約を常に意識しないと、変な癖が身についてしまう危険があります。
また、他のプログラミング言語と比較して、セキュリティ面が弱いことがデメリットとして挙げられており、プログラミングする際は、セキュリティ面についても意識しなければならないと、考えることが結構多いです。
◆関連記事
[keni-linkcard url=”https://program-yarouyo.com/php-can” target=”_blank”]
PHPの代表的サービス
PHPを採用しているサービスで代表的なものといえば「WordPress」です。
WordPressは、ブログを簡単に作成することができるサービスで、世界的に広く利用されています。
PHP学習のメリット
PHPは歴史も深いため、日本語の参考資料がたくさんあり、学習がしやすいのが一つのメリットです。
また、上で説明したフレームワークについても、専門書が発売されているので、PHPとセットで学ぶのが便利です。PHPは初心者でも学習しやすい言語だと言えます。
◆関連記事
[keni-linkcard url=”https://program-yarouyo.com/php-school” target=”_blank”]
Java
Javaは、90年代半ばに登場して以来、様々な場所で利用されている人気のプログラミング言語です。
日本だけではなく、世界的に見ても人気の言語。Javaは、検索エンジン最大手のGoogleが開発する際の標準言語(Google三大言語)にも定めています。
Javaの特徴
Javaの言語の最大の特徴は、一度ソースコードを書けば、いかなる環境の中でも実行することができるということです。
例えば、OSにはwindowsやmacOSなど複数ありますが、当然ながら、それらの仕様は大きく変わっています。
異なるOSであっても同じ結果が出るようにするには、それぞれのOSの仕様に沿ったコードを書かないといけません。ですが想像する通り、これは大変な手間がかかります。
このような場合、以前は、手間を掛けず容易に移植できることができないか?が、大きな課題でした。
そんなときJavaが、異なる環境下でも同じように取り扱うことができる技術(JVM、Java仮想マシンという)を導入。一つソースコードを書けば、どこでも同じように動作することができるようになったのです。当時は画期的な技術でした。
Javaの利用シーン
Javaは
- 企業が保有する業務システム
- Webアプリケーション
- スマホのOSとしても有名なAndroidアプリ
などで利用されています。
また、ゲーム開発でも利用されており、あの大人気ゲーム「Minecraft」もJavaで開発されています。
◆関連記事
[keni-linkcard url=”https://program-yarouyo.com/java-can” target=”_blank”]
Javaを最初に学ぶメリット
Javaは依然として人気が高く、Javaのプログラミング経験がある人を採用する企業は多いです。
そのため、Javaを扱うことができれば、すぐにでも現場で活躍することが可能でしょう。
また、Javaを身につけていれば、他の言語を学ぼうとした際にすぐに理解することが簡単です。多種多様なプログラミング言語とはいえ、似ている部分も多いため、応用がききやすいんです。
Javaを学ぶうえで大変なのは、「オブジェクト指向」という概念の理解です。オブジェクト指向は、専門用語が多かったり、直感的に理解しづらかったり、初心者にとってとっつきにくい部分があります。
ただ、オブジェクト指向言語は
- ソースコードの使いまわしが容易
- 修正も容易で、作業効率を大幅に向上できる
といった大きなメリットもあるので、我慢強く身につけていきたい知識です。
◆関連記事
[keni-linkcard url=”https://program-yarouyo.com/java-school” target=”_blank”]
Ruby
Rubyは、1990年代半ばに登場したプログラミング言語で、日本で開発された純国産プログラミング言語でもあります。
Rubyの特徴
Rubyの特徴は、構文がシンプルで記述量が少ないことです。比較的初心者でも使いやすい言語です。
上で説明したとおり、Rubyは日本で開発された言語のため日本語の学習資料が多いです。学習資料が多い=学習コストが低い(簡単に学びやすい)のは、初心者にとって嬉しいメリットです。
Rubyが使われる場面
Rubyも主にWeb開発において用いられる言語の代表格です。
Web開発系の言語、わかりやすさという観点でみると、先ほど紹介したPHPと似ています。ただ、PHPと違ってRubyは利用用途が広いので、Web開発以外でも利用される場面が多いです。
たとえばWebスクレイピングや機械学習、スマホアプリ制作などで使われる場面もあります。
◆関連記事
[keni-linkcard url=”https://program-yarouyo.com/ruby-can” target=”_blank”]
フレームワーク「Ruby on Rails」
Rubyを言及する上で欠かせないのが「Ruby on Rails」というフレームワークです。
現在、Rubyを用いてWeb開発するときは、Ruby on Railsをベースにするのが主流となっております。このフレームワークを用いることで、開発スピードを飛躍的に向上させることができます。フレームワークは、効率的に開発するための”道具”みたいなイメージですね。
Rubyが使われているWebサービス
Rubyを採用しているサービスは数多くあります。代表的なものに「GitHub」や「クックパッド」、「Hulu」があります。どれも有名なサービスですね。
Rubyを学ぶ上での注意点
Rubyは、上で説明したように学習コストが低いため、初心者でも気軽に始めることができますが、注意すべき点としては、Ruby on Railsの勉強だけに偏ってしまわないようにすることです。
Ruby on Railsは、使い勝手の良さや作業スピードの速さゆえ、重宝されてきているが、あくまでWeb開発のためのフレームワークに過ぎません。
他の言語でも応用できるようなプログラミングの勉強をするのであれば、Rubyという言語を一通りマスターすることが大切です。
※一通りマスターするには、プログラミングスクールのカリキュラムに沿って勉強するのが効率的です。
◆関連記事
[keni-linkcard url=”https://program-yarouyo.com/ruby-school” target=”_blank”]
JavaScript
JavaScriptは、1990年代半ばに登場したプログラミング言語です。「Java」と付いているので、Javaに似ているかと思いきや、全く別の言語です。
JavaScriptの特徴
JavaScriptは、主にWebページ上に動きをつけるために用いられます。
写真をスライド形式で表示させたり、ボタンを押すとメッセージが表示されたりと言ったことが、JavaScriptで実現できることの一例です。
Webページを見ているときに、動きがついているなと思ったら、大抵はJavaScriptが利用されていると考えて良いでしょう。それぐらいJavaScriptは幅広く普及しています。
また、JavaScriptは、特別な開発環境を必要とせず、テキストエディタとブラウザさえあれば、簡単に動作確認できるのが特徴です。学習する際の敷居の低さが、初心者にとっても優しいといえます。
また、JavaScriptも歴史も深く世の中に浸透している言語のため、勉強するときに役立つ参考資料は豊富にあります。これも、プログラミングの学習の容易さに一役買っていると言って良いです。
◆関連記事
[keni-linkcard url=”https://program-yarouyo.com/javascript-can” target=”_blank”]
JavaScriptの開発注意点
一方、JavaScriptは環境ごとに動作が異なることに注意しなければなりません。
ブラウザにもGoogle ChromeやFirefoxなどさまざまあり、同じコードを書いても、ブラウザごとに結果が異なることが結構あります。
JavaScriptでプログラミングする際には、ブラウザごとの動作の違いを常に意識する必要があります。
Webページ以外でも開発シーンが拡がる
またJavaScriptは、最近ではWebページのほか、
- サーバサイドの開発
- Android / iOSの開発
などでもJavaScriptを利用することが増え始めています。
これからも、JavaScriptの需要は減ることはないので、学習しておいて損がない言語です。
◆関連記事
[keni-linkcard url=”https://program-yarouyo.com/javascript-school” target=”_blank”]
Python
Pythonは、1990年代前半に登場したプログラミング言語です。
ここ最近、機械学習やAIの研究の発達に伴って、急速に人気を得ている言語です。Google三大言語の一つとして数えられていて、将来が期待される言語として注目されています。
Pythonの特徴
Pythonも、PHPやRubyのように、構文のわかりやすさ/コードの書きやすさが特徴として挙げられます。
上で話したように、分かりやすいコードはメンテナンスを容易にでき、学習する際のコストも抑えられるというメリットがあります。
また、Pythonにはライブラリが豊富なのも特徴的です。ライブラリとは、汎用性の高いプログラムをまとめたものを言います。ライブラリを使うことで、同じようなプログラムを逐一書かずに済みます。
Pythonでは、科学技術でよく使われる計算などと言った処理を手軽に使えるよう、たくさんのライブラリが作られています。
機械学習やAI研究においてPythonが人気を得ている理由は、この豊富なライブラリによるものなのです。
Pythonの利用シーン
上で話したように、Pythonは機械学習やAI研究の分野で利用されているほか、Web開発など様々な用途で用いられています。
YouTubeやInstagramなどはPythonで開発されたサービスです。
◆関連記事
[keni-linkcard url=”https://program-yarouyo.com/python-can” target=”_blank”]
Pythonが不向きなのは・・
一方で、Pythonはスマホアプリの開発やゲームの開発において、他のプログラミング言語と比較して不向きです。
まったくできないということではないのですが、ライブラリが充実していないので、本格的なスマホアプリやゲームを開発したければ、他の言語を選択しましょう。
Pythonを学びたければ以下のプログラミングスクールがおすすめです。参考にしてみてください。
◆関連記事
[keni-linkcard url=”https://program-yarouyo.com/python-school” target=”_blank”]
Swift
Swiftは、iPhoneやmacなどを手掛けるApple社が開発したプログラミング言語です。Swiftが登場したのは2014年で、比較的新しめの言語といえます。
Swiftの特徴
Swiftは読みやすさ/書きやすさを追求しているのが特徴です。Swiftは、他の人気なプログラミング言語の良いところを取り入れており、バランスの取れた言語といえます。
Swiftのもう一つの特徴は、Playgroundという機能です。Playgroundは、プログラミングしている最中に、意図した結果が得られているかをリアルタイムで確認できる機能です。
今まで、プログラムは、書いたコードをコンパイルして実行可能な状態にし、実際に実行することで、動作確認をしてきました。実行しながら確認するという作業は、非常に時間がかかります。そのような問題点を、SwiftのPlayground機能は解決してくれます。
Swiftの利用シーン
Swiftは、Apple社製品の開発で主に利用されます。
例えばiPhoneやiPad、macなどで動作するアプリケーションの開発です。SwiftもApple社が開発しているので、親和性が高いのです。また、他にもWebアプリケーションやWebサーバの開発でも利用されています。
◆関連記事
[keni-linkcard url=”https://program-yarouyo.com/swift-can” target=”_blank”]
初心者がSwiftを学ぶメリット
Swiftは、他の言語の良いところを取り込んでいるので、一度Swiftを学べば他の言語を学ぶ際にも応用が効くのが良いところです。
また、読み書きのしやすさによって、これからの開発でSwiftを採用する事例が増えることが予想されます。Swiftを学んでおけば、現場で活躍することに近づくでしょう。
Swiftのデメリット
一方、Windowsパソコンで開発するには敷居が高い言語ともいえます。
なぜならSwiftは、Macで開発することを前提としているためです。
特にプログラミング初心者の場合は、WindowsでSwiftを学ぶのは相当苦労することが予測できます。Swiftを学びたければ、Macを持っている(購入できる)前提で考えておきましょう。
◆関連記事
[keni-linkcard url=”https://program-yarouyo.com/swift-school” target=”_blank”]
Kotlin
Kotlinは「コトリン」と読むプログラミング言語です。
Kotlinは2011年に登場した比較的新しめの言語であり、JVMが導入されている環境で動作します。つまり、Javaと同じようにJVMが導入されていれば、環境に関わらず同じように動作することができます。
簡潔なコードで、初心者にもおすすめ
Javaよりも簡潔にコードを書くことができるのが特徴であり、メリットであります。
コードを書く際は、常に読みやすさを意識する必要があります。冗長的でごちゃごちゃしたコードは、メンテナンスの難易度が高くなり、品質を著しく落としてしまいます。
また、この後説明する他のプログラミング言語にも言えることですが、コードが簡潔に書けるということは、それだけ学習する際のコストも小さい(学びやすい)ということです。
[char no=”2″ char=”エンジニアA子”]初学者は、プログラミング言語を選びをするときに、”その言語は簡単でシンプルか?”という点も意識してみて下さい。[/char]
Kotlinは、安全性の高いコードでもある
Kotlinのもう一つの特徴として、Javaよりも安全なコードが書けるということです。
Kotlinでプログラミングをしているときに頻発するエラーを未然に防いでくれる仕組みを取り込んでいるため、エラーの修正などで作業を要することも少なくなりました。
Androidアプリ開発言語として、需要増が期待される
Kotlinは、2017年にGoogleからAndroidの公式開発言語として採用されたことをきっかけに、Androidアプリの開発言語としての地位を築き始めています。
Yahoo!ニュースアプリやGYAO!、LINEアプリなどがKotlinを用いて開発されました。
Kotlinは登場してから日も浅く、Javaと比較して日本語の資料が少ないのがネックですが、これからもAndroidの開発においては、需要が高くなることが予測されるので、学んでおいて損はありません。
R
Rは、1990年代後半に登場したプログラミング言語です。RもPythonと同じように、機械学習やAI研究などの学術分野で利用されています。
Rの特徴
Rの特徴といえば、データ解析に特化したライブラリが充実していることです。
入力したデータを解析して、グラフなどを出力することができる機能は、Rのセールスポイントの一つです。
また、構文が比較的シンプルということも特徴として挙げられます。
これから、ビッグデータ解析が注目されつつある中で、シンプルな構文で本格的な解析ができることから、Rというプログラミング言語が脚光を浴び始めています。これから、ビッグデータ解析の分野で活躍したいというのであれば、Rを勉強することのもいいでしょう!
Rを学ぶ上での注意点
一方で、Rはデータ解析に特化した言語ということもあり、それ以外の用途、たとえばWeb開発やアプリ開発などで利用されることはありません。
この点が、Pythonと大きく異なる点です。つまり
- Python=利用用途が広い
- R=利用用途が狭い
です。
もし、Web開発やアプリ開発がしたいのであれば、RではなくPythonを選ぶといいです。
◆関連記事
[keni-linkcard url=”https://program-yarouyo.com/python-can” target=”_blank”]
C#
C#は、2000年代前半に登場したプログラミング言語で「シーシャープ」と読みます。
windowsを手掛けたMicrosoft社が開発した言語で、主にwindowsで動作するアプリケーション、Webアプリケーションの開発で用いられています。
C#の特徴
C#は、JavaやC++などの言語の良いところを取り込んだ言語であるので、JavaやC++などと似ている部分があります。
しかし、JavaやC++の複雑な仕様を極力排除したことから、C#は比較的単純な構文であるのが特徴です。
また、C#のわかりやすさの裏には「.NET Framework」というフレームワークの存在があります。windowsに触れていれば、一度聞いたことがあるのではないでしょうか。
フレームワークという、開発の土台がすでに確立されていることで、アプリケーションの開発者は少ない知識でアプリケーションを作成することができるのです。
C#で作られているサービス
C#で作られたサービスの例として、Microsoftの公式サイト、ポータルサイトのMSNなどが挙げられます。
どれも、Microsoftに関わるサイトですね。ほかにも、C#はスマホアプリの開発でも用いられており、代表的なものに「神獄のヴァルハラゲート」があります。
C#が不向きなケース
C#は、主にwindowsで開発するのが主ですので、逆にmacやlinuxで開発するには不向きの言語といえます。
ただし、開発できないというわけではなく、専用のソフトウェアを導入すれば、プログラミング自体は可能です。
C++
C++は、1980年代前半に登場したプログラミング言語で「シープラスプラス」、「シープラプラ」と読みます。今まで紹介したプログラミング言語のなかでは歴史が一番深いです。
C++は、C言語というプログラミング言語を拡張した言語とも言えます。C言語もC++以上に歴史が深く、後発のプログラミング言語に大きな影響を与えています。
「プログラミングするならまずはC言語を学ぶべき」という声が多いのは、C言語さえ学んでおけば、他の言語を学ぶときに応用できるからです。
C++の特徴
C++は、ハードウェアに対して細かい操作が可能な言語であるのが特徴です。
具体的には、メモリやディスプレイなどの、パソコンを構成する部品にアクセスし、データを参照したり、文字を表示させたりと言った基本的な操作をプログラミングすることができるのです。これらを駆使すれば、windowsやmacのようなOSを自分で作ることも可能なのです。
そのほか、
- アプリケーション
- ゲーム
- 業務システム
など、C++の用途は非常に多岐に渡ります。インターネットブラウザのGoogle ChromeもC++で開発されたものです。
C++は未だに人気
C++はその深い歴史の中で数々の実績を積んできており、Google三大言語の一つに数えられるほど、未だに人気が高い言語です。
開発案件もたくさんあるので、C++を身につけておけば、いろいろな場所で活躍できる機会があるでしょう。
C++の学習は長期戦覚悟で・・
一方で、C++をマスターしようとなると、長い道のりになるのも覚悟しないといけません。
C++は、オブジェクト指向を取り入れた言語であり、C++自体の仕様も他の言語と比較して複雑です。また、メモリの扱い方など、コンピュータの基本知識についても身につける必要があります。実際にC++でプログラミングするときは、メモリを適切に取り扱うように常々考える必要があります。
しかし、逆に言えばC++を理解することは、コンピュータの知識を理解することに直結し、ただプログラミング言語を学ぶだけでは得られないような知識も得ることができます。
そのため、プログラミングの知識に留まらず、コンピュータの基本からじっくり理解したい人はC++を学ぶことをおすすめします。
Scala
Scalaは2000年代前半に登場したプログラミング言語です。
ScalaはJavaの後継言語であるとも言われており、Javaと同じようにJVMの上で動作します。
Scalaの特徴
Scalaの特徴はオブジェクト指向、関数型の2つの顔を持つところです。
オブジェクト指向については、Javaと同じですが、関数型はJavaにはない概念です。
関数型は最近になり注目されつつあるプログラミングのスタイルで、出来上がりのコードがシンプルになることから、保守性の高さがメリットとなっています。
Scalaの利用シーン
ScalaもWebアプリケーションや業務システム、デスクトップアプリケーションなど、利用場面は多岐にわたります。
ソーシャルネットワーキングサービスの「Twitter」は、Scalaを用いて作られています。
Scalaの学習デメリット
一方でScala、ひいては関数型言語全体に言えることですが、コードがシンプルになる代わりに、関数型という概念自体のとっつきにくさがネックになっています。
専門用語も多く、関数型プログラミングの理解には、相応の時間がかかります。
しかし、Scalaの需要自体は今後も増えていくことが予想されるので、学習しておいて損はありません。