プログラミング言語の違い【マークアップ言語やスクリプト言語ができること】

プログラミング言語(マークアップ言語・スクリプト言語)ライブラリ・フレームワークの違いと関係性を示す画像

ウェブやシステムで使われる言語には、目的にあった特性があり、それが違いとなって現れています。

違いが生まれた原因は、プログラミング言語が目的や用途によって生み出されてきたためです。

この違いによって、プログラミング言語の学習のしやすさにも違いが出てきます。

プログラミング未経験者の場合は、ウェブ系のスクリプト言語であるJavaScriptやRubyが簡便で学習しやすいです。

この記事では、プログラミング言語の違いについて説明します。

プログラミング言語の特徴【できること・得意分野を解説】

言語によるできることの違い

言語 できること
HTML&CSS ウェブやアプリ画面のレイアウト・デザイン
JavaScript ウェブアプリケーション
VBA Microsoft社Officeソフトウェアのマクロ
Ruby ウェブアプリケーション
PHP ウェブアプリケーション・ウェブサービス
Python 人工知能(AI)・ウェブアプリケーション
Swift Apple社MacOSやiPhoneのアプリケーション
Java 家電制御プログラムの組み込み・大規模システム

このように、プログラミング言語によってできることに違いがあります。

なぜ違いがあるのか

できることに違いがある理由は、開発者がコンピューターを使って何をしたいのかという目的に合わせてプログラミング言語が生み出されてきたからです。

  • JavaScript:ウェブアプリケーションを開発する目的
  • VBA:MicrosoftのOfficeソフトウェアに自動処理を実装する目的
  • Ruby:開発者まつもとゆきひろ氏自身がプログラミングを楽しむ目的
  • PHP:開発者ラスマス・ラードフが自分のウェブサイトに動的機能を実装する目的
  • Python:わかりやすい論理的なプログラムをプログラマーが書けるようにする目的
  • Swift:MacOSやiPhoneのアプリを多くの人が開発できるようにする目的
  • Java:家電に制御プログラムを組み込みする目的

このような目的によって、プログラミング言語のできることに違いが生まれます。

Pythonが他の言語に比べて劇的に読み書きしやすいのは、まさにその目的で生み出された言語だからです。

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

プログラミング言語の違いは、次のような観点で見ることができます。

  • プログラミング言語の特性の違い
  • プログラミング言語の得意分野の違い
  • プログラミング言語の習得しやすさの違い

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

それぞれのプログラミング言語には、特性に違いがあります。

主に型付けコンパイルパラダイム(記法)といった点がプログラミング言語によって違い、用途にも影響します。

また、プログラミングの未経験者には、コンパイル不要な言語が学習しやすいです。

コンパイルとは、人間が書いたプログラムを機械語に変換する作業です。ひと手間増えます。
どんな言語がコンパイル不要なんですか?
JavaScriptPHPPythonなどのスクリプト言語はだいたいコンパイル不要です。

プログラミング言語の得意分野の違い

プログラミング言語には、向いている分野があります。

家電などの製品への組み込みに向いているのは、CC++Java

ウェブに向いているのは、HTMLというマークアップ言語と一緒に記述できるJavaScriptPHP

スマホアプリに向いているのは、iPhoneならSwift、AndroidならJavaKotlin

人工知能に向いているのは、機械学習や統計解析に強いライブラリを持ったPythonR

なぜこのような違いがあるのでしょう?
コンピューターにどういうことを処理させたいか…という需要からプログラミング言語が生まれるからです。
目的地に行く手段として、バス・電車・船・飛行機などの違いが生まれるのと似たようなものなんですね。

プログラミング言語の習得しやすさの違い

プログラミング言語の特性や得意分野の違いは、習得のしやすさの違いに影響します。

ウェブ系のスクリプト言語であるJavaScriptやPHPは、ウェブという親しみやすい媒体を使って学習できるのもあって、習得しやすいです。

Pythonは人工知能に向いていると聞くと、なんだか難しそうな印象を持つかもしれません。しかし、Pythonはスクリプト言語と言われる習得しやすい言語に入ります。

C系の言語やJavaは、組み込みやシステム開発で使われる言語なので、習得するのがやや困難で時間がかかります。

ウェブにも人工知能にもExcel操作にも何にでも使えるPythonは、学習コストパフォーマンスの高い言語です。

言語の違いと役割

フレームワークとは

フレームワークとは、特定の用途で使用するプログラムのテンプレートのようなものです。

ウェブページやアプリ開発を効率良くプログラミングできます。

ウェブアプリ開発用のフレームワークを持つ言語は多いです。もっとも有名なのはRuby on Railsでしょう。

  • Ruby:Ruby on Rails
  • JavaScript:vue.js
  • PHP:Laravel
  • Python:Django

ライブラリとは

ライブラリとは、特定用途で使うためのプログラム(関数やオブジェクトなど)をひとまとめにしたツールです。

たとえば、OSを操作するためのライブラリ、正規表現を使うためのライブラリなどがあります。

ライブラリが豊富な言語Pythonは、ライブラリによって如何様いかようにも化けます。

  • Excel用ライブラリ:Excelを操作することができます。
  • 人工知能用ライブラリ:人工知能開発ができます。
  • 画像加工用のライブラリ:画像加工アプリができます。

マークアップ言語との違い

マークアップ言語との違い
プログラミング言語 マークアップ言語
記述 処理・制御の手続きや関数を記述。 ウェブやアプリの画面レイアウトを記述。
制御構造 制御構文(繰り返しや条件分岐)などを持つ。 制御構文を持たない。
学習方法 構文やロジックを理解していく。数学の知識が必要。 タグを覚えていく。数学の知識は不要。
難しさ 初心者には難しい。 初心者にも簡単。

マークアップ言語とは、文書をタグ構造で記述するための言語です。

プログラミング言語とのもっともな違いは、制御構造の有無でしょう。マークアップ言語には制御構造がありません。

もっとも身近なマークアップ言語は、ウェブページのレイアウトに使われるHTMLです。HTMLはタグ構造のウェブ用の文書です。

ウェブ開発では、プログラミング言語でHTMLを出力することも多々あります。

スクリプト言語との違い

プログラミング言語とスクリプト言語との違いというよりも、プログラミング言語にスクリプト言語が含まれます。

スクリプト言語は、次のような特性に共通点があります。

  • 用途:アプリケーション向き
  • 記法:簡易的
  • 型付け:動的
  • コンパイル:不要(インタプリタ方式)
  • ガベージコレクション:あり

スクリプト言語とは、特定用途のアプリケーション作成に向いている簡易的なプログラミング言語のことです。

ただし、スクリプト言語の明確な定義はありません。動的型付けインタプリタ方式などの特性に共通点があり、スクリプト言語と呼ばれています。

JavaScriptやRuby、PHP、Pythonなどがスクリプト言語に該当します。

P言語とも呼ばれる

Perl、PHP、Python、Rubyのスクリプト言語をまとめてP言語と呼ぶことがあります。特性が似ており、頭文字が「P」で共通しています。(Rubyの頭文字はRですがP言語に含まれています。)

まとめ

  • プログラミング言語には、特性・得意分野・習得しやすさなどの観点で違いがある。
  • プログラミング言語とは、数式を使って計算させるプログラムを組むことができる言語。
  • ライブラリやフレームワークは、特定の用途におけるプログラミングをより簡便にするためのツール。
  • プログラミング言語によって、できることに違いがある。コンピューターに何をやらせたいのかという目的に合わせて、プログラミング言語が生み出されてきたから。
  • この記事を書いた人

non

小学生のときにBASIC言語でプログラミングを覚え、社会に出てからはPythonを主力に通信業界で無線設計とGISシステム開発に携わること12年目。プライベートではPHP・MySQLでウェブサービスを作りつつ、副業で収入を得ています。「プログラミングは人生を豊かにする」と実感しています。