Lightroomの40%はスクリプト言語で書かれている

http://www.radiumsoftware.com/0601.html#060130
AdobeLightroomは、LuaというのがC++ライブラリ用のグルー言語として使われているそうだ。その量は全体の40%で10万ライン。
http://staff.aist.go.jp/yutaka.ueno/lua/docsjp.html

Luaは、アプリケーションプログラムを拡張するために設計された、軽くてパワフルなプログラミング言語である。また、単独で動作するインタプリタを使って汎用のプログラミング言語としても利用されている。 Luaは手続き記述型の言語で、Pascal言語に似た簡素な文法を持っている。連想配列を使って様々なデータ構造を記述できるだけでなく、拡張可能に設計されている。また、動的な型付け、バイトコードを使った翻訳、自動メモリ割り当てとガベージコレクション機能などは、スクリプティングやシステムの構成管理、ラピッドプロトタイピングに最適である。
この言語の設計における基本的なコンセプトは、言語そのものに多くの機能を実現するのではなく、様々な機能を実現するための少数の仕掛けをつくることである。たとえば、 Lua言語は純粋なオブジェクト指向言語ではないが、クラスや継承といったオブジェクト指向言語の仕組みを実現ることができる。 Luaに搭載されたそれらの仕掛は、むやみに多くの概念を導入することなく、簡素な言語のままで拡張可能であるという、Luaの際だった特徴である。
そういった言語の基盤に加えて、アプリケーションプログラムとデータを交換したり、 Lua言語からC言語で書かれたプログラムを呼ぶことによって機能を拡張できるのが実用的である。その手続きはAPI(アプリケーションプログラムインターフェイス)として整理されており、 Luaはアプリケーションプログラムに組み込むことのできるデータ処理言語エンジンとなる。さまざまなソフトウエアシステムの領域において、データ処理言語をそのアプリケーションの領域に最適に構築するための土台になるものである。
LuaANSI-C言語で実装されたコンパクトなライブラリで、多くの機種に移植されている。簡素で、効率的で、移植性が高く、組み込みに手間のかからないライブラリをなることを目標として実装した結果、軽快で高速な言語エンジンとなった。組み込みシステムでの利用にも最適である。 Luaは、リオデジャネイロ、 カトリカ大学(PUC-Rio) の情報工学科コンピュータグラフィックステクノロジーグループ TeCGraf によって設計開発された。ホームページに紹介されているいくつかのプロジェクトでの利用事例や、メーリングリストからより多くの情報を得ることができる。著者のメールアドレスは lua@tecgraf.puc-rio.br である。

http://www.uri.sakura.ne.jp/~cosmic/yuno/lab/lua5_manual_ja.html

Luaは拡張プログラミング言語である。データ記述機能を持ち、汎用の手続き型プログラミングをサポートするようデザインされた。オブジェクト指向プログラミング、関数型プログラミング、データ駆動型プログラミングもサポートしている。 Luaは、パワフルで軽いコンフィギュレーション言語としての意図もあり、コンフィギュレーションが必要なあらゆるプログラムに使うことができる。 Luaは クリーンな C (つまり、ANSI C と C++ の共通のサブセット) で書かれ、ライブラリとして実装されている。
拡張言語であるため、Luaは「メイン」プログラムを持たない。ホストクライアント (エンベッディングプログラム、あるいは単にホスト とも呼ぶ) に 組み込まれて 動くだけである。このホストプログラムは、Luaコードを実行する関数を呼び出したり、Luaの変数を読み書きしたり、Luaから呼ばれるCの関数を登録したりできる。 Cの関数を使ってカスタマイズすることで、共通の構文を持つプログラミング言語で様々な領域を広範囲にカバーすることができる。
Luaディストリビューションにはスタンドアロンのホストプログラム lua が含まれている。これはLuaのライブラリを使った完全なLuaインタプリタである。

まさに、こういう目的のために作られた言語なんだな。かなりの変り種。