PHP
PerlやRubyと同様にWebアプリケーション開発用の言語として普及しているスクリプト言語です。HTMLに埋め込み、サーバ側スクリプトとして処理することで動的にHTMLファイルを生成することができます。初心者にも書きやすく扱いやすい言語でありながら、便利なライブラリが多数用意されているため、大規模な開発にも対応することが可能です。一般にApache+MySQLの組み合わせで利用することが多く、データベースと連携させたWebアプリケーション開発に使われています。
PerlやRubyとの違いは、Webアプリケーション開発のためのサーバ側スクリプトとしての役割に特化しているという点と、ソースコードをHTMLに組み込むことが前提となっていることでしょう。PHPのソースコードは、<?phpから始まって?>で終わります。この間に囲まれているコードがPHPとして処理されますが、それ以外の部分はHTMLとしてそのままサーバからクライアントに出力されます。HTMLの一部分にアルゴリズムや変数を取り入れたものとも考えることができます。クライアントからのリクエストが発生したときにPHPコード部分を処理して結果を返します。
このようにHTMLに組み込むような形となるPHPの性質は、プログラミング言語というよりもASP.NETやJSPのようなWebアプリケーション・サーバのような機能に近いものがあります。しかし、PHPは多くの機能をサポートするライブラリを持ち、大規模なWebアプリケーション開発も可能としているため、初心者から上級者までが様々な分野で応用することができます。
| 学習レベル | 初心者~ |
| 実行方式 | インタプリタ型 |
| 開発対象 | CGI、モジュール |
| 適用分野 | Web開発 |
<?php
echo "Kitty on your lap";
?>
echoは、関数ではなく言語に組み込まれています。そのため、変数の値から関数を動的に呼び出す可変関数など、一部の仕組みで利用することができません。同じ出力する処理でも、C言語やPerl言語のように関数機能として提供しているものもあれば、JavaやC#のように抽象化された標準出力オブジェクトから出力する環境、そしてPHPのように言語に組み込まれた構文を使うものなどがあり、言語ごとの違いを比較してみると面白いものです。
関連リンク
Python
国内ではそれほど普及しておらず、ここ最近になってようやく普及の兆しが見え始めているスクリプト言語です。この言語も、Apacheなどに組み込んでWebサーバ上で実行するサーバ側スクリプトとしての利用が一般的です。Webアプリケーション開発に使えるほか、ZopeというCMSでも使われています。
加えて、近年ではJavaや.NETのような仮想システム上で動作する動的な言語としても注目され始めています。Java仮想マシンで動作するJythonや.NET Framework上で動作するIronPythonなどの実装が存在します。これらは、仮想システム上でPythonスクリプトを実行することができ、加えてプラットフォームが提供する標準クラスライブラリも使用することができます。ソースコードから直接実行可能なインタプリタ型の性質を維持しつつ、Javaや.NET Frameworkの高度なクラスライブラリを使える点が注目されています。
Pythonは、他の言語に比べて文法がやや特殊で、改行やインデントなどのホワイトスペースを文法の一部として利用しています。C言語など、多くの言語はプログラムの構造を中カッコ{ }などを用いて定義しますが、Python言語はインデントの深さでブロックを認識します。この仕様は、強力なPython支持者の間では誰が書いたコードでも読みやすくなると歓迎される傾向にありますが、C言語の文法に一度慣れてしまった開発者には多少の抵抗があるかもしれません。
| 学習レベル: | 初心者~ |
| 実行方式: | インタプリタ型 |
| 開発対象: | アプリケーション、CGI、モジュール |
| 適用分野: | アプリケーション開発、Web開発 |
print "Kitty on your lap"
Python言語もまた、PerlやRuby、PHPなどと同じように、構造的な宣言を行わなくても標準出力にテキストを表示させることができます。printは関数ではなく言語仕様上で定められているprint文として機能しています。実際には、組み込みモジュール内にある標準出力を表すオブジェクトに対して出力処理が行われます。
関連リンク
最後に
残念ながら、本稿では実用性を重視したためにより古典的なプログラミング言語であるFORTRANやCOBOL、Pascal、Lispや、マニア度の高いオブジェクト指向型言語AdaやSmalltalk、スクリプト言語のLuaやTclなどは紹介しませんでした。プログラミング言語を仕事として実用することはもちろん重要なことですが、異なる文化で育った言語に触れることで、これまで気がつかなかった発見があります。たとえば、関数型言語であるLispなどを学習すれば新しい刺激を得られることでしょう。
また、本稿で語られているプログラミング言語の学習レベルや適用分野は、あくまで筆者の経験に基づく判断です。学習スタイルの違いや、過去の経験などによっても、覚えやすいかどうかや、好みも分かれることでしょう。どのような言語にも長所と短所があると思いますが、より多くの言語を学習することでプログラミングの知識を深めることができるはずです。
