軽量プログラミング言語
軽量プログラミング言語(英: 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.)プログラミング言語を指し、当時におけるそのような言語としてPerl・Python・Ruby・Scheme・Curlを例として挙げている。
Contents
軽量プログラミング言語の歴史
「LL」という語が初めて使われたのは2001年の「LL1: 軽量言語ワークショップ」[2]だと思われる。2002年のIBMディベロッパー・ワークスの記事『IBM 軽量サービス、パート1: サーバー・サイド スクリプティング[3]』に、本文に説明付で「a lightweight language」という表記があった
日本では2004年に「
軽量プログラミング言語の例
現在、日本で一般に軽量プログラミング言語と言った場合、おおむね以下のようなスクリプト言語を指す。
- AWK
- ECMAScript と、その応用 ActionScript、JavaScript、JScript
- Lua
- Perl
- PHP
- Python
- Ruby
- シェルスクリプト(bash、csh など)
- Tcl
- VBScript
また、以下の言語なども挙げられる。一部、事前にコンパイルが必要な言語も含まれる。
軽量プログラミング言語のリソース消費量
日本における軽量プログラミング言語の「軽さ」は、英語における 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]では、プログラミング言語内で補助的に使われる、正規表現やSQL、GLSLを「lightweight languages」と呼んでおり、これはどちらかというとドメイン固有言語を指している。
英語で Perlや PHP を指し示す場合は「
ただし、「LL1: 軽量言語ワークショップ」の参加者募集[5]からは、『学術的研究から出てきた技術を取り込みつつ、職業プログラマーの手によって画期的なアイディアも組み込まれている言語。軽量は、実際の機能性ではなく、簡単に入手できて、覚えることができ、使う事ができることを意味する。このカテゴリーに分類されるだろう例は、Perl、Python、Ruby、Scheme(とscsh)、Curl を含む。』と理解することができる。よって、主催者であるドブス[6]の定義は日本語における意味と近いと思われる。もっとも、非日本ドメインのウェブページにおける「lightweight languages」の語を含むページ数は、「scripting languages」の語を含むページ数の1%に満たない(2008年8月5日現在)ため、ドブスの定義が英語圏で定着しているとは言えない。
日本独自の用語・分類への批判
英語版における以上のような記述(のみ?)を根拠に、冒頭に挙げたMITでのLLワークショップや日本における用語や分類を「日本独自の用語・分類」であると主張し批判する、以下のような意見が存在する。
日本における軽量プログラミング言語という用語と言語の分類は、多分に主観的なものであり、軽量プログラミング言語という言葉は不適切だという批判も多い。
比較対象がないことへの批判
「重い」「軽い」という言葉は相対的な表現であり、比較対象となるものを明示せずに分類することはできない。
誤解を招く用語であるという批判
一般的にスクリプト言語はコンパイル型の言語に比べると実行速度は遅い傾向にある。軽量プログラミング言語という用語は「実行速度が速い言語」と誤解される可能性が極めて高く、その意味でもこの用語の使用は不適切である。
脚注
- ↑ http://ll1.ai.mit.edu/cfp.html
- ↑ 英: LL1: Lightweight Languages Workshop
- ↑ IBM Lightweight Services, Part 1: Server-side scripting
- ↑ Lightweight Languages as Software Engineering Tools
- ↑ http://ll1.ai.mit.edu/cfp.html
- ↑ 英: Dr. Dobbs
外部リンク
- https://ll.jus.or.jp/ — 軽量言語を始めとする多様な言語に関する日本のイベント