Software I’ve Loved

Someday we’ll really understand as a society, and maybe people younger than me already do, the central role software and it’s interfaces play in our culture now. UIs are now era defining, and can be mass critiqued as any product of a collective creative craft, as we do with movies, television, news and other media. Somewhere there are kids that love software as young Speilberg and Lucas loved movies. Somewhere there’s a little girl who dreams of software, just as there are girls dreaming of becoming the next Shonda Rhimes. I hope we give these kids the spaces and ladders that film, publishing and so many other media offer their most adamant fans. We need to show them there is more to software than programming, just as their is more to movies than acting, and make being a “software nerd” something more than learning to code, just as being a movie nerds is more than learning to operate a camera.

One potential way to do this is to encourage a “culture of software”, where newbies can hear not only about process and technology, but where there is a robust critical discussion of software itself, its language, trends and tropes.

And maybe this exists, but certainly not as much as the cultures that surround and support older media.

As my meager contribution, this is one of two essays which focus on 3 classic pieces of software. In this one, I have 3 I’ve loved, and why I loved them:

  1. WriteNow – Back when GUIs were coming to mass market maturity with Windows 95 and Mac OS 6, word processing was still new enough to be cool. Our little Mac SE’s beautiful fonts and ability to do things like multi-column documents were the forefront of what computes could do for home computer users like my family. It was the age of the “desktop publishing revolution”. An early, simple, disruption that would, in many ways, presage the broad democratization of media creation that would follow. At this time, there were multiple word processors, and Word was just beginning to bloat. But above them all, from my POV, for years, sat a little Mac word processing program called WriteNow. It fit on a single 3.5 floppy, loaded fast, was responsive, and was easy to understand and use, with a nice clean UI. Best of all it wasnt’ bloatware. It was full featured (it did footnotes!) but wasn’t hyper customizable and it didn’t have paper clip to help you. And that was the triumph. It knew what the core of a word processor was, and it did it well. Sadly, it didn’t survive the era, and eventually I succumbed to using the beast that is Word (for a while). But its spirit lives on in MacOS’s TextEdit. TextEdit is fine, but is slightly too bare bones (though it too has grown some extraneous features over 15 years). WriteNow hit the sweet spot in its category at a time when this category was the killer app for the home PC. I don’t think it was a mass cultural phenomenon like Word, but for this user, it was software worth loving.
  2. HyperCard – HyperCard is an historically important piece of software, and the first really broadly available system for hypermedia. It expanded who could build a GUI, was the vehicle for the first wiki, influenced the World Wide Web and gave us the ancestor of Javascript. It was my first introduction to event driven programming and first chance to play with GUI design. It was so powerful, yet easy to understand. It was a stack of metaphorical cards you could program to do anything. I made animations, games, simulated spaceships, anything I could think of that fit into the 512×342 black and white pixels of our Mac SE. Like the best creative sandboxes, it was constrained but almost infinitely expressive. If you’re not familiar with HyperCard and its role in software history, I recommend reading about it, or even giving it a go on an emulator. If you’re young, it may feel like getting into an antique car: you can see all the bits were there that make up much of todays software, but just a bit lower res, much less safe, not on the internet, and way slower.
  3. IntelliJ – When I started building Android apps, in my Developer Evangelist role at Greystripe, the only viable way to do that was to download Eclipse. Eclipse is a great gift to the world, a free open development environment. But it is not good software. Confusing, bloated and overly customizable, it was my least favorite part of building Android apps. At my next startup, the CTO immediately asked me why I wasn’t using IntelliJ. It was a free, beautified a tool, that makes doing hard things much easier and was light years better than Eclipse. I tried it and was hooked. I soon noticed this tool was everywhere. Our developer partners were making the change quickly, and en-masse. It was fast market disruption by a superior product in action. I had to rewrite our SDK instructions a couple months later, due to the volume of devs asking for IntelliJ based instruction. The JetBrains people continued to make great editors and software tools. Though I don’t do much Android programming these days, I was not surprised to hear Google’s Android Studio was being developed as an adaptation of IntelliJ.

So what do these have in common: performance, knowing their purpose and serving it well, expressiveness, elegance. They all enable me, make me more creative, and make making things easier and less annoying. Great software is an admirable cultural object, but it is also a tool, and these 3 tools have not only been impressive in their own moment and category, but they also served as the spark for untold amounts of second order creation.