Rich operates Bare Bones Software, Inc., a company which develops OS X and iOS apps.
- What do you currently do?
- How did you get started in Mac and/or iOS programming?
I got started in Mac programming in 1985, with a copy of the Macintosh Pascal interpreter. It was a very simple environment for programming, but there were some secret tricks under the hood that you could use to reach into the innards of the Mac toolbox and get started with all the cool stuff.
Not long after, THINK Technologies, the developer of Mac Pascal, released a product called THINK Pascal, which could compile native Mac applications (not just interpreted code) and made the full power of the Mac available to users. Together with LightspeedC from the same company, it was one of the first products that we today recognize as IDEs.
- What was the first app you created and what did it do?
Apart from just randomly messing around, the first “real” applications I wrote that were used by other people were purpose-built tools for controlling and reading scientific instrumentation. I also wrote a graphing and numeric analysis program that was fairly popular as shareware.
The product that really started my indie career, though, was BBEdit. It started as a high-performance general purpose text editor.
- Where did you get the idea for the app?
In one of life’s funnier twists, I actually ended up working at THINK, on their IDE products (LightspeedC and Lightspeed Pascal). While I was there, one of the recurring needs was for a general-purpose editor that was usable outside of the IDE. LightspeedC wouldn’t let you open a file unless you also had a project open; and Lightspeed Pascal’s editor was purpose built for editing Pascal source files, so it would try to format anything you opened as Pascal.
At the time, the only editor around was TeachText (later rewritten as SimpleText), the editor that was supplied with the system software installation. This was limited to 32K (that’s 32,768 *bytes*) of text in a file, and the bigger the file, the slower it was to type in.
However, the editing engine that THINK had developed was purpose-built for editing big files without slowing down, and could handle files up to a theoretical 32-bit size limit (2GB), as long as you could read the whole thing into memory.
At the same time, I was trying to demonstrate some simple Mac programming concepts with an example program that was intended for a new version of Mac Pascal (which ended up not shipping); and that program was a text editor which used the OS editing engine (limited to 32K) but had a nice basic set of features: searching, printing, and so forth.
So, I took the THINK editor engine, hooked it up to my example program, and suddenly I had a simple but very powerful text editor. This attracted intense interest from my colleagues, who started using it for all sorts of work alongside their development environments, and I got huge quantities of feature requests, bug reports, and all sorts of other feedback that helped move this little editor forward.
Eventually, it reached a point where I thought it was something the rest of the world might find useful, and so I did a release as freeware; and when the need to provide documentation and support reached a level that needed funding, I made a commercial release. Eventually that became self-sustaining, and I was able to do it full time.
- What went well? What could have gone better?
BBEdit grew *remarkably* quickly in its early days. If I had it to do all over again, and I had the faintest idea that I’d be working on some of the same code twenty years later, I certainly would have made some different decisions early on in how I architected certain parts of the product. But the best part of the life cycle of BBEdit (of all of our products, really), is the feedback that we get from customers who are using it to make their own careers, and that helps us make a better product.
- What is your favorite among the apps you’ve developed?
…it’s hard to pick favorites — each one I’ve worked on has had something special about it, a unique set of challenges and rewards. I do miss the days of working on Lightspeed Pascal, but nowadays I find that BBEdit is the one where I spend most of my time, because there’s always something new to explore.
- What advice do you have for young people who want to make apps?
The fundamentals are important: math science, logic, language skills, organizational ability. However, along with all that, I encourage you to look at app development as an art form, and an app as the artistic expression of an idea within you. If you do that, I think you’ll find that the code just pours out of you. And look within yourself for ideas, too — the best solutions you will ever come up, and the best products that you ever make, are the ones that you create to solve problems that are of personal importance to you, or to people who are close to you (personally or professionally).
Help more girls learn software development. Contribute to the App Camp For Girls Indiegogo fundraiser, get a cool perk, and enjoy the feeling of having helped the next generation of software developers.