初心者のためのプログラミング言語の選び方、その2(言語の得意分野)

5, 2019-06-23

目次

はじめに

こんにちは、narupoです!

初心者の方のためのプログラミング言語の選び方第2回目です。
前の記事はこちらからどうぞ!

実はプログラミング言語の向き不向きを知ると自分が選択するべきプログラミング言語が見えてきます。
それはなぜでしょうか?

言語の得意分野とは?

プログラミング言語には向き不向きがあります。
言い換えるとプログラミング言語には得意分野があるのです。
その得意分野を知ってると選択すべきプログラミング言語が見えてきます。

なぜなら自分の興味のある分野プログラミング言語が持つ得意分野がマッチしていれば、それはその言語を選択すべきだと言えるからです。
つまり「ツールを作りたい!」や「組み込みがやりたい!」、「Webサービスを作りたい!」という風に、自分の欲望に素直になることがプログラミング言語を選択する近道と言えるでしょう。

ということで、ごく一部ですが有名なプログラミング言語を紹介していきたいと思います。

有名なプログラミング言語

JavaScript(ジャバスクリプト)

2019年現在、Developer Survey Results 2019内のランキングによると「最も人気のある言語」で堂々1位を獲得しています。
一方、「最も愛されている言語」では11位に留まっています。

もともとWebページにちょっとした動きのある表現を加える際に使われていました。
その頃は「JS(JavaScript)はおもちゃ」などと言われていた言語です。

しかし、Node.js(ノードジェイエス)の登場によりサーバーサイドでも広く使われるようになり、その評価が一変しました。
JavaScriptで書いたコードをCLI(シーエルアイ)でコンパイルすることが可能になり、さらに関連ライブラリのインストールも手軽になりました。

さらにさらに昨今のSPA(シングルページアプリケーション)の流行に伴い、フロントエンドでJavaScript製のフレームワークが無数に誕生することになり、今ではフロントエンドからバックエンドまで広くカバーする「何でもできる言語」になっています。
その特性から栄えある「最も人気のある言語、1位」を獲得したと言えます。

Rust(ラスト)

2019年現在、Developer Survey Results 2019内のランキングによると「最も愛されている言語」で堂々1位を獲得しています。
一方、比較的最近の言語のため「最も人気のある言語」では21位に留まっています。
設計者はグレイドン・ホアレです。

C, C++と同様、非常に速い言語です。WebブラウザのFirefoxの一部はRustで書かれているとのことです。
C, C++の代替を目標に開発されているとのことで、特にCと比べた場合、モダン(現代的)な機能が備わっていると言えます。
比較的に新しい言語です(Rustの登場時期は2006年頃、Cは1972年頃)。これからの人気次第では徐々に地盤を固め、C, C++に取って代わる言語となり得るかもしれません。そうなればRustを使ったソフトウェアも徐々に増えていくでしょう。2019年現在ではやはりC製のソフトウェアのほうが多いのが現状です。

ただし、学習コストが高いことが知られているため、プログラミング初心者の方が学ぶには少し難しい言語かもしれません。

Go(ゴー)

2019年現在、Developer Survey Results 2019内のランキングによると「最も愛されている言語」で9位を獲得しています。
「最も人気のある言語」では13位です。
設計者はロブ・パイクケン・トンプソンです。

Goも速い言語です。また、マルチプラットフォームといって同じコードが色んなOS上(Mac, Windows, Linuxなど)で動作します。
比較的に新しい言語で今後の発展が見込まれます。
大企業のGoogleが開発者であることから安定したリリースが期待できます。
有名な仮想環境管理ソフトであるDockerはGoで書かれています。

C(シー)

2019年現在、Developer Survey Results 2019内のランキングによると「最も愛されている言語」で24位を獲得しています。
「最も人気のある言語」では11位です。比較的古い言語ですが根強い人気があります。
設計者はアメリカ人のデニス・リッチーです。

根強い人気のあるC言語にはこんな得意分野があります。
それは組み込みOSデバイスドライバー言語制作などです。
C言語を覚えるとOSやデバイスドライバーを作れたり、なんとプログラミング言語も作れたりします。

C言語はいわゆる枯れている言語なので、長年のメンテナンスの結果非常に安定しています。
それに加えて低レベルでメモリを扱えるのでメモリが限られた組み込み(例えば自動車機器など)の現場でも重宝される傾向があります。そしてなんといっても速い! いわゆるスクリプト系の言語のPython(パイソン)やRuby(ルビー)と比較するとその動作速度はとても速いと言っていいでしょう。といっても、PythonやRubyはC言語で実装されているので生のC言語のほうが速いのは当たり前といえば当たり前なのですが……。Pythonで速度が欲しい処理を書きたくなった時にその部分だけC言語で書くということもよく行われます。

また、プログラミングの勉強の面でもメモリの扱い方を覚えるのに適している言語と言えます。
最近の流行りの言語はだいたいガベージコレクションという自動でメモリを管理してくれる仕組みが存在していて、メモリについてあまり意識する必要がありません。C言語を習得することでメモリを意識したプログラミングが可能になり、一段品質のいいプログラムを作れるようになるかもしれません。

逆にC言語のデメリットとして、コーディング量が多くなる書くのが大変モダンな記述ができないなどが挙げられます。一般に、C言語で大きなプロジェクトを構築するのは普通より大変と言われています。スクリプト系言語のPythonやRubyなどと比較すると生産性が低いと言えるかもしれません。ただ、Linux(リナックス)などの有名な巨大プロジェクトはC言語で書かれています。これはLinuxの生みの親のリーナス氏がC言語が好きだからなのですが、まぁ自分の好きな言語で開発していれば生産性なんて関係ないという良い一例かもしれません。
また、Webの分野ではあまり使われていません。

C++(シープラプラ)

2019年現在、Developer Survey Results 2019内のランキングによると「最も愛されている言語」で19位を獲得しています。
「最も人気のある言語」では9位です。
設計者はデンマーク人のビャーネ・ストロヴストルップです。

C言語の拡張を目指して開発された言語です。C言語には無かったモダンな機能をふんだんに取り込み、もはやC言語とはまったく別の言語になっていると言えます。
C言語と同様、非常に速い言語です。それに加えてモダンな機能も使えるので主にゲーム開発などで使われています。

ただし、非常に難解な文法を持っているため、使いこなそうとすると大きな学習コストがかかる言語と言えます。

Python(パイソン)

2019年現在、Developer Survey Results 2019内のランキングによると「最も愛されている言語」で堂々2位を獲得しています。
「最も人気のある言語」でも堂々4位です。
設計者はオランダ人のグイド・ヴァンロッサムです。

筆者の体感でも最近、非常に勢いを感じるプログラミング言語です。Pythonは機械学習などのAI系のプログラミングを得意としています。これからAIの時代が到来することを考えるとその人気はまだまだ高まる可能性があります
またDjango(ジャンゴ)というPython製のWebフレームワーク(プログラムを作るための大きな枠組み)も人気があり、このDjangoによってWebの領域も射程内に収めていると言っていいでしょう。このブログもPythonとDjangoで制作されています。

またPythonはスクリプト系の言語で、ちょっとした問題や課題を片付けるのに非常に向いている言語です。またライブラリが豊富なのでプログラミングも楽です。

Pythonもマルチプラットフォームな言語なので、同じコードが色んなOS上で動きます

デメリットとして、スクリプト系言語の宿命ともいえるのですが動作が遅い傾向があります。速度が求められる処理にはあまり向いていません。速度が必要になったらCやC++、最近ではRustもよく使われるそうです。

Ruby(ルビー)

2019年現在、Developer Survey Results 2019内のランキングによると「最も愛されている言語」で21位を獲得しています。
「最も人気のある言語」では12位です。
設計者は日本人まつもとゆきひろです。

RubyもPythonと同様、汎用的なスクリプト言語で、ちょっとしたツールの開発に適しています。また、Ruby on Rails(ルビー・オン・レイルス)というRuby製の有名なWebフレームワークが存在し、Webの分野でもよく使われています。

何といってもRubyは国産のプログラミング言語です。
プログラミング初心者の方は国産のプログラミング言語の優位性というものがわからないと思います(私も最初はわかりませんでした)。
国産のプログラミング言語だと、自然と言語のメンテナーも日本人が多くなります。
つまり、メンテナーの人たちと日本語でコミュニケーションを取れるということです。

Ruby以外のメジャーなプログラミング言語の開発では主に英語が標準語として使われています。
そのため英語が苦手な日本人コミュニティに参加しづらいという現状があります。
しかし、Rubyは国産のプログラミング言語で関わっている人も日本人が多いですから、日本人がコミュニティに参加しやすいというメリットを受けられます。
また、質問サイトでも日本人からの回答が得られやすくなると言っていいでしょう。

利用者に日本人が多いということは、それだけ日本語の参考書も多いということになります。
初心者の方はWebの記事の他に、書店で発売されている参考書も見る機会が多いと思います。
Rubyは国産ですから、その点では他の言語よりも一歩進んでいると見ていいでしょう。

個人的な印象ですが、Rubyは日本のベンチャー企業が好んで使っている印象があります。
国産の言語ということで、Rubyを応援しようという波が存在するのでしょう。
しかし、最近はライバルのPythonに押され気味なので、これから数年後はどうなっているかわかりません。

Rubyもマルチプラットフォームな言語なので同じコードが色んなOS上で動きます

RubyもPythonと同様、スクリプト言語なので速度が遅い傾向があります。また、ライブラリの豊富さではおそらくライバルのPythonに一歩及ばずといったところでしょうか。

PHP(ピーエイチピー)

2019年現在、Developer Survey Results 2019内のランキングによると「最も愛されている言語」で23位を獲得しています。
「最も人気のある言語」では8位です。
設計者はデンマーク系カナダ人のラスマス・ラードフです。

とにかくWebに向いている言語と言えます。昔からWebで使われている言語で、日本の中小企業などは使っている所が多いのではないのでしょうか。
また、WebフレームワークのLaravelの登場によりその真価が再注目されている言語でもあります。Laravelは比較的に後発のWebフレームワークで、そういった意味ではモダンなWebフレームワークと言えるでしょう。
SNSのFacebookはPHP製とのことです(フレームワークを使っているかどうかは不明です)。
また、PHPではWebフレームワークを使わずに掲示板を作ったりということが簡単に出来るため、Webの勉強にも向いている言語と言えるかもしれません。もっとも、最近のWebの開発ではフレームワークを使うのが一般的です。そのため勉強用途ということになりそうです。
ほかにも有名なCMSでWordpressがあります。これもPHP製です。PHPが使えればWordpressのテーマやプラグインも作成できるようになります(テーマについてはHTML/CSSの知識も必要です)。

PHPもマルチプラットフォームな言語なので同じコードが色んなOS上で動きます

デメリットとしては悪い評判をよく目にするということです(あくまで個人的な感想です)。言語的な文法の解釈に難を示すユーザーをよく見ます。そういうったネガティブな要因がランキングにも反映されていると言えるかもしれません。

おわりに

各言語の向き不向きについて紹介してきました。
ここで紹介したプログラミング言語はごくごく一部ですが、その得意分野/苦手分野をわかっていただけたかと思います。
初心者の方が言語を選ぶ際に意識してほしいのは「プログラミング言語が持つ得意分野」です。
その得意分野が自分の興味のある分野とマッチしていたとき、その言語があなたにとって最適な言語である可能性が高いと言っていいでしょう。

次回に続きます!



姉妹ブログを見に行く。

スポンサーリンク

スポンサーリンク

スポンサーリンク

スポンサーリンク