User experience and the need to document

And the debate rages on.

I basically agree with Jared, at least as far as the broken UX of sql-mode goes. If you say it’s broken, it’s broken.

What I don’t understand is this: Here we have a coder, willing to investigate solutions to his problems. Reads documentation. Presumably Googles. Finds something that appears to be what he wants. Tries it, and gets one error message. Gives up and writes his own.

I like to think I’m well acquainted with human laziness, but this is a species I just don’t understand. But that’s somewhat off point now.

So. We can agree that:

Given this situation, I think it’s insane to say that the correct solution is to document how to work around the bad UX. So, I’ve put my money where my mouth is and patched sql-mode to improve it’s behavior. So with this patch, SQL-mode:

Here’s the patch: sql-change-buffer, against Emacs’ CVS HEAD. It’s still a bit rough around the edges. In particular, I’m not thrilled with how sql-buffer is indicated in the mode-line. Contributions are welcomed.

2009/04/27
Previously On Atomized:

Discussion

“I like to think I’m well acquainted with human laziness, but this is a species I just don’t understand.”

Can I suggest you strive for a less critical tone? Perhaps by more clearly separating ‘what you would do’ from ‘what you think is a moral failing in anyone who doesn’t do.” Do you really want to suggest that he’s letting the rest of us down by practicing a little from-the-ground-up hackery? Coding, like lots of kinds of good work is part play. If a man sees what he thinks is a shoddy solution and he says “Damn if I can’t nail that better.” or “I wonder if you just….” I say, you go, man. For learning, yeah, but also for the raw hell of it. That’s how we humans are made, it’s what makes us get up in the morning.

Your solution to the problem (as far as I can tell) is a good one. In some cases an inelegant hack might be just the thing. Sometimes (for all kinds of reasons, some of which Jared mentions) a guy just wants to M-x b an empty buffer and see what comes of it. And if it did something for him, he might want to spill that work work and that process onto the web to see what comes of that. We know that’s not the way you did it. Cool. (Though don’t you ever get the urge?) Whatever else he’s doing, Jared is managing to raise the profile of elisping, and he’s working out his process in public in a helpful way. (I was inspired to my own trip into elisp by that last post of his on his Emacs Goals: “to encourage people to write elisp, not good elisp, but any elisp” [http://curiousprogrammer.wordpress.com/2009/04/20/my-emacs-goals/]).

Your point about increasing the accessibility of existing solutions, the benefit of looking for them, and of good documentation are well taken. But your tone (which sounds like disdain) exemplified by the use of words like “laziness” and “doesn’t bother to check…” aren’t really necessary to make those points.

Keep well, and keep blogging. Thanks.

commonman
2009/04/28

… of course, if that guy above got his blank-slate buffer with C-x b, he’d have more luck. :-)

commonman
2009/04/28

How is your `sql-change-buffer’ different from `sql-set-sqli-buffer’?

aaron
2009/04/28

@aaron Looks like it’s not. I’ll update the patch to keep the UX characteristics while using the built-in function.

Ian
2009/04/28

@commonman I appreciate the feedback. I guess my tone was lost, but when I said I was acquainted with laziness, it was self-deprecating. I’m so familiar with it because I’m lazy.

Ian
2009/04/28

i’m not going to harp on “documentation, documentation, documentation”. Instead, I suggest you send your patches to the maintainer, rather than posting them under the exclamation “broken”.

aaron
2009/04/28

[...] seems that Ian Eure does not understand us1. I like to think I’m well acquainted with human [...]

Explaining Programmer Behaviour « A Curious Programmer
2009/04/30

Participate