Lua in Lightroom

One of the points that I discussed in my PyConUK keynote was the role (or lack thereof) of dynamic languages in desktop software development. I know that some people believe that desktop software is dead, but I am not one of them. I think that the nature of desktop software is changing, but that it is still relevant. In my discussion of dynamic languages and desktop software, I used the example of Adobe’s Lightroom, as the best example of commercial software that is written in a dynamic language. Lightroom is written in Lua, and according to this presentation by Troy Gaul, 63% of the code written by the Lightroom team is Lua (there is a bunch of C code for the low level image processing code, which is shared with Adobe Camera Raw). A number of people at PyConUK had no idea of the role of Lua in Lightroom, which is unsurprising. The only reason that I knew was that I was following Lightroom as a photography nut, and the information flew by on some boards. Troy’s presentation is pretty illuminating, so if you are interested in dynamic languages in desktop applications, you should watch the whole thing.

5 Responses to “Lua in Lightroom”


  • I agree with your, Ted, that desktop apps are not dead. For some things, like image editing, a desktop app just fits better then some web app.

    Here is to hoping people continue to realize that and use Python when they do. =)

  • Python can be, and is used to script *most* desktop graphics software.

    From maya, gimp, blender, poser, photoshop etc.

    Python is the graphics scripting language of choice.

    Many web desktop programs are also written with javascript. eg dreamweaver has major portions written in javascript.

    For years graphics and games people have been using multiple languages. From assembly, C, C++, scripting language, and also shader languages.

    However having said that… the new versions of python (2.6, and 3.0) are becoming worse in some ways for some desktop software. Lack of support for older systems, and also their big size. So if you’re aiming for the magical < 2MB – 5MB download, python can use up more than that by it self.

    Also, I think non-graphics, or non-game programs are less likely to use scripting languages.

  • Yes, desktop application, written in dynamic language are great.

    I am active Lightroom’s user too. And have written an export plugin for it. Lua support is very handy, but it worth nothing without good SDK documentation.

  • I have been working with python and ruby of late, and was pleasantly surprised you said that Lua was used to write Lightroom, I’ve been very impressed with the product and think it is incredible that they used a non-standard language for this, but isn’t that like Yahoo Shops which was originally written in LISP???

Leave a Reply