Gears Within Gears

Seek simplicity, and distrust it.

Mansions of cards: Osinki, CDOs, and the role of software

Posted by Brian Guthrie Tue, 31 Mar 2009 01:53:00 GMT

The aim of software is, in a sense, to create an alternative reality. After all, when you use your cell phone, you simply want to push the fewest buttons possible and call, text, purchase, listen, download, e-mail, or browse. The power we all hold in our hands is shocking, yet it’s controlled by a few swipes of a finger. The drive to simplify the user’s contact with the machine has an inherent side effect of disguising the complexity of a given task. Over time, the users of any software are inured to the intricate nature of what they are doing. Also, as the software does more of the “thinking,” the user does less.

From My Manhattan Project: How I helped build the bomb that blew up Wall Street. Highly recommended; the article touches on the ethics of software development, user interface design, complexity, and the classic question of the degree to which a creator may be held responsible for the acts of his or her creation.

It is not Osinski’s fault that his software makes it very easy to perform some otherwise rather difficult algorithms; that is, after all, much of what a computer does. But it does make me wonder that he agreed to work on it understanding full well that the technique was built on entire mansions of cards, and it serves as an ample reminder that our moral compasses are so often attuned only to the values of those around us.

But what, then, is appropriate user design? Should business software be ugly, difficult to use? Should it, like a disassembled watch, expose its innards for all the world to poke and prod at? Must an operation that you suspect your user does not rightly understand always come with a warning label: “Don’t touch unless you really, truly know what you’re doing”? Isn’t that just condescending to your users?

Like everyone else, I’ve used my share of software that I absolutely loathed; software that made simple tasks hard and hard tasks devilishly impossible, their user experience an afterthought, a victim of shrinking budgets and small visions. If there’s anything I’d like to see improved in what you might term the ecosystem of enterprise software, it’s the fact that so much of it is, from a human point of view, really wretched. If you must make people use the stuff, don’t make them dread the experience.

But am I wrong? Should an ugly veneer serve as a reflection of inner ugliness, or of my own lack of understanding? I don’t know how many kinds of Photoshop filters work; should I as their user ask the designers of Photoshop for a poor interface design, so as to force me to pay a psychic penalty for my ignorance?

Of course not. As developers, our eagerness to please our clients and stakeholders is, after all, only human, and anyway, software projects do not have a great track record of success when it comes to satisfying the demands of their procurers. Some projects are wise and some are not; Osinki labored foolishly, although surely if he had not taken up the call some other equally talented developer would have. Agile development, I think, provides us with the tools to build software more rapidly and closer to spec than ever before; so let us then pick our projects wisely.

Posted in | no comments |

Marketing Community-Based Open Source Languages

Posted by Brian Guthrie Sun, 08 Apr 2007 00:53:00 GMT

What makes a good home page for a programming language? Is the primary purpose of a web site for a small, community-driven programming language to market the language, or to provide information for the community? Can you do both?

One thing that quickly becomes apparent when you stop and take some time to compare websites for programming languages is that most of them are God-awful, at least from a design perspective. Ruby and Python both look like they were designed by someone who knows what they’re doing and has been paying attention to contemporary web design, with the caveat that Ruby only recently finished its redesign. Scheme does a nice job showing off the language via a bizarre navigation menu that nonetheless encourages new users with an FAQ only to invite them to pick an implementation (tell me again how I get started?). Haskell, another functional language, shares an affinity for lambda logos with Scheme, and yes, I understand what lambda does and why you think it’s pretty great but for the love of God show some imagination. Correspondingly, Haskell’s web site is functional but unimaginative. Speaking of ridiculous lambdas, PLT Scheme wins the award for most flagrant abuse of gradients in logo design.

Smalltalk is cluttered, busy, and confusing, Perl looks like an O’Reilly cottage industry (which I guess is what it is at this point), and Javascript doesn’t have an official site at all; it has no user community because it’s a language that people are essentially forced into using. Searching for ‘ECMAscript’ gives you back the spec and a Wikipedia article. The site for D is ugly but tells you exactly what the hell it is right there at the top, which is more than you can say for most of these sites.

To what degree does programming language popularity depend on marketing, and to what degree should it be expected to stand on its own merits? Give witness, yea, here is a flash of the news: Programming languages are no different than anything else. Features are important but no one gives a damn unless you can explain to them why they should. That’s what “marketing” means in this context: explain to someone who visits your site why they should care or (better) how to get started, immediately. Ruby informs you: get started, it’s easy, and then gives you a link, right there at the top, where you can try Ruby in your browser (courtesy of _why).

Why can’t other, purportedly better, languages do the same? If you’re enthusiastic about your niche language and contemptuous of the ‘hype’ that Ruby and Rails enjoys, go out and spend some time advertising your language/framework/widget in a way that respects and encourages new users, and then come talk to me.

1 comment |

Like pouring cold water on A List Apart

Posted by Brian Guthrie Thu, 29 Mar 2007 06:02:00 GMT

A List Apart, these days a shadow of its former self, writes this week about how to ruin the user experience. Apparently the best way to ruin the user experience is to, and here I get confused, require that users enable Javascript in their browser. According to ALA founder Aaron Gustafson,

The problem here is not that Lala is using JavaScript, but that they are requiring it. The reason? Well, they apparently like the idea of loading all of the content into their pages using Ajax. In their rush to cram all that Web 2.0 stuff under the hood, they’ve alienated a good portion of Web 1.0 users and a sizable chunk of the mobile market. And they’re not alone.

This bothers me on a number of levels. First and foremost, I’m skeptical of his claim that requiring that users have Javascript enabled is “like pouring cold water in a customer’s lap.” Even if there weren’t a hundred easier ways to pour water both colder and, um, wetter, startups geared towards the youth market don’t generally worry too much about the “good portion of Web 1.0 users” (what portion exactly?) that don’t have Javascript enabled. And who in their right mind browses the internet via cell phone?

I don’t disagree that relying on the availability of AJAX, or even overusing it, is very frequently a bad idea. But I don’t think it’s anything like as bad an idea as he claims it is, and it’s a poor illustration of his points. For crying out loud, it’s 2007. They chose to optimize their website for a slick, rich user experience, and it strikes me as almost bizarre that they should be singled out for that choice.

People make choices about their market all the time. I design to separate content from style whenever possible, and I generally keep my designs simple. But I’m willing to bet that brianguthrie.com (not the blog) doesn’t render properly in IE6. I own a Mac now, and I have no easy way to test for IE6 compatibility. But it doesn’t bother me a bit. Why? Because the sooner that legacy users get the idea that IE6 is broken the better.

This is a luxury and a risk that would be unacceptable on a commercial site. But my personal site exists primarily, at the moment, to connect me to my friends and to help my career. All of my friends use modern browsers (right guys?), and I’m frankly skeptical about taking a job with anyone who browses with IE6 on a daily basis. Call me crazy, but also call me fairly sure you can’t win my $5000.

I bet you didn’t see that coming.

1 comment |