Great Software is an Act of Empathy
“Who ever wrote this software had me in mind when they wrote it, and they must love me.”
I first had this experience programming on CPM way too long ago. At that point in time you had a couple of choices in trying to write programs that fit into 64K of RAM (K, not Meg, not G); you could write in assembly language, or your could write in Basic or you could write using Microsoft’s crappy, expensive Fortran or C Compiler.
Basic sucked. Compiled programs were big and slow. C and Fortran programs barely worked. There was just too little RAM. Compilation took 5 minutes, even for a small program. I could not yet figure out how to code in assembly.
Enter Turbo Pascal
Ordered from an ad in Dr. Dobb’s Journal (the Hacker News of the time), it arrived on a single 5.25 inch floppy disk. The whole program fit in 160K.
Turbo Pascal was amazing. It compiled almost instantly (inside a built in editor) and the programs were tiny. It supported “Overlays” a primitive application driven paging mechanism. It had a built in Editor, it took you to the line of code with an error, instantly, it was simple. It was amazing.
Turbo Pascal was deep, really deep. Every time I wanted to do something (like code in Assembly), the software already did it, as if anticipating my needs. I wanted to have some variables declared at a particular point in memory (the screen on the computer was memory mapped for example); there was syntax for it. There was no cruft, just exactly what I needed. If there was a feature of the language, it was worth investing in to learn.
And most importantly, it was almost as if it written for me personally.
Thanks Anders, you changed my life (Anders Hejlsberg is the Author of Turbo Pascal, and a slew of other languages including C#).
Write Code with Love
I write code every day. I love to code. In the code I write I aspire to give my users the experience Anders gave me.
Listen to your users, try to understand and synthesize what they are really trying to accomplish. Be inventive, ignore convention, if its in the way, be simple and above all, love your audience.