【プログラミング初心者必見!】言語別の違いとは?

これからプログラミングを勉強しようとしている方!!

大学生
「よしプログラミング言語の勉強しよう!あれっ?なんかプログラミング言語いっぱい種類あるぞ!!」

と思ったことはありませんか?

そうなんです!!!種類がめっちゃ多いです!

ではどうしてこんなにもプログラミングの種類が豊富なのでしょうか?
実は目的によって変わります。
しかも目的が違うから言語ごとに機能や文法の違いが出てきます。
今回はプログラミングをいくつかピックアップしてそれぞれの特徴を述べながら、あなたの勉強すべきプログラミング言語を提案したいと思っております。

【読み飛ばしてOK】くーちんが今までに学んだプログラミング言語

僕はまず大学の授業でFortran(フォートラン)を勉強しました。
あまり馴染みのない言語ですが、数値計算やシミュレーションに強いと言われています。

その後、Androidのアプリを作ってみたいと思いJavaを勉強しました。(結局立派なアプリを作ることができず)

さらにホームページ作成に興味が出てHTML,CSS,Javascriptをかじりました。

ゲームを作りたいと思い、Unityというゲームエンジンを使って遊んでいた時期もありました。
UnityではC#という言語で動いているのでC#も必然的に勉強することになりました。

最近ではWEBアプリケーションを作りたいと思い、PHPRubySQLも勉強してます。

それぞれの言語のスペシャリストではありませんが(ミーハーです笑)言語の違いとか特徴はわかるようになってきました。
一見似たような言語でも違いはもちろんあります。
その辺の違いを説明していきますね。

プログラミングの種類と人気

プログラミングにはたくさんの種類があり人気度も変わってきます。

プログラミングの人気ランキングを毎月発表しているTIOBE社によると、2018年10月の人気ランキングは以下の通りです。

順位 言語
Java
C
C++
Python
Visual Basic .NET
C#
PHP
JavaScript
SQL
10 Swift

参考文献:TIOBE INDEX

知っている言語が含まれていたでしょうか?
ちなみに有名なプログラミング言語をざっと一覧にすると下図の通り、非常に多くの言語があることがわかります。

JavaScript Java C C++ Python
Visual Basic .NET C# PHP SQL Swift
Ruby R Go COBOL BASIC
Fortran Haskell Kotlin MATLAB Objective-C
Perl Scala まだまだあるよ!!!

言語の特徴(目的別)

それでは数ある言語の中からいくつかピックアップし紹介していきます。

WEBページを作りたいならJavaScript

まずはJavaScriptです。
これはWEBページを自分で作る際に必要になる言語です。
フロントエンド言語の一種です。(フロントエンド言語は、WEBページの表示に関わる言語みたいなもの)

しかしJavaScriptを勉強する前にHTMLとCSSの知識が必須なのでまずはこちらを学ばなければなりません。

HTML:WEBページの骨組みを構成する、各パーツを意味づけする
CSS:スタイル(デザイン)を決める
JavaScript:動的なWEBページを作る
という認識で問題ないと思います。

動的なWEBページとはどういうことか説明します。
HTMLとCSSだけでも一応ページを作ることは可能です。しかしそれは静的なページです。
HTMLやCSSだけでは画面が一度表示されてその後画面のデザインや構成が切り替わったりしません。
だから動かない、つまりは静かなページということで静的なのです。
しかし、あるボタンを押したらあるパーツが新しく表示されたりしたいと思うことがあるでしょう。
そういう動的な機能はJavaScriptが担当します。

HTML、CSSにも共通しますが、JavaScriptのメリットは自分が作ったコードの結果をブラウザですぐに確認できることです。
他のPHPなどサーバーサイド言語は環境構築という作業が必要になるので非常に面倒なので、それに比べると手軽に勉強できる言語だと思います。

アプリを作るならJava,Swift,Objective-C

スマホのアプリを作りたいという目標がある人もいらっしゃるでしょう。

スマホの中でもAndroidとiPhoneに分かれます。
Android向けのアプリはJava
iPhone向けのアプリはSwiftもしくはObjective-Cで作ることができます。

Javaは非常に人気の言語で、政府や銀行の大規模なプロジェクトにも使用される言語です。
ですのでコードを書くのに時間がかかることが多く、簡単なプログラムを作りたいのであれば、もっと手軽な言語があるのでそちらを使った方が良いでしょう。
初心者が最初にJavaを勉強するとつまずきやすいとも言われたりします。(僕はそこまでビビることは無いと思いますが)
ただAndroidアプリを作るには勉強しないといけませんね。

Javaのその他特徴としては

  • JVM(Java仮想マシン)で動くこと
  • オブジェクト指向の言語の1つ
  • JavaScriptとは全くの別言語、赤の他人

ですね。

iPhone向けには2つの言語、Swift,Objective-Cがあります。
Objective-CはC言語を拡張して作られたものですが、文法が独特でわかりにくいというデメリットがありました。
そんなデメリットを解決すべく、Swiftが登場します。
Swiftは非常にシンプルで短いコードが特徴です。
プログラマーも気持ちよく書ける方が良いのでSwiftはiPhoneアプリ開発の主流になってきました。

WEBアプリケーションを作りたければPHP,Ruby,SQL

WEBアプリケーションはWEBページ(クライアント側)とサーバーをPHPRubyで連携したり、データベースからSQLでデータを呼び出すことでより実現する高機能なWEBページという認識で良いでしょう。
ただの情報が書かれたページではありません。
TwitterやFacebookのようにいいねやリツイート機能を備えたり、投稿時間順にツイートを並べたSNSはWEBアプリケーションの1種です。

WEBアプリを作るための言語の代表例がPHP,Rubyです。
この2つの違いは色々ありますが、
PHPは「WEBアプリと言えばこれ!」という地位を確立している。人気が高くユーザーも多い。
Rubyは最近ユーザーがどんどん増えていて、気持ちよくコードが書けるのが特徴です。またRuby on Railsというフレームワークにより効率的に開発が進められることで有名です。

またWEBアプリにはお客さんのデータを格納したりすることが多いのでデータベースの操作が必須です。
そこでSQLというデータベースを管理する言語を勉強しましょう。

ゲームを作りたければC#

自分でオリジナルのゲームを作りたいと思う方はC#がおすすめです。
ゲームは様々な方法で作ることができますが、手軽で楽しくゲームを作りたいのであればUnity(ユニティ)という3Dゲームエンジンを使うことがおすすめです。
Unityは感覚的に物体を配置したり、変形、回転させることができます。
またアセットストアで無料で色々な人や自然のパーツが揃っているので、ゲームの素材を用意しやすいです。
しかし物理計算、衝突判定にはプログラムを書く必要があるので、その際C#の知識が求められます。
C#は古い歴史を持つC言語から派生したものです。C言語はとっつきにくいと言われるんですが、C#は非常にわかりやすいです。

⬇️が実際のUnityの作業風景です。

人工知能、機械学習にはPython

人工知能や機械学習にはPythonだ!と聞いたことがある方多いと思います。
Pythonの文法は非常にシンプルで書きやすいので、この点が人気の理由の1つであるでしょう。
しかし書きやすさシンプルさで言えばRubySwiftも該当します。
なぜ人工知能はPythonと言われるのでしょうか?
理由はライブラリが充実しているからだと思います。
(TensorFlowやKerasが特に有名です。)
今流行の人工知能や機械学習の研究にも関われますし、初心者でもとっつきやすい言語なので非常におすすめです。

今回は目的別に言語を紹介しました。
プログラミング言語は実は文法が似ています。
1個勉強したら雪だるま式に理解が深まっていくと思うので、1個目の言語でつまずかないようにしたいですね。
そのためにも初めは簡単に理解できる言語を勉強していきましょう!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です