LogoMark.png

ProgrammingLanguage のバックアップ(No.3)


プログラミング言語

プログラムを記述するための形式言語

コンピュータと人工知能・ロボットは、私たちの社会、私たちの仕事のあり方を大きく変えつつあります。これらに関して全体を俯瞰する知識が必要です。

重要なのは、コーディングのスキルそのものではなく、コーディングの体験を通して、プログラミング的思考を身につけること、また、他者(機械も他者です)とのコミュニケーションの方法を知ることです。

ちなみに、プログラミング言語は(英語をベースとした)世界の共通言語です。自然言語としての英語は、世界中どこでも通用するものではありませんが、プログラミング言語は、それを知っている者同士であれば、世界中で通用します。


プログラミング言語の動向


代表的な言語

以下、一般には「プログラミング言語」とは区別されます。


コンパイラ型とインタプリタ型

コンピュータのCPUは単なる計算機で、0と1で書かれた「機械語」しか理解出来ません。そこでソースコードを機械語に翻訳・通訳する必要が生じます。プログラミング言語は、その仕方の違い、つまり「一括して翻訳する」か「一文ずつ通訳する」かの違いで区別されます。


プログラミング言語のパラダイム

初期のコンピュータプログラミングは、入力>処理>出力という計算手順を逐次的に書くだけ・・というシンプルなものでしたが、扱う対象の変化に伴い、その書き方の発想も変化してきました。特にGUI(グラフィカルユーザーインターフェイス)の登場で、マウスクリックなどの「イベント」への対応が中心になるとともに、データと処理(関数)をパック化した「オブジェクト」を中心としたプログラミングへと変化してきました。現在のプログラミング言語の多くはオブジェクト指向型のパラダイムを採用しています。




付記:ネイティブアプリとWebアプリ

ネイティブアプリ

ネイティブアプリとは、PC、タブレット、スマートフォンなどにインストールして動かすアプリケーションです。OSごとに異なるAPI(Application Programming Interface)を利用して動くものなので、例えば、Windows用のアプリは、WindowsOSを搭載したパソコンでしか動きません。

ネイティブアプリをインストールする際は、対応するOS(バージョンも含めて)を確認する必要があります。

一般に、ネイティブアプリは、コンパイラ言語でコーディングされてバイナリーファイル(機械語に翻訳・ビルド*1されたもの)として提供されるもので、ファイルを開いても、プログラムのコードを直接見ることはできません。

Webアプリ

Webアプリとは、デバイスやOSプラットフォームに依存することなく、Webブラウザ上でアクセスして利用するアプリケーションのことです。

フロントエンド(ブラウザ側)で機能する HTML、CSS、JavaScript といった言語と、バックエンド(サーバ側)で機能するPHP、Ruby、Python、Node.js などの言語の組み合わせで成立します。

身近な例としては、GoogleMap や GoogleDocs などのサービス、ECサイト、CMS(Blog や Wiki)などが挙げられます。

クラウド上に存在するサービス・・という感覚で、その実体は、ネイティブアプリのような実行ファイルとは異なり、複数の言語で書かれたソースコードが、ブラウザ上、またサーバー内でインタプリタ言語として処理されている・・というイメージになります。

フロントエンド側のソースコード(HTML、CSS、JavaScript)は、ブラウザの「ソースを表示」で、実際に誰でも見ることができます。バックエンド側のソースコード(PHP、Ruby、Python、Node.js など)を利用者が見ることはできない仕様になっていますが、基本的にエディタで直接開くことができるテキストファイルとしてサーバー上に置かれています。