Friday, January 27, 2006
It's All Glue
Adobe Lightroom is a new application for profession and serious amatuer photographers to allow them to efficiently sort, cull, rate, keyword, caption, show, print and edit large volumes of photos. (Watch this video of Lightroom in action; it looks very slick).One aspect of Lightroom that I found interesting is that 40% of the code is written in Lua, a light-weight programming language designed for extending applications.
Adobe Fellow Mark Hamburg began work on Lightroom a few years ago. See Mark's presentation on how Lua was used in Lightroom. It's more than just an application extension language. Virtually all of Lightroom's UI logic, view layout, database abstractions, etc. were done in Lua.
I've worked on several different products that included embedded application languages. Usually the language was intended for customers or third parties to write extensions; little of the core code was written in the embedded language. But a Solid Modeler that I worked on had an embedded Lisp system that we used for all UI logic. By mixing C and Lisp we had some of the same challenges that Mark describes: garbage collection, performance, lack of static type-checking.
More details on the development of Lightroom can be found here.
RSS 0.92 Feed