Continued from August 2009 CTI Newsletter
John McKernon on Lightwright 5
We asked John to tell us about the process of developing Lightwright 5.
CTI: What motivated you to develop another version of Lightwright?
JMcK: One of my goals in writing LW5 was consolidating the code base from two separate computer languages (Visual Basic for Windows and FutureBasic for the Mac), into a single one where I could write code just once. It would make development faster and fixing bugs easier, and an object-oriented language would make a lot of new things possible. I asked around, and Eric Cornwell recommended I try RealBasic, a cross-platform development environment that I felt very comfortable with right away.
CTI: What challenges did you face in the code development?
JMcK: The first question was, "Can I reuse any of the existing LW code?" RealBasic had an application that could convert limited amounts of Visual Basic source code into RealBasic, but LW4 had over 180,000 lines of code, which was far beyond their converter. So my first job was to use RealBasic to write my own program to do the basic heavy lifting. However, because object-oriented programming is so totally different from traditional programming, I wound up re-writing virtually everything all over again.
The second question was, "How long is this going to take?". I asked a variety of experienced RealBasic programmers what they thought and got answers ranging from "six months" to "twenty years". I looked up the dates this morning, and found that I started writing LW5 on September 15, 2005. So the answer turned out to be four years.
CTI: What new features did you want to add to LW5?
JMcK: Of course, the fun part of writing software is inventing new features, and LW5 has lots of them, so in between the endless hours where I was rewriting existing features, I had a great time! Things like the new scroll window and the moving light wheel window were things I particularly wanted to do, and LW5 was my chance to have fun with them.
The other big thing I had wanted to do for years was share Lightwright data in real time with Vectorworks. Two years ago I went down to the Nemetschek offices and explained to the powers that be what I wanted to do. They were interested, but they plan their releases years in advance, so there weren't any promises it would happen anytime soon.
Last year, I went to Rehoboth Beach for my annual week in the sun, and on my second day there I had a phone call from Kevin Linzey (the Vectorworks Spotlight engineer), saying that he'd received approval to do data exchange, and they needed working code in a week! So I dashed home, and a month later Kevin and I had it all up and working!
CTI: How and when did you start testing LW5 with real world users?
JMcK: Unfortunately, while Data Exchange was working, the rest of LW5 was still staggering to its feet. I first used LW5 on a tour of Chicago around the same time, and that resulted in a lot of changes to the way worknotes were handled. By actually using Lightwright in the theatre, you quickly find out what works and what doesn't. Then I showed it at LDI because people had heard about the data exchange feature from Nemetschek (and boy, were they excited!), and then it was back to work writing code. We used it on my "Nutcracker" for NCSA in December '08, and I took more notes on what needed changing.
Finally, in January '09 I let the first of my regular beta testers have a whack at it. One of the first was Mike LoBue, who was the production electrician on Rock of Ages. Driscoll Otto is a former NYU student of mine who was assisting Jason Lyons on ROA, and he asked me if they could use LW5 for it. I said "yes," and Driscoll, Mike, and Jason all gave LW5 a serious workout. At the same time, Cory Pattak, who was my assistant on Chicago, was assisting on Irena's Vow, and he wanted to use LW5 for it. Then Cory worked with Paul Toben on The Story of My Life, so we added Paul to the beta testing group. Putting LW5 through three Broadway shows while in early beta testing was great - the shows reported bugs and feature suggestions every day, while I wrote code and sent them all updates in a continuous round of swatting bugs, refining (or overhauling) existing features, and adding some great new things, like reverse sorting and global searches.
By the end of all this, I had 26 people beta testing, and over 1400 bugs and feature requests reported and fixed. An amazing process, one that will start all over again when sales of LW5 begin. I always put everything I want into each new Lightwright, and LW5 is no exception.
CTI: Thanks John, and congratulations to you. What are your plans now that LW5 is finished and shipping?
JMcK: Like all the others before it, I already have a list of things I want the next one to do! But before I start work on LW6, I'm off to Holland for yet another Chicago, and then hopefully some down time to rediscover friends and family. Or maybe I'll write something entirely new and different. We'll see...
Visit John McKernon's website for further information on Lightwright and other useful lighting information.