The Macintosh has long been the gold standard in friendliness for
the end user, but what a lot of people don't realize is that the Mac
can be a real pain to program for. The situation has gotten a lot
better for OS X with the variety of scripting languages available
and Apple's excellent developer tools.
However, there is a niche on any platform for a rapid GUI builder
coupled with a high level language. Visual Basic filled this niche on
Windows but on the Mac OS, REALbasic is a great choice and
pre-OS X it was pretty much the only choice. If you don't believe
me, fire up your old Mac and try whipping together a quick application
in C using MPW and compare it to the same application in REALbasic.
In my opinion, REALbasic is a better RAD (rapid application
development) tool than Visual Basic with even early versions providing
decent Object Oriented support. It truly was and is a great tool for
prototyping and rapid application development.
I recently had a chance to chat with Andrew Barry, the principal
author of REALbasic. Andrew started development of REALbasic as a hobby
project in 1995 when he was 25 years old. Popularity and features grew,
and it turned into a commercial product in 1997 with it's first release
on July 4, 1998.
Andrew, you are well known as the principal originator of REALbasic.
Much great software has started as an "itch" the programmer was trying
to scratch.
What were you trying to do with REALbasic ?
My main intent in writing REALbasic was to provide a
tool that covered the same sort of use cases that Visual Basic under
Windows did - a development tool that took care of the drudgery of
managing windows, buttons, etc. and let you jump straight to the
interesting part. The funny part is the backlash you get from "real
programmers", who think that doing that drudgery builds character, or
at best provides some sort of "talent filter" or "rite of passage". Of
course similar arguments were made about word processors.
While I had originally developed REALbasic both for
myself and other people, I ultimately found it to be too limited for my
own use - I had failed to create the path between simple and powerful.
I should note that I still haven't successfully scratch that itch for
myself yet.
How much did developing on the Mac figure into your work? Do you
wish you had developed on other platforms? What drew you to the
Mac?
I've always been a big Mac fan - the first Mac I could
afford was the Mac IIsi back in
1990, but I had otherwise taught myself to program the Mac on a
friend's machine. The Mac has usually been the platform that I
developed on for fun, and also it was the platform that was most in
need of something like REALbasic.
For whatever reason, I've never pigeonholed myself as
a solely Mac developer - most of my professional career has actually
been spent writing Windows and Java software, and more recently I've
been getting pretty capable at web development. So from that
perspective I think I have a reasonable grasp of what the strengths and
weaknesses of each of the platforms.
But fundamentally I appreciate the attention to detail
and usability that's present in Mac applications - details that are
often missing on other platforms, whether misaligned baselines or
preference dialogs that intimidate.
REALbasic met a huge need on the Classic Mac OS, given the dearth of
development tools for the casual to mid level programmer. For
OS X, this is no longer the case, since OS X has easy access
to scripting languages such as Perl, Python, and Ruby. Do you still
feel that REALbasic meets a need on OS X?
Certainly the presence of a command line means that
these scripting languages can be easily leveraged for batch style
operations. What I'm not sure about is whether they provide a suitably
integrated experience for creating a GUI.
So from that perspective, I don't think that
REALbasic's niche has been supplanted by those scripting languages. The
real threat facing REALbasic is the same one facing all native app
development: The World Wide Web.
To put it another way, if I was starting on my career
today, I'd be well advised to focus on web app technologies that are
applicable to pretty well any device capable of running a web browser -
as opposed to limiting myself to any given client platform.
Do you feel that programming is an art or a science?
Yes (inclusive or) - it's not a toggle or two extremes
on a single axis.
You can develop software with varying amounts of
either, but I'd argue that healthy dollops of both are beneficial to
development.
I'd argue that art encompasses getting that clear
understanding of what the end user is wanting to achieve such that the
software naturally anticipates their desires.
Science involves various best practice such as
automated regression testing, and separation of concerns (for example
by using design patterns such as MVC).
What are you working on now ?
Lots of stuff.
My primary daytime job is being Product Architect for
an international company called Haley where I do a lot of Java, .Net,
and JavaScript work in the enterprise space.
I'm also doing some graphical GIS stuff for the
government involving Java, .Net, and JavaScript.
Furthermore, I'm doing some web app development for
another client using a combination of .Net and PHP (it's also fun,
because I get to communicate with a credit card gateway)
I'm playing around with iPhone app development and/or
experimenting with some different approaches for OS X development,
which I have little time for because I also have four young daughters
aged 12, 9, 8, and almost 3.
What excites you about the future of the Mac or about computers in
general ?
A bit over a week ago I got an iPhone, which I find to
be a pretty interesting device. Certainly there's a lot of commonality
with OS X with regard to underlying operating system
functionality, but it goes all the way back to the original concept of
the Mac being an appliance. I could certainly envisage the successor to
the iPhone interface being pulled back into the consumer Mac space,
making them substantially easier to use/administer.
So while this is probably a heretical view, I'm
excited about the prospect of the personal computer being replaced by
the information appliance. Why does everybody need to understand
overlapping windows, how to use the Finder, and that they should close
an application when they close its last open window?