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 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.
|

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 digital media evangelist for O'Reilly. His experience includes more than 20 years as a photojournalist, managing editor for O'Reilly Network, and a speaker for IDG, PMA, and Santa Fe Workshops. He is the author of Digital Photography Hacks, Digital Photography Pocket Guide, 3rd Ed., and his latest, The Digital Photography Companion.
Return to the Mac Innovators Contest
Return to the Mac DevCenter