プログラミング言語はなぜこんなに数があるの?言語の違いを紹介します!
  • facebookページ
  • twitterページ
  • 2017.09.23

    プログラミング言語はなぜこんなに数があるの?言語の違いを紹介します!

    世の中にはどれほどのプログラミング言語があるのでしょうか?一説には200とも300とも言われていますが、一般に知られていない言語を加えれば300どころではないかもしれません。ただ、実際に現役で使われている言語は50未満でしょう。

    仮に50に絞り込めたとしても沢山のプログラミング言語があるとどれを選択したらいいか分からなくなりますので主要なプログラミング言語について様々な角度で調べてみましょう。

    最新人気プログラミング言語ランキング

    IEEE Spectrumが発表した2017年の人気プログラミング言語ランキングには全部で48個のプログラミング言語がランキングしています。
    このランキングはGitHubから抽出した全言語をGoogle検索などでふるいにかけ選ばれたプログラミング言語に対して12の評価項目からランキングを算出したものです。

    ベテランエンジニアであっても聞いた事がないというようなプログラミング言語も含まれていますが、現在赤丸急上昇のPythonが2017年度の第1位というのは時代を反映しているのではないでしょうか。

    順位 プログラミング言語 ポイント 一言コメント
    1 Python 100.0 近年人気急上昇のPythonです。今、Pythonが出来ると引っ張りだこです
    2 C 99.7 unixはそのほとんどがC言語で作成されているとか
    3 Java 99.4 業務システムではスタンダードですが、イマイチ人気はないんですよね
    4 C++ 97.2 C言語にオブジェクト指向要素を盛り込んだ言語
    5 C# 88.6 C/C++とは縁もゆかりもありません
    6 R 88.2 統計解析のための専門言語
    7 JavaScript 85.4 Javaとは赤の他人です
    8 PHP 81.1 Webアプリを開発するときによく使われるスクリプト言語
    9 Go 75.8 Googleが作成したスクリプト言語
    10 Swift 75 Appleが作成したiOSアプリを作成する言語
    11 Arduino 72.4 マイコン向けのC++みたいな言語
    12 Ruby 72.1 神様は「まつもとゆきひろ」Railsの次が欲しい所
    13 Assembly 71.8 13位とは今でも使っている人がいるんですね
    14 Matlab 68.6 統計処理専門
    15 Scala 68.1 JVMで動きます
    16 HTML 67.2 プログラミング言語と言えるのでしょうか
    17 Shell 65.8 BとかCとかKとか色々な種類があるので一括りにされても
    18 Perl 57 文字列処理に強いスクリプト言語。使いこなすと変態扱い!?
    19 VisualBasic 54.4 マイクロソフトが作った言語。.netを混ぜてもこんなものなんですね
    20 Cuda 53 NVIDIA/GPUで使えますが使っている人を見たことはありません
    21 Rust 52.1 Mozillaが作成した並列処理が得意な言語
    22 Lua 52.1 アヒル好き?
    23 Processing 49.9 お絵かきが得意
    24 SQL 49.6 チューニングが大変
    25 Haskell 47.7 関数型の代表選手。もっと人気があるものと・・・
    26 Objective-C 45.2 Swift以前
    27 Delphi 40.9 ObjectPascal。昔はもっと人気があったんですけどね。
    28 Fortran 40.4 一定の需要があるようですね
    29 D 37.9 A→B→C→D。Eはないようです
    30 Julia 35.4 計算科学、数値解析向けらしいです
    31 VHDL 35.1 デジタル回路設計用だそうです
    32 Prolog 32.7 教育分野で使われているとか
    33 LabView 32.2 グラフィックス型言語?
    34 Lisp 30.4 Perlよりも・・・
    35 Verilog 29.9 言語というよりシミュレーターかな
    36 Erlang 27.4 並行処理が得意です
    37 Ada 25.5 ペンダゴンが好きな緑色
    38 ABAP 25.5 SAP専用言語
    39 SAS 25.4 合言葉は「THEPOWERTOKNOW」
    40 Clojure 24.1 マルチスレッドが簡単になるそうですよ
    41 Cobol 23.8 まだまだ現役です
    42 Scheme 18.7 LISPの親戚
    43 TCL 9.9 ペアはTkじゃなきゃね
    44 J 9.3 普及しなかったのにね
    45 Ocaml 8.4 オブジェクト指向らくだ
    46 Actionscript 1.5 Flashのスクリプト言語。今年が最後のランクインでしょう
    47 LadderLogic 0.5 聞いたことありません
    48 Forth 0 昔の言語によくある環境一体型

    なぜプログラミング言語はたくさんあるのか

    ランキング対象となったプログラミング言語だけでも48種類ありますが、なぜ、こんなに数が多いのでしょうか?
    プログラミング言語は言ってみれば「問題を解決する道具」ですが、ある領域ではうまく問題を解決できても(=その業務領域をうまくシステム化出来た)別の領域ではそれほどうまく問題を解決できない。という事があります。「帯に短しタスキに長し」というやつです。

    昔からあるFortran(28位)とCOBOL(41位)の例が分かりやすいでしょう。Fortranは科学技術計算をうまくプログラミングできるように産み出されました。ですから、計算式を簡潔に記述できるように設計されています。COBOLはプログラミングになじみの薄いエンジニアでもプログラミングが出来るようにと産み出された言語です。そのため、英語に近い文法が採用されているため、多くのエンジニアが扱えるようになりましたが、Fortranを扱えるエンジニアからするとまどろっこしい文法になってしまいました。

    それぞれの問題を一番うまく解決するために最適な道具を開発していたらこれだけのプログラミング言語が出来上がったという訳です。

    プログラミング言語の違い

    プログラミング言語は沢山ありますがそれぞれどんなところが違うのでしょうか。

    書き方

    プログラミング言語毎に文法が異なりますが、いくつかのパターンに分類する事ができます。
    一番多いパターンとしてはC言語やJavaのパターンでしょうか。

    if(i < 10){
    i = i + 1;
    }

    処理の固まりを{}で囲むパターンです。上記のコードはC言語かJavaなのか区別が付きませんね。

    次のパターンとしては、RubyやBasicなどに見られるパターンでしょうか。

    if i < 10
    i = i + 1;
    end

    処理の終わりを「end」で示すパターンです。必ずしもendというキーワードという訳ではありません。

    LISPのようにC言語やJavaになじみが深いエンジニアにとっては何を書いているのかチンプンカンプンの言語もありますが、このどちらかのパターンに当てはまることが多いでしょう。

    プログラミング言語には一時的にデータを格納する変数がありますが、この変数には予めデータ型を指定する「静的型付け」と実行時にデータ型が決まる「動的型付け」の2種類があります。

    「静的型付け」の方が代入時の型誤りをコンパライがチェックしてくれるためバグをうみにくいと言われていますが、この件については様々な言い分があり統一した答えはありません。

    コンパイル

    プログラミング言語にはコンパイルが必要な言語と必要がない言語との2種類あります。コンパイルとは人が理解しやすいプログラミング言語をコンピューターが理解できる機械語に予め変換する事ですが、そうする事で実行処理が早くなります。Javaのようにコンパイルは行うが機械語に変換せず中間言語に変換し、仮想マシンが中間言語を解釈して実行するというパターンもあります。

    環境構築

    プログラムを作成するのに必要な環境はプログラミング言語毎に異なります。コンパイルが必要のないプログラミング言語であればテキストエディタがあればプログラムの作成は可能です。効率よくプログラムを作成するためにIDE(統合開発環境)を活用する場合もあるでしょう。

    また、古いプログラミング言語には開発環境や実行環境も含んだ環境を持っているケースもあります。

    プログラミング言語ができること

    当たり前の話しですがプログラミング言語はプログラムを作るための言語です。何を目的にしてプログラムを作成するかによってどのような事ができるかは全く異なりますが、選択するプログラミング言語よって得意な分野が異なりますので作成したいプログラムにマッチしたプログラミング言語を選択すると効率よくプログラムを作成する事ができます。

    WindowsOSで開発を行う場合、言語の処理系をWebページなどからインストールプログラムをダウンロードしてセットアップしましょう。
    OSの種類(32bit、64bit)

    プログラミング言語の選び方

    新しく学習するプログラミング言語を選択する場合、どのような点に気を付ければいいでしょうか。プログラミング言語を覚えるのが好きな人は単なる興味でいいでしょう。ただ、将来のスキルアップを目指しているのであれば、ニーズのあるプログラミング言語を選択したいですね。

    その場合、IEEE Spectrumのラインキングは1つの基準になるでしょうし、雑誌やネット記事などで見られる話題から選択するのもいいでしょう。
    また、2番目、3番目のプログラミング言語を選択するのであれば、今、習得しているプログラミング言語と同系でなく傾向が異なるプログラミング言語を選択すれば幅が広がります。

    まとめ

    今回はプログラミング言語の違いをテーマに人気ランキングからそれぞれの違いなどをまとめてみました。本当に沢山のプログラミング言語がありますね。
    IT業界に言語オタクと呼ばれる人たちがいて、仕事では使わないのに新しいプログラミング言語を覚えたり、自分でプログラミング言語作成したりしています。

    さすが、そこまでは。ですが、メイン処はプログラマーの基本知識でしょうし、IEEE Spectrumのラインキングは知っていてもいい知識です。

    言語にはそれぞれ思想、概念があり、それらを学ぶだけでもスキルアップにつながるため今回出てきたプログラミング言語の中から気になるものがあればチャレンジしてみてください。


    ポテパンが提供するサービスについて

    本メディア「ポテパンスタイル」を運営する株式会社ポテパンは、エンジニアキャリア領域で複数サービスを提供しています。

    ポテパンフリーランス

    ポテパンフリーランス

    フリーランスエンジニアの方に高単価案件をご紹介しております。弊社ではフリーランス案件を常時300件ほど保有しており、その中からあなたに適した案件をご案内いたします。また、これから独立してフリーランスになる方の無料個別相談も承っております。フリーランスになった後の案件獲得方法やお金面(税金や保険など)についてお答えいたします!フリーエンジニアになりたい方向けのコンテンツも盛りだくさんです。

    ポテパンキャリア

    ポテパンキャリア

    エンジニア職専門の転職エージェントです。ポテパンキャリアでは、技術のわかるエージェントがあなたの転職をサポートします。エージェント自身がエンジニアなので、あなたと同じ目線で仕事内容や今後のキャリアについて一緒に考えることができます。年収800万円以上のハイスペック転職をご希望の方は「ポテパンプロフェッショナル」もご用意しておりますのでご利用下さいませ。

    ポテパンキャンプ

    ポテパンキャンプ

    ポテパンキャンプでは、RubyにてゼロからオリジナルのECサイトを作り上げてる3ヶ月間の実践型カリキュラムを提供しております。すでに本スクールの卒業生は、エンジニア職として様々な企業様に就職しております。なお、本スクールは受講料25万円と他社スクールに比べ格安となっており、またポテパンからご紹介させていただいた企業へ就職が決まった場合は、全額キャッシュバックいたします。



    株式会社ポテパンは、企業とエンジニアの最適なマッチングを追求しています。気になるサービスがあれば、ぜひ覗いてみてください!

    ポテクラバナー ポテプロバナー

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE

    ポテパンおすすめ案件