O'Reilly Mac OS X Innovators Contest
Innovators Contest. Mac DevCenter. Mac OS X Conference.
  Contest Rules     Entry Form     Contest Prizes  

 
LinuxDevCenter.com
MacDevCenter.com
WindowsDevCenter.com
ONJava.com
ONLamp.com
OpenP2P.com
Perl.com
WebServices.XML.com
XML.com
Perl
Java
Python
C/C++
Scripting
Web
Web Services
XML
Oracle
Networking
Security
Databases
Linux/Unix
Macintosh/OS X
Windows
.NET
Open Source
Wireless
Bioinformatics
Game Development
Enterprise Development 
The Missing Manuals




From NEXTSTEP to Now: An Interview with LaunchBar's Norbert Heger

by Derrick Story
09/25/2003

When LaunchBar was announced as a winner in the second Mac OS X Innovator's Contest, we received lots of positive comments from readers who were fans of this software.

LaunchBar allows a user to enter a range of abbreviations for any term. It analyzes the user's behavior and adapts rating criteria dynamically, so search results become more accurate as LaunchBar "learns" how to serve the user. Like so many good ideas, the concept for this software has been around for a while. Its roots go back to 1995 and NEXTSTEP. But I'll let Norbert tell that part of the story.

The Evolution of LaunchBar

Derrick Story: When did the lightning bolt of inspiration first strike about your award-winning idea? Was it in the shower, on a walk, during conversation ...?

Norbert Heger: It was in 1995. We were doing NEXTSTEP/OPENSTEP software development at that time, mainly custom applications for enterprise customers. During my daily work, I realized that I spent a considerable amount of time with task-switching activities -- searching for the very same applications, documents, files and folders on my hard disk again and again.

Norbert Heger
Norbert Heger began developing LaunchBar back in 1995 while developing software for NEXTSTEP.

The better those items were organized in hierarchical structures such as folders and subfolders, the more time it took to reveal these items. And even using graphical, Dock-like utilities that let you access your frequently used items with a single mouse click hadn't been much help. If you try to manage more than a dozen items, you have to organize them in separate hierarchical levels, and again you have to dig around for a specific item.

This led to the idea to be able to "talk" to the computer in a new, simple, and efficient manner. I wanted to have one single access point for all of the different kinds of information, put my request there, and let the computer do the rest.

DS: Then what did you do? Work up a prototype, get some help, let it ferment? How much time passed between when you had the initial inspiration and the first working prototype?

NH: The very first "prototype" was not even an application. It all began with dozens of little shell scripts and a tiny Terminal window. Each of the scripts had a very short one- or two-letter name and just opened one specific application or document. The Terminal window was placed in one of the screen corners, allowing us to bring it to the front quickly using the mouse. When we wanted to launch Interface Builder, for instance, we just had to click that screen corner, enter "IB" (the name of the script we've prepared to launch Interface Builder) and hit Return.

As you can imagine, this approach was not really practical. We had to create a new shell script for each and every item that we wanted to access, so we thought, hey, there must be a simpler way to accomplish this.

So we started developing a rating algorithm to determine the best matching item for a given abbreviation automatically. This algorithm delivered pretty good results "out of the box," but it turned out that the results still needed some kind of fine-tuning. Different people use different techniques to abbreviate names, so we tried to adapt to these different usage patterns automatically. It took about two months until we were satisfied with the quality of the algorithm. Even today, we're still trying to improve and optimize that technology in order to achieve even better search results.

Mac OSX Conference

Session by Andrew M. Duncan:
Taking the Plunge with Objective-C

With the introduction of Apple's Mac OS X comes a new library called Cocoa: foundation classes and an application framework for improving developer productivity. Apple recommends that all new applications use the Cocoa library and associated tools. But Cocoa is based on a language unfamiliar to many programmers: Objective-C. This session will introduce Objective-C to programmers who have some experience with Java, C++, or other object-oriented languages.

O'Reilly Mac OS X Conference
October 27-30, 2003
Santa Clara, CA


DS: What kind of comments and feedback do you get about LaunchBar? I bet some of your mail is quite interesting.

NH: Yes, we do receive incredible feedback. It's a pleasure to read so many positive emails and enthusiastic reviews on VersionTracker or MacUpdate. Many users tell us that LaunchBar totally changed the way they work with their Mac. They feel lost whenever they have to work on a computer without it. Some of them even told us that LaunchBar has been their final reason to switch from Mac OS 9 to OS X.

And of course we receive a lot of feature requests and suggestions. LaunchBar became an integral part of the people's daily workflow, so they want to perform even more of their regular tasks with this efficient interface. I'm glad to report that many of these requests will be considered in the next major release.

DS: Do you have a mentor? Or maybe someone who helped you overcome the technical hurdles involved with bringing your idea to life? Tell us about that person and his/her role.

NH: There is no specific mentor. The most valuable source of inspiration and help is the large community of users and developers. If you've done your job right, users will tell you. If there's some feature missing, they will tell you. If you've missed the point, they will tell you. You just have to listen carefully.

DS: Have you worked with the same group of guys over the years on this application? If so, who are they?

NH: Our core team members include Christian Starkjohann (the author of Sharity), Karl Schwarzott (author of Little Snitch), and Johannes Tiefenbrunner (WebYep). We've been working closely together on a lot of projects over the past 12 years.

Johannes "invented" the Command-Space hotkey back in 1995. In NEXTSTEP it was nearly impossible to implement a system wide hotkey, but Johannes found a way to patch the Display Postscript Server (also responsible for dispatching keyboard and mouse events), allowing us to activate LaunchBar with a single keystroke. Fortunately, these things became much easier to accomplish in Mac OS X.

DS: How many people did you tell about your idea during the development phase? Was this something you kept under your hat, or did the Mac community at large know you were working on this?

NH: The development of the very first NEXTSTEP version of LaunchBar was an internal project at Objective Development. The more we used it ourselves, the more it became obvious that such a tool would be quite useful for many others as well. So we released the first public version of LaunchBar in 1996.

When we started porting LaunchBar to Mac OS X in 2001, we released two public preview versions of our application. This gave us the chance to receive some very helpful user feedback.

DS: Which was harder: developing the application to the point that it was ready for public consumption, or the "sales, marketing, distribution" side of the equation? Why?

NH: Well, both sides take their time. Unfortunately (from a developer's point of view) marketing and support is a never-ending task, requiring an ever-increasing amount of time and resources. In contrast, the development of a product usually reaches some kind of stable state from time to time (not a final state, of course; there's always room for improvements).

At least in the field of support, there's a good chance to shift some of the efforts into application development by making the user interface more self-explanatory. Apple does a brilliant job in that respect. With each release of Mac OS X, the system becomes more foolproof. You can learn a lot from studying their applications and from reading the Human Interface Guidelines.

DS: I'm glad you brought up Apple development. I haven't asked this question before, but I'd like to know your thoughts on the development of Mac OS X. Isn't the evolution of this operating system remarkable?

NH: Yes, it's indeed exciting to observe the development of this system.

In 1996/1997, when Apple acquired NeXT -- or was it the other way round? ;-) -- I've been thrilled when it became clear that the next generation of the Mac operating system would be based on NeXT technology.

The very first developer previews of the new OS (a.k.a. Rhapsody) as well as the first publicly available version (Mac OS X Server 1.x) left us with some mixed feelings, though. It became pretty obvious that there were quite a lot of problems to be solved. Especially, how would it be possible (with reasonable efforts) to bring existing Mac OS 9 applications to this entirely new environment?

But finally, Apple made the impossible possible. They managed to combine a powerful and complex Unix operating system with a beautiful and easy-to-use graphical user interface. They provided the Carbon libraries side by side with the Cocoa frameworks allowing developers to port their existing code, as well as writing new applications using the API of their choice. And not to forget the integration of the Classic environment -- this has been a masterpiece of software engineering.

I'm also glad to see that the initial performance problems of OS X have not just been addressed at the hardware level (telling people to buy faster computers). It's enjoyable to see noticeable speed increases with each major release of Mac OS X. Even today, OS X runs just fine on an old 266 MHz iMac, and rumors have it that we'll see another performance boost in the not-so-distant future.

DS: OK, back to your world of programming. What will you do differently, and what will you do the same on your next big project?

NH: I'll wait for that brilliant genius that invents the 48-hour day :-)

Seriously, as mentioned before, it is possible and necessary to reduce support costs by developing a clean and simple user interface that is as self-explanatory as possible. In case of LaunchBar, we are currently working on a major redesign of the configuration interface to achieve that goal.

DS: What one piece of advice that you've learned during the process would you pass on to other Mac developers?

NH: The first impression of your work is a very important factor. If your program is overloaded with lots of nice ideas but none of them is implemented in a satisfactory manner, people will quickly stop using your software, probably never seeing the real cool features you've invented. It's difficult enough to get a potential user's attention, so don't waste it!

Derrick Story is the author of The Photoshop CS4 Companion for Photographers, The Digital Photography Companion, and Digital Photography Hacks, and coauthor of iPhoto: The Missing Manual, with David Pogue. You can follow him on Twitter or visit www.thedigitalstory.com.


Return to the Mac Innovators Contest

Return to the Mac DevCenter





Copyright © 2000-2006 O’Reilly Media, Inc. All Rights Reserved.
All trademarks and registered trademarks appearing on the O'Reilly Network are the property of their respective owners.
For problems or assistance with this site, email