各種プログラム言語と開発環境まとめ(概要) | IT SKILL MAP

各種プログラム言語と開発環境まとめ(概要)

 現在、システム開発に利用される各種プログラム言語とその開発環境、フレームワークについてまとめます。この概要では、プログラム言語の基礎的な概念についてまとめます。

1.汎用系・オープン系

 汎用系は汎用コンピュータいわゆる大型コンピュータ(メインフレーム)を利用したシステムのことでNECのACOSシリーズ、IBMのZシリーズなどがあります。時代の流れの中、WindowsやLinuxを利用したオープンシステムへの移行が進められ、過去の遺産という意味でレガシーシステムと呼ばれるようになりました。この汎用コンピュータで利用されるプログラム言語はCOBOL、C、JCLなどです。JCL部分はメーカーごとに独自の言語が用意されており、違うメーカー同士の互換性がありません。

 対して。オープン系は、オープンシステム、いわゆるWindowsやLinuxを利用することにより、どのメーカーの機器でも共通して利用できるシステムです。オープン系で利用されるプログラム言語はJava、C++、C#、VBなどです。


2.インタプリタ方式・コンパイル方式

 まず、プログラム言語は、その実行方法により大きく2方式に分かれます。
 ・インタプリタ方式
 ・コンパイル方式
 です。
 プログラムを実行するためには、機械語に変換しなければなりませんが、その変換方法について、一括で機械語に変換する方式をコンパイル方式。1行ずつ変換しながら実行していく方式をインタープリタ方式と呼びます。
 実行速度はコンパイル方式の方が、コンパイル済の実行ファイルを直接実行できることから高速です。


3.IDE(:Integrated Development Environment)とは

 IDEとは、統合開発環境と呼ばれるプログラム言語を用いたソフトウェアの開発環境のことです。コンパイラ、テキストエディタ、デバッガを1つのGUI上で実現し、さらにインテリセンスを始めとした開発を効率化するツールが用意されています。統合開発環境を使うことによって、効率的にプログラム開発することが出来ます。


4.フレームワーク

 プログラム言語の派生製品のようなものです。プログラムを作成するにあたり、あらかじめ良く使う機能を該当言語で既にプログラム化したものを、部品(フレームワーク)として提供しています。
 フレームワークを利用することで開発を効率化できますが、フレームワークを利用するための独自の文法が用意されていることがほとんどで、通常のプログラム言語の知識に加えてフレームワークを操作するための知識が必要となり、プログラムの視認性という観点では、フレームワークを利用することで複雑化する要因になるとも言えます。

5.MVCモデル

 ソフトウェアの設計手法の一つで、ソフトウェアの内部データと、ユーザーが直接参照・編集する部分を完全に分離することを目的とした手法です。機能を分離することで、役割分担、障害切り分け、依存関係の少ないプログラミングとなります。

要素 説明
Model
モデル
ソフトウェアの内部データにあたるビジネスロジック部分です。
具体的にはデータベースとコアプログラムです。
View
ビュー
表示を行う画面部分です。ユーザーの入力項目は表示するのみで、その入力されたデータの制御はControllerが行います。
具体的にはデザインを含むフロントエンドプログラムです。
Controller
コントローラー
ユーザーの入力に基づき,ModelとViewを制御します。
具体的には制御プログラムです。

 一例ですが、WEBの典型的な構成、HTML、PHP、MYSQLを利用したサイトはMVCモデルと言えます。MYSQL内のデータをHTMLからは直接扱えず、PHPを介してその処理を行います。この場合、
・Model:MySQL
・View:HTML
・Controller:PHP
となります。
 Javaのプログラミングにおいて、フロントエンド部分、データベース接続や業務ロジック、制御プログラムを明確に別モジュール化して構築していく場合もMVCモデルです。

6.Servlet、CGI、JSP、ASP.NET、アプリケーションサーバー

 これらの用語は、サーバーサイドプログラムに関する用語です。

ServletとCGI

 Servlet(サーブレット)とは、Javaで作成するサーバーサイドプログラムのことで、Java EEに含まれるServletコンテナを利用して作成するプログラムです。このプログラムをTomcatなどのJavaアプリケーションサーバー上で実行することで、ウェブページなどからのリクエストに、動的にレスポンスを行います。
 CGIも役割は同じなのですが、CGIはリクエストの都度、新規でプロセスを生成しているのに対し、Servletはメモリに常駐して、リクエストの都度プロセスより軽量なスレッドを生成します。この仕様によりServletはCGIに比べて、より高速にレスポンスを返すことが可能になります。

ServletとJSP(:JavaServer Pages)

 Servlet、JSPどちらも、Javaで作成するサーバーサイドプログラムのことですが。MVCモデルにおいて、Servletはコントローラー、JSPはビューの役割を果たし、主にHTMLの生成を行います。
 文法的にServletはJavaの文法でコーディングできますが、JSPはスクリプト言語的な書き方のため、別途学習が必要となります。

ASP(:Active Server Pages).NET

 Microsoft Visual Studioで作成するサーバーサイドプログラムのことです。IISをアプリケーションサーバーとしてウェブページなどからのリクエストに、動的にレスポンスを行います。

アプリケーションサーバー

 特定のプログラムをサーバーサイドで動作させるために必要となるサーバーのことです。上記でServlet、JSPのTomcat、ASP.NETのIISなど上記でいくつか名前を挙げましたが、下図にまとめます。

アプリケーションサーバー 対応するプログラム言語 備考
Tomcat、GlassFish、WildFly Java: Servlet、JSP
IIS VB、C#: ASP.NET
Node.Js JavaScript
mod_php(Webサーバー用モジュール) PHP
Tornado Python
Passenger(Webサーバー用モジュール) Ruby: Ruby on Rails Linuxのみ対応
Unicorn Ruby: Ruby on Rails Linuxのみ対応


おすすめの関連記事

各種プログラム言語と開発環境まとめ(Java)
JavaのIDE開発環境、フレームワークについてまとめました。
各種プログラム言語と開発環境まとめ(HTML、CSS)
HTML及びCSSのIDE開発環境、フレームワークについてまとめました。
各種プログラム言語と開発環境まとめ(JavaScript)
JavaScriptのIDE開発環境、フレームワークについてまとめました。
各種プログラム言語と開発環境まとめ(VB、VBA)
VB、VBAのIDE開発環境についてまとめました。
各種プログラム言語と開発環境まとめ(C++、C#)
C++、C#のIDE開発環境についてまとめました。
各種プログラム言語と開発環境まとめ(PHP、Python、Ruby)
PHP、Python、RubyのIDE開発環境、フレームワークについてまとめました。
各種プログラム言語と開発環境まとめ(Swift)
SwiftとSwiftのIDE開発環境についてまとめました。
各種プログラム言語と開発環境まとめ(その他)
Go、関数型言語についてまとめました。