※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

プログラミング言語の比較

人間が使う言語に「日本語」「英語」「フランス語」・・・と様々あるように、
一口にプログラミング言語といっても、目的や用途に応じて様々なものが存在します。
このページでは初心者にもできるだけ分かり易く、大まかな言語の
特徴やオススメ度などを紹介していこうと思います。

※オススメ度や解説等は一部筆者の偏見や間違った解釈等が
 含まれている可能性があります。もし意見等ありましたら修正してくださるか、
 コメントフォーム等に連絡をお願いします。

※現在編集中です・・・加筆してくださる方いたらお願いします

手続き型

「手続き型言語」とは、プログラムに処理させたい内容を一連の手続きとして
記述する形式のプログラミング言語です。

C言語(シーげんご)

メリット :・書籍や解説等が多数存在するため勉強には困らない。
      ・構文自体が理解しやすく、直感的にプログラムが書ける。
      ・ハードウェアの直接操作などを効率よく記述できる。
デメリット:・文字列の扱いが苦手。
      ・メモリを直接参照するポインタという概念を多用するため、
       ある程度の慣れが必要。また、安全性の点から問題点が多い。
オススメ度:★★☆☆☆
1972年にUNIX開発のために作られたプログラミング言語で、
古い言語ではありますが、その利便性の高さから現在でも多用されている言語です。
しかし、C言語は後述のC++のほぼ下位互換であるため、これから新規に勉強する人は
C++をはじめることをオススメします。

C++(シープラプラ)

メリット :・C言語に上位互換性を持つため、C言語の構文をそのまま使える。
      ・非常に多くのライブラリが存在し、オブジェクト指向プログラムも可能。
      ・C言語同様、多くの書籍や解説サイトが存在する。
デメリット:・言語仕様が複雑で、すべての機能を理解するのは難しい。
      ・ガベージコレクション機能がないので、手動でのメモリ開放が必要。
オススメ度:★★★★☆
C言語を改良して作られた汎用プログラミング言語です。C言語のほぼ完全上位互換性を持ち、
現在プロ・アマを問わず最も多くのプログラマに使用されている言語です。
C++標準ライブラリやBoostなどを用いることで非常に多くの機能を用いることができる上、
C言語でも可能なハードウェアに密接した処理記述も可能など、非常に汎用性が高い反面
すべての機能を理解して使うのは難しい言語ともいえます。

Pascal(パスカル)

メリット :・教育用に作られた言語であるため、言語仕様が簡易で理解しやすい。
デメリット:・アプリケーション開発等の大規模開発には向いていない。
      ・書籍は多いが、古い言語ゆえに新しいものが少ない。
オススメ度:★☆☆☆☆
Pascalはプログラミングの初心者への教育目的で作られた言語です。
元々アプリケーション開発等に用いることを前提に作られたものではないので、
そのため、(今となっては)教育用と言っても実践向けではないので
あまりオススメすることはできません。

オブジェクト指向型

「オブジェクト指向言語」とは、プログラムの構成要素をオブジェクトと
呼ばれる単位に分割し、オブジェクトごとのやり取りにより
処理を記述する形式のプログラミング言語です。

Java(ジャバ)

メリット :・C言語やC++と似た文法を持り、文法が理解しやすい。
      ・オブジェクト指向の考えに基づいて設計された言語のため、
       プログラムが煩雑になりにくい。
      ・クロスプラットフォーム(複数のOSに対応している)言語である。
      ・Javaアプレット等を利用することでネットワークプログラムの作成も可能。
      ・C言語、C++に次いで書籍等が多数出版されている。
デメリット:・(C言語等と比べると)構文が冗長。
      ・開発環境を用意するのが少し面倒。
オススメ度:★★★★★
1995年、サン・マイクロシステムズ社(現オラクル)によって作成された
オブジェクト指向型プログラミング言語です。C++や他の言語の良いところを取り込み、
欠点の解消を目的に設計された言語であるため、非常に優れた文法を多数持ちます。

C#(シーシャープ)

メリット :・JavaとC++の良いところを両方持っている。
      ・Visual Studioを用いることでアプリケーションを容易に作成可能。
      ・XNA Game Studioが使える。
      ・コンパイルが高速。
デメリット:・C言語及びC++との互換性がない。
      ・.NET Framework(ドットネットフレームワーク)が必要なため、
       環境依存になる可能性がある。
      ・現在も更新が続いているため、今後言語仕様が大幅に変わる可能性がある。
オススメ度:★★★★★
マイクロソフト社が自社の.NET FrameWork戦略の一環として開発した言語です。
C言語風の文法とJavaのオブジェクト指向要素の両方を取り入れ、
.NET Frameworkを用いることでアプリケーション開発を効率よく行うことが
可能な点が特徴です。

Visual Basic(ビジュアルベーシック)

メリット :・Visual Studioを用いることでアプリケーションを容易に作成可能。
デメリット:・記述が独特なため、慣れるのに少し時間がかかる。
      ・.NET Framework(ドットネットフレームワーク)が必要なため、
       環境依存になる可能性がある。
オススメ度:★★★★☆
マイクロソフト社が開発したWindows用の開発用言語です。
Basicの名が示すとおり、初心者でも理解しやすく、かつ大規模開発も可能な
汎用性の高い言語です。C#同様、.NET Frameworkを用いたアプリケーション開発を
効率よく行うことが可能です。

Objective-C(オブジェクティブシー)

メリット :・iPhone/iPadで動作するプログラムを作成できる。
      ・C言語の上位互換言語である。
デメリット:・ほかの言語と比較すると記述が独特で、慣れないと理解が難しい。
オススメ度:★★★★☆?
Objective-Cは現在アップル社の主力であるMac OS X及びiPhone OSの
OS記述に用いられている言語です。
かつてはマイナーな言語でしたが、2000年代後半からiPhoneが普及するにつれて
iPhoneアプリ開発用言語として使用者が大幅に増加しています。

スクリプト言語

「スクリプト言語」とは、他のアプリケーションに埋め込んだり、
Webサーバ上で動作させるなどの目的で使われるプログラミング言語です。

Java Script(ジャバスクリプト)

メリット :・HTMLに埋め込むことで派手なホームページを作成可能。
      ・手軽にブラウザゲームを作ることができる。
      ・広く普及しているため、書籍や解説サイトが多い。
デメリット:・ブラウザや環境によって意図しない動作を行う可能性がある。
オススメ度:★★★★☆
JavaScriptはNetscape社が開発したオブジェクト指向型スクリプト言語です。
主にWebブラウザを通して実行され、動的コンテンツ(ゲーム等)を作ることが可能です。
なお、初心者は勘違いしやすいがJavaとは全く無関係の言語なので混同しないように。

Perl(パール)

メリット :・正規表現が扱える等、文字列処理能力が高い。
      ・豊富なライブラリ・モジュールが存在する。
デメリット:・ソースコードの可読性が低い。
       (意識して記述しないと読みにくいソースコードになりやすい。)
オススメ度:★★★☆☆
Perlは実用性や多様性を重視して開発されたスクリプト言語です。
自由な記述方法を持ち、文字列処理に強いという特徴を持っています。
また、CPANというライブラリやモジュールをまとめたアーカイプが存在し、
多岐に渡る様々なライブラリが存在するのが特徴です。

Ruby(ルビー)

メリット :・オブジェクト指向プログラミングが可能。
      ・Webアプリ開発にRuby on Railsが使える。
      ・繰り返し処理が使いやすくかつ強力。
      ・日本語文字列を扱いやすい。
デメリット:・環境を用意するのが少し面倒。
      ・GUIアプリの開発には使い辛い。
      ・ある程度オブジェクト指向を理解している必要がある。
オススメ度:★★★☆☆
日本人のまつもとゆきひろ(Matz)氏が作ったオブジェクト指向型スクリプト言語です。
Perlと似た文法を持ち、Perlの手軽さとJava等のオブジェクト指向記述の両方の良さをもった
記述が可能な点が特徴です。

PHP(ピーエイチピー)


その他

上述の言語以外にも、「関数型言語」のLISPや「論理型言語」のPrologなど、
様々なプログラミング言語が存在し、目的に応じて使い分けられています。
これら言語は特化した目的で作られていることが多いので、
新しく始める人には基本的にはオススメできません。
「こういう言語もあるのか」程度に抑えておくとよいと思います。

HTML(エイチティーエムエル)

Prolog(プロログ)

LISP(リスプ)

FORTRAN(フォートラン)

COBOL(コボル)