Developer’s Hymn

Hello, mr Developer. It’s me. I’d like to use your app.

I just have a few questions.

Is your app accessible? Is it resolution-independent? Does it have an AppleScript dictionary? Does it use standard controls wherever possible? Does it start within one dock bounce? Is it the perfect fit for Leopard’s new graphic profile, but backwards-compatible with 10.2? Does it run on my G3? Will it take full advantage of my eight Xeon cores? Do you have lots of cool Core Animation effects? Does it go into full screen mode? Does it have black, translucent panels? Why can’t I tab through everything in a predetermined intuitive order?

Does it interface with .Mac, the iLife apps, iCal, Sync Services, Address Book and Mail to the point of seamless integration? Why is it that it doesn’t it work with anyone else’s apps? Does it have a Dashboard widget, a Spotlight importer, an Automator workflow, a Quick Look plugin, an iTunes visualization, an Instruments probe, a QuickTime codec, a Dictionary dictionary, a spell and grammar checker, a System Preferences pane, a lineup of useful Services and an Address Book field?

Is it localized? Is it internationalized? Does it handle Unicode? Does it handle key input in Hangul without breaking a sweat? Is every single keyboard shortcut hand-picked to not conflict with anything in the default menus - including services - on all supported Mac OS X languages? Are the decimal separators, date formats and currencies the same as the system default?

Why doesn’t it work when run off a dmg disk image off a FAT32 partition shared from my Windows NT 4 server over AppleTalk? When is your application going to be 64-bit? Why are your resources suboptimized tiffs? Why are you using unethical input manager hacks to enable functionality not otherwise possible?

Why are you using WebKit when drawing your own UI would be faster? Why are you drawing your own UI - to make me unable to skin it? Why do you only offer a plugin API in JavaScript, AppleScript, Lua, Common Lisp, Python, Ruby, Perl and C++ when Tcl is clearly the rational programmer’s choice? Why don’t you have a help book? Why doesn’t it check for updates and upgrade itself? Why do I have to enter my admin password when it upgrades itself?

Why don’t you store your data in a relational database? Why do you lock me inside Berkeley DB or SQLite - what’s wrong with plists? Why are you using plists? Why don’t you accept donations? Why does your application beg me for money?

What’s with all the text on your web site? Why is your web site drenched in screenshots and videos? Why is your web site so dry? Why is your web site so hard to read? Why does your web site read like you pretend like you’re Apple? Why is your web site completely void of professionalism - what is this, your diary?

When will you start the development of your next version? What’s new in the next version? When will you go into private beta? When will you go into public beta? When will you get out of public beta? Why didn’t you stay longer in beta? What’s with all the minor upgrades? Why did you stop the bug fixes and tell me to wait for the new version? Why not an interim release so we won’t have to wait so long? What’s holding up the new major release?

Why won’t your application just work the way I want it, eat up minimal resources, implement everything, be flashier than its competitors, cost less, be upgraded bi-weekly and act as a beacon of usability, performance, features and stability?

I await your prompt, succinct, well-thought out and detailed reply, eye-opening and yet not laden with needless technical detail.

Sincerely,
The person who uses your application.

Comments [+ Comment]

  1. You forgot the command line interface.

    By Matt J · 2008.01.02 22:48

  2. While I can understand your sentiment, I thought it goes a bit too far. We had numerous user e-mails over the years and some of them were weirdo requests but none (well actually one or two) were hostile or insane. Perhaps offering software for free makes people more forgiving. In particular I have never been insulted for simply telling people that it’s unlikely their feature idea will ever make it.

    By http://supersnowman.livejournal.com/ · 2008.01.02 22:57

  3. Believe it or not, not much of this is parodied off of people actually bugging me. I want to be clear that I don’t think people using my stuff are annoying pricks or liabilities in any way, regardless of how little effort it would take to position this post as such an opinion. It’s mostly chunks of my own inner dialogue. But more than that, this is the sort of stuff that goes through your head all day long, and I believe that what sets great developers apart is that they can produce terrific work under this noise.

    By Jesper · 2008.01.02 23:00

  4. Oof! And to think I just quit my job to work full time on an indie software project. Seriously, though I think this a nice vignette showing why a developer needs a tough spine, and also a good dose of humility. It’d be tough to meet everybody’s needs and everybody’s druthers, even when they are legitimate concerns.

    By n[ate]vw · 2008.01.02 23:42

  5. Ultimately, these things are a compliment. They’re asking because they believe you can do it.

    It’s like “um, Superman, could you please save us from that meteor heading towards earth?” True, they’re asking a lot, but it turns out Superman can actually do it.

    By Scott Stevenson · 2008.01.03 03:39

  6. Scott: Right. Almost all of these questions are valid issues and have the right to your undivided attention and a thoughtful decision. That’s what’s so funny - it really is like this.

    By Jesper · 2008.01.03 20:30

  7. Great. Really, just great. A lot of this stuff is legitimate and part of what makes an app good…or not so good.

    An alternate interpretation, in addition to the “hard life of the developer” view, is the fact that Cocoa and code reuse makes a lot of this so much easier than it could have been. Makes me love the Cocoa frameworks — and when it’s not easy (10.3-compatible gradients, anyone?) someone else just might have solved the problem first and put it in a nice class for you to use.

    I started reading it almost instantly like a Dr. Suess book:

    Will it work out of the box?
    Will it work with Firefox?
    I do not want your e-mail spam.
    “Loyal” user, yes I am.

    By jediknil · 2008.01.04 05:26

Leave a comment


OpenID is a sign-up-once-use-it-everywhere account system. You can identify as yourself on any web site that accepts OpenID logins. It may be the last account you'll ever have to register.

If you don't have an OpenID, you can register one for free at MyOpenID. If you have an AIM screen name, you already have an OpenID! Log in using http://openid.aol.com/yourscreenname. If you have a LiveJournal account, you can log in using your URL.