Skip to content

Instantly share code, notes, and snippets.

@lloydtabb
Created April 22, 2013 16:01
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lloydtabb/5436313 to your computer and use it in GitHub Desktop.
Save lloydtabb/5436313 to your computer and use it in GitHub Desktop.
Great Software is an act of Empathy

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

@ahejlsberg
Copy link

Wow. Thanks for the kind words, Lloyd. Couldn't agree more with what you say.

@waterson
Copy link

Great... I remember you saying something like this within the first few weeks that we worked together at LiveOps!

I've come to realize that the opposite of the empathetic programmer is the Evil Genie: I'll give you what you asked for, but it's not what you wanted! (Credit where credit's due: jevering came up with the term.)

@ucview
Copy link

ucview commented Apr 22, 2013

Absolutely in programming you keep your audience in mind "If its no simple it's simply wrong"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment