軽量プログラミング言語

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

軽量プログラミング言語(lightweight language)は、2001年にMITで開催されたワークショップ「LL1: Lightweight Languages Workshop」のCFPによれば[1]、何らかの実際の機能によるカテゴライズではなく、習得・学習・使用が容易な(The term "lightweight" refers not to actual functionality, but to the idea that these languages are easy to acquire, learn, and use.)プログラミング言語を指し、当時におけるそのような言語としてPerlPythonRubySchemeCurlを例として挙げている。

なお日本においてはそれとは別に、スクリプト言語ないしは取り回しに優れコードの作成や修正が容易と見なされるプログラミング言語のことを指す和製英語である、と主張する向きもあるようである。

CGIやウェブアプリケーションの勃興に伴い、スクリプト言語が新規開発の主役に躍り出たが、日本においてスクリプト言語という表現が不適切だと考え、軽量プログラミング言語と呼ぶ人々が現れるようになった。ゆえに、一般に軽量プログラミング言語に分類される PerlPythonPHPRuby などのプログラミング言語のドキュメントには、スクリプト言語と記述されている事が多い。[要出典]

軽量プログラミング言語の歴史[編集]

「LL」という語が初めて使われたのは2001年の「LL1: 軽量言語ワークショップ」[2]だと思われる。2002年のIBMディベロッパー・ワークスの記事『IBM 軽量サービス、パート1: サーバー・サイド スクリプティング[3]』に、本文に説明付で「a lightweight language」という表記があったが、欧米では「LL」という単語は定着しなかった。[要出典] 日本では2004年に「Lightweight language magazine(ライトウェイト・ランゲージ・マガジン)」が発売され、「LL」という単語が散見されるようになった。2003年以前はほとんど使われていない。主要なインターネット・メディアに軽量プログラミング言語という表現が現われるのは同時期からである。[要出典]2004年にマイコミジャーナル、2007年にソフトウェア開発者向けのウェブサイト「@IT(アットマーク・アイティ)」や同「CodeZine(コードジン)」に軽量プログラミング言語という表現が現われている。

軽量プログラミング言語の例[編集]

現在、日本で一般に軽量プログラミング言語と言った場合、おおむね以下のようなスクリプト言語を指す。

また、以下の言語なども挙げられる。一部、事前にコンパイルが必要な言語も含まれる。

軽量プログラミング言語のリソース消費量[編集]

日本における軽量プログラミング言語の「軽さ」は、英語における lightweight の意味とは大きく異なり、プログラマの負担の軽重を指し、実行速度やメモリ消費量に優れているという意味ではない。この独特の文脈に基づき、軽量プログラミング言語という単語の推進者は、

などの特色を備えるものを軽量プログラミング言語と分類しているが、スクリプト言語の特色を逸脱するものではない。

lightweight programming language[編集]

英語版ウィキペディアによれば、「lightweight programming language」は計算機リソースを多くは消費しないという意味で軽量であり、C言語などが例としてあげられている。つまり、プログラマ負担の軽い言語を意味しない。また、1997年に書かれた「エンジニアリング・ツールとしての軽量言語」[4]では、プログラミング言語内で補助的に使われる、正規表現SQLGLSLを「lightweight languages」と呼んでいる。よって、日本における軽量プログラミング言語と欧米における軽量プログラミング言語は、その「軽量」の意味においてまったく異なるものであるため注意が必要である。英語で PerlPHP を指し示す場合は「scripting language(スクリプティング・ランゲージ)」と表現するのが妥当である。

ただし、「LL1: 軽量言語ワークショップ」の参加者募集[5]からは、『学術的研究から出てきた技術を取り込みつつ、職業プログラマーの手によって画期的なアイディアも組み込まれている言語。軽量は、実際の機能性ではなく、簡単に入手できて、覚えることができ、使う事ができることを意味する。このカテゴリーに分類されるだろう例は、PerlPythonRubyScheme(とscsh)、Curl を含む。』と理解することができる。よって、主催者であるドブス[6]の定義は日本語における意味と近いと思われる。もっとも、非日本ドメインのウェブページにおける「lightweight languages」の語を含むページ数は、「scripting languages」の語を含むページ数の1%に満たない(2008年8月5日現在)ため、ドブスの定義が英語圏で定着しているとは言えない。

日本独自の用語・分類への批判[編集]

日本における軽量プログラミング言語という用語と言語の分類は、多分に主観的なものであり、軽量プログラミング言語という言葉は不適切だという批判も多い。

比較対象がないことへの批判[編集]

「重い」「軽い」という言葉は相対的な表現であり、比較対象となるものを明示せずに分類することはできない。

誤解を招く用語であるという批判[編集]

一般的にスクリプト言語はコンパイル型の言語に比べると実行速度は遅い傾向にある。軽量プログラミング言語という用語は「実行速度が速い言語」と誤解される可能性が極めて高く、その意味でもこの用語の使用は不適切である。

脚注[編集]

  1. ^ http://ll1.ai.mit.edu/cfp.html
  2. ^ : LL1: Lightweight Languages Workshop
  3. ^ IBM Lightweight Services, Part 1: Server-side scripting
  4. ^ Lightweight Languages as Software Engineering Tools
  5. ^ http://ll1.ai.mit.edu/cfp.html
  6. ^ : Dr. Dobbs