軽量プログラミング言語

提供: miniwiki
移動先:案内検索

軽量プログラミング言語: 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を例として挙げている。

軽量プログラミング言語の歴史

「LL」という語が初めて使われたのは2001年の「LL1: 軽量言語ワークショップ」[2]だと思われる。2002年のIBMディベロッパー・ワークスの記事『IBM 軽量サービス、パート1: サーバー・サイド スクリプティング[3]』に、本文に説明付で「a lightweight language」という表記があった 日本では2004年に「Lightweight language magazineライトウェイト・ランゲージ・マガジン」が発売され2004年にマイコミジャーナル、2007年にソフトウェア開発者向けのウェブサイト「@ITアットマーク・アイティ」や同「CodeZineコードジン」に軽量プログラミング言語という表現が現われている。

軽量プログラミング言語の例

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

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

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

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

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

lightweight programming language

2018年1月現在、英語版ウィキペディアでは「lightweight programming language」とは、「designed to have very small memory footprint, is easy to implement (important when porting a language), and/or has minimalist syntax and features.」であるとされており、例として Forth, Io, JavaScript, Lua, newLISP, Squirrel が挙げられている。しかしその定義からすると Forth と Lua 以外は疑わしいようにも思われるし、この定義に従っていかに言語を「軽量」に設計しても、フットプリントは標準ライブラリ次第であり、言語ではなくむしろ実装の持つ計量(メトリクス)である。

また、1997年に書かれた「エンジニアリング・ツールとしての軽量言語」[4]では、プログラミング言語内で補助的に使われる、正規表現SQLGLSLを「lightweight languages」と呼んでおり、これはどちらかというとドメイン固有言語を指している。

英語で PerlPHP を指し示す場合は「scripting languageスクリプティング・ランゲージ」と表現するのが妥当である(他の軽量プログラミング言語についてもそう言えるという話ではない)。

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

日本独自の用語・分類への批判

英語版における以上のような記述(のみ?)を根拠に、冒頭に挙げたMITでのLLワークショップや日本における用語や分類を「日本独自の用語・分類」であると主張し批判する、以下のような意見が存在する。

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

比較対象がないことへの批判

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

誤解を招く用語であるという批判

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

脚注

  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

外部リンク