既卒のための業界解説|SE(プログラマ)の武器であるプログラミング言語の種類とシェアは?

SE(プログラマ)を目指すならまずはプログラミング言語の種類とシェアを知ろう!

未経験からSE(プログラマ)を目指そうとしている方とよくお会いします。しかし、大学、専門学校でプログラミングを学んでいた方ならいざ知らず、未経験からSE(プログラマ)を目指そうしている大体の方がどの言語を身に付けようか迷うもの。

ここでは、プログラミング言語の種類とそのシェアについてまとめてみようと思います。皆さんもシェアの高い言語を選んでもいいですし、自分がこれからやりたい業務に関連する言語の特徴を学んでいきましょう。

プログラミング言語の特徴とシェアまとめ

MTI3NDExMjAzNDE1Nzg3NTMw

第10位|Visual Basic .NET

言語シェア率:2.126%

プログラミング初心者にも比較的使いやすいと言われていますが、本格的なソフトウェアの作成にも使用できます。現に多くの開発現場で採用されています。マイクロソフトが推し進めている.NETの一環で、.NET Framework上で動作したり、オブジェクト指向が本格的に取り入れられるなど、前バージョンのVisual Basic 6.0からの変更点はかなりの数にのぼり、言語仕様の互換性は低いと言えます。

そのため、.NETには移行せず既存のVisual Basicを使ってソフトウェアを開発する利用者もいるようです。これを懸念したマイクロソフトは、Visual Basic 2005より従来のVisual Basicの一部機能を採り入れています。

コンパイラはマイクロソフトから無料で提供されているので、Windows付属のメモ帳等を使ってプログラムすることもできますが、専用に開発された統合開発環境を使って開発するのが一般的のようです。

Visual Basicと同様、製品は有償でのみ提供されていますが、バージョン2005、2008、2010では主に個人向けとして位置付けられているExpress Editionが無償で配布されています。

第9位|Visual Basic

言語シェア率:2.199%

初期のバージョンはBASICから派生したマイクロソフトのQuickBASICを拡張したもので、RADに対応した統合開発環境の名称でした。2002年にVisual Basic.NETという名前で7番目のバージョンがリリースされて以降、それ以前とは大幅に位置付け・仕様が異なり、明確にプログラミング言語を意味するようになりました。Visual Basic.NET以降のVBはそれ以前と区別するために、まとめてVisual Basic.NETまたはVB.NETと呼ばれることがあります。

もともとが初心者用言語のBASICから派生しているという来歴から、VBもプログラミング初心者用と言われることが多くありましたが、実際にはC#と同等の機能・性能を持っており、さまざまなビジネスシーンで活用されています。

第8位|Python

言語シェア率:2.690%

Pythonは汎用の高水準言語です。プログラマの生産性とコードの信頼性を重視して設計されており、核となるシンタックスおよびセマンティクスは必要最小限に抑えられている反面、利便性の高い大規模な標準ライブラリを備えています。

多くのプラットフォームをサポートしており(動作するプラットフォーム)、また、豊富なドキュメント、豊富なライブラリがあることから、産業界でも利用が増えつつあります。

第7位|PHP

言語シェア率:3.009%

動的にHTMLデータを生成することによって、動的なウェブページを実現することを主な目的としたプログラミング言語、およびその言語処理系です。一般的には PHP と省略して用いられており、これは「個人的なホームページ」を意味する英語の "Personal Home Page" に由来します。

PHPはサーバーサイド・スクリプト言語として利用されており、Webサーバ上で動作し、Webサーバ上でPHPスクリプトの文書が要求されるたびに、そのPHPスクリプトが実行され、結果をウェブブラウザに対して送信しています。平易な文法のため初心者でも習得しやすく、また大規模な開発にも多く用いられている。多くのフレームワークやライブラリが存在し、開発の手助けとなっています。

数多くのオープンソースウェブアプリケーションに利用されている一方、しばしば脆弱性の報告がなされ、過去に深刻なセキュリティホールが何度か報告されている点が課題のようです。

第6位|JavaScript

言語シェア率:3.297%

JavaScriptという言葉は狭義にはMozillaが仕様を策定し実装しているスクリプト言語を指します。このスクリプト言語はEcmaインターナショナルでECMAScript (ECMA-262) として標準化されており、多くのWebブラウザ等はこの標準化されたECMAScriptを実装しています。たとえば、マイクロソフトによる実装はJScriptと呼ぶようです。

一般的にJavaScriptという言葉が使われるときはこのようなさまざまなECMAScriptの実装も含んだ幅広い意味で使用されているので、どちらの意味でJavaScriptという言葉が使われているかは文脈で判断する必要があります。

ECMAScriptは仕様自体に独自の拡張を条件付きで認める記述があり、現在主要なブラウザが実装しているスクリプト言語はすべてECMAScriptに準拠していることになります。広義の意味でこれをJavaScriptと呼ぶ場合、主要なブラウザが実装しているスクリプト言語はマイクロソフトやGoogle, Appleの実装も含めてJavaScriptになります。

第5位|C#

言語シェア率:4.947%

開発にはボーランド社のTurbo PascalやDelphiを開発したアンダース・ヘルスバーグを筆頭に多数のDelphi開発陣が参加しています。

C#は共通言語基盤(共通言語ランタイムなど)が解釈する共通中間言語にコンパイルされて実行されます。基本的な書式がC言語風になっているため、初見の構文はサン・マイクロシステムズ社によるJavaに近いと言われるが、実際の構文はDelphiに準じており、C言語風ということもありC++ Builderの独自拡張構文に極めて近い内容となっています。またプロパティやデリゲートなどDelphiの構文そのまま、もしくは名称変更しただけの機能となっているものが多いようです。

自動ボックス化、デリゲート、プロパティ、インデクサ、カスタム属性、ポインタ演算操作、構造体(値型オブジェクト)、多次元配列、可変長引数、などの機能を持ちます。また、Javaと同様に大規模ライブラリ、プロセッサ・アーキテクチャに依存しない実行形態、ガベージコレクション、JITコンパイルによる実行の高速化、などが実現されている。

.NET構想における中心的な開発言語であり、XML WebサービスやASP.NETの記述にも使用されます。他の.NET系の言語でも記述可能だが、生産性・機能においてC#が最も優れるとされています。マイクロソフトの統合開発環境では、Microsoft Visual C#がC#に対応しています。

第4位|Objective-C

言語シェア率:5.890%

Objective-CはCを拡張してオブジェクト指向を可能にしたというよりは、Cで書かれたオブジェクト指向システムを制御しやすいようにマクロ的な拡張を施した言語です。したがって、「better C」に進んだC++とは異なり、「C & Object System」という考え方であり、ある意味2つの言語が混在した状態にあります。

関数(メソッド)の定義と呼び出し方が独特であるため、Objective-Cのコードは一見C++以上にCとはかけ離れた独特の記述となります。しかし、言語仕様はCの完全上位互換であり、if/for/whileなどの制御文や、intなどのスカラー型、関数記法、宣言・代入といった基本的な文法はCに準拠します。

一方オブジェクトシステムはSmalltalkの概念をほぼそのまま借用したもので、動的型のクラス型オブジェクト指向ランタイムを持ち、メッセージパッシングにより動作します。このことからしばしば「インラインでCの書けるSmalltalk」または「インラインでSmalltalkの書けるC」などと呼ばれています。

最大の特徴はオブジェクトシステムが完全に動的という点で、実行時のクラス拡張、オブジェクト汎用型idの導入により型によらない動的配列・辞書など、インタプリタに近い記述力をもつことです。実際にコードそのものはネイティブコンパイルされるものの、動作原理はほぼインタプリタに近く、コンパイラ型言語としてはまれな柔軟性を発揮します。

第3位|C++

言語シェア率:6.962%

1983年にベル研究所のコンピュータ科学者のビャーネ・ストロヴストルップが、C言語の拡張として開発した。当時の名前は「C with Classes」(クラス付きのC言語)だったと言われています。拡張はクラスの追加に始まり、仮想関数、多重定義、多重継承、テンプレート、例外処理といった機能が続いていきました。1990年代以降、C++は、最もよく利用される商用のプログラミング言語の一つとなりました。

標準規格化がISOとIEC共同で行われており、現在最新のバージョンは、2014年に制定されたISO/IEC 14882:2014、通称「C++14」となります。

表現力と効率性の向上のために、手続き型プログラミング・データ抽象・オブジェクト指向プログラミング・ジェネリックプログラミングの複数のプログラミングパラダイムを組み合わせています。アセンブリ言語以外の低水準言語を必要としない、使わない機能にコストを要しないことが、言語設計の重要な原則となっています。また、静的な型システムを持ちます。

言語仕様の拡張が繰り返され、複雑で難解な言語であると評価されています。エレガントで多種多様な記述方法が可能である点が混乱を招きやすい点は事実ではあります。

第2位|C言語

言語シェア率:15.745%

C言語(シーげんご)は、1972年にAT&Tベル研究所のデニス・リッチーが主体となって開発したプログラミング言語です。英語圏では単に「C」と呼んでおり、日本でも文書や文脈によっては同様に「C」と呼ぶことがあります。

UNIXおよび C コンパイラの移植性を高めるために開発してきた経緯から、オペレーティングシステムカーネルおよびコンパイラ向けの低レベル記述ができることを特徴としています。

第1位|Java

言語シェア率:16.041%

Java は、それ以前のさまざまな言語の良い部分を引き継ぎ、欠点を克服するよう設計されました。次のような特徴があります。

  • Java ではプラットフォームに依存しないアプリケーションソフトウェアの開発と配備を行うことができる。
  • Java で開発されたソフトウェアは堅牢な実行環境(仮想マシン)であるJava仮想マシンの下で動作する。
  • オブジェクト指向プログラミングの考え方に基づいて設計された言語であり、ソフトウェアの開発と保守の複雑さを低減し、開発効率と保守性を高める。
  • Smalltalk や Objective-C と同様な簡潔なオブジェクトモデルを採用している。

構文は C および C++ から多くを引き継いでいると言えます。

現在、Java の技術は、情報技術のローエンドからハイエンドまで幅広く使われています。組み込みシステムや携帯機器(携帯電話・PHSやPDA・スマートフォン等)のシステムから、企業の情報システムを担う大規模なサーバやスーパーコンピュータまで、非常に多くの分野で活用されている言語と言えます。

番外編|驚異的にシェアを伸ばすSwift

imasia_14657560_M

言語シェア率:0.761%

Swift(スウィフト)は、アップルのiOSおよびOS Xのためのプログラミング言語です。Worldwide Developers Conference (WWDC) 2014で発表されました。アップル製OS上で動作するアプリケーションの開発に従来から用いられていたObjective-CやObjective-C++、C言語と共存することが意図されています。

Swiftは、マルチパラダイムのコンパイラプログラミング言語であるが、XcodeのPlaygroundsの上やターミナルでインタラクティブにデバッグする事が可能です。

職種図鑑の関連記事
  • 設計のための会議をする人々
    元エンジニアが語る!未経験者がネットワークエンジニア(インフラエンジニア)に就職するための方法とは?
  • サーバールームで働く人々
    インフラエンジニア(ネットワークエンジニア)の業務内容とは?|既卒のための業界解説
  • シューズの紐を締め、走りだそうとしている男性
    営業への転職する際の心構え【第二新卒・既卒の為の営業職解説Part.3】
  • 一つのノートパソコンを見ながら話し合う男性2人
    営業の求人の種類や離職率を教えます【第二新卒・既卒のための営業職解説Part.2】
  • メガネを外してこちらを見つめる男性
    営業とはどんな仕事?適正に悩んでいたら要チェック【第二新卒・既卒の為の営業職解説Part.1】
  • 電卓を使って計算する人の手元
    未経験から経理職に就職するには?~経理職についてPart2~
おすすめの記事
seven dreamers laboratories の総務職求人
事務職(総務・経理・法務・営業事務)
どのような仕事をするのか? ▼バックオフィス業務全般 【具体的には】 ▼総務 ▼人事制度の運営 ▼入退社手続 ▼備品管理など どのような社風...
シュクレイの人材戦略課(採用)求人
事務職(総務・経理・法務・営業事務)
どのような仕事をするのか? ■採用活動 ・新卒・中途社員の採用・教育業務 新卒社員・中途社員・アルバイトスタッフの採用と研修プログラムの策定...