「軽量
プログラミング言語」という用語は、主に日本で用いられる分類で、
英語圏では必ずしも広く受け入れられていません。この言葉が初めて登場したのは、2001年にMITで開催された「LL1: Lightweight Languages Workshop」です。このワークショップでは、
Perl、
Python、
Ruby、
Scheme、Curlといった言語を例に挙げ、習得、学習、使用の容易さを強調していました。当時、これらの言語は既存の「
スクリプト言語」や「
動的型付け言語」といった分類に完全に当てはまらない側面を持っていたため、新たなカテゴリーとして「軽量
プログラミング言語」という
概念が提案されたのです。
翌2002年の「LL2: Lightweight Languages Workshop」では、
Ruby開発者の
まつもとゆきひろ氏が、「より少ない労力で開発が行える
プログラミング言語」という
定義を提案しました。これは、実行速度やメモリ消費量といったリソース消費量ではなく、
プログラマの開発効率に焦点を当てた
定義と言えるでしょう。その後、日本国内では、雑誌やウェブサイトなどでこの用語が使用されるようになり、次第に定着していきました。
日本で「軽量
プログラミング言語」と呼ばれる言語は、主に
スクリプト言語が中心となっています。代表的な例としては、
Perl、
Python、
Ruby、PHP、
JavaScript、
Luaなどが挙げられます。これらの言語は、一般的に
インタプリタ方式で実行され、
動的型付けを採用している点が共通しています。ただし、コンパイルが必要な言語や、
静的型付けの言語も含まれる場合もあります。これは、この分類が実行速度やメモリ消費量といった技術的な側面を重視しているわけではないことを示しています。
具体的には、以下の言語が「軽量
プログラミング言語」として挙げられることが多いです。
スクリプト言語: AWK、bash、csh、ECMAScript(
ActionScript、
JavaScript、
JScriptを含む)、
Lua、
Perl、PHP、
Python、
Ruby、
Tcl、
VBScriptなど
その他: Clojure、Curl、Groovy、
Haskell、
JavaFX Script、PowerShell、
Scala、
Scheme、F# Interactiveなど
これらの言語は、それぞれ異なる特徴を持つものの、共通して学習コストが比較的低く、短期間でプログラムを作成できるという利点があります。
英語圏における「Lightweight Language」
一方、
英語圏における「lightweight language」の解釈は、必ずしも日本での理解と一致しません。
英語版ウィキペディアでは、「小さなメモリフットプリント、容易な実装、最小限の構文と機能」を特徴として挙げ、Forth、Io、
JavaScript、
Lua、newLISP、Squirrelなどを例としています。これは、リソース消費量を重視した
定義であり、日本の文脈とは異なるニュアンスを持っていると言えるでしょう。また、
ドメイン固有言語(DSL)を指す場合もあるため、文脈によって意味が大きく変わる可能性があります。
さらに、
英語圏では
PerlやPHPは「scripting language」と呼ばれることが一般的であり、「lightweight language」という表現はあまり一般的ではありません。
批判と議論
「軽量
プログラミング言語」という用語は、その曖昧さと主観的な分類方法から、様々な批判を受けています。
日本独自の用語・分類であるという批判: 英語圏では定着しておらず、日本独自の用語・分類であるという批判があります。
比較対象がないという批判: 「軽量」という表現は相対的なものであり、比較対象を明確にせずに分類することは
不適切であるという批判があります。
*
誤解を招く可能性があるという批判: 「軽量」という表現から、実行速度が速い言語と誤解される可能性があり、この用語の使用は
不適切であるという批判もあります。
これらの批判は、この用語の
定義の曖昧さと、
英語圏での認識とのずれを浮き彫りにしています。
まとめ
「軽量
プログラミング言語」は、
プログラマの負担に着目した日本独自の分類です。実行速度やメモリ消費量ではなく、習得や使用の容易さを重視するこの
概念は、多くの
プログラミング言語を包含する一方、その曖昧さと
英語圏との認識のずれから、様々な議論を呼んでいます。この用語を使用する際には、その
定義と背景を理解し、誤解を招かないように注意する必要があります。今後の発展において、より明確な
定義が求められる可能性があります。