Hacker News new | past | comments | ask | show | jobs | submit login
Nobody Hates Software More Than Software Developers (codinghorror.com)
49 points by psawaya on Feb 13, 2010 | hide | past | favorite | 34 comments



This is why I like things like Android -- it allows the hardware people to make hardware, and the software people to make software. Android may not be perfect but it's better than anything hardware manufacturers put on their phones before. (It would be even better if it were GPL3, so that users could actually change the supposedly-free software on their devices.)


It's not as good as something one hardware manufacturer (Apple) has put on their phone (iPhone OS). No user (statistically) cares about GPL 1, 2 or 3 or the possibilities some modular design opens for either hardware or software developers. They care about the UI not sucking. At the end of the day, that's the gap Android has to bridge.


I've had an iPod Touch and my girlfriend has had first an iPhone 3G, and now 3GS, for about a year; and on Tuesday I got my Nexus One. I think the Nexus One is the better device. There's a lot of polish missing, with too many taps required for some things, not enough finger-swipes etc., but everything else considered - especially background apps - I would not swap it with an unlocked iPhone. (And I have a fair choice of networks, being in the UK.)

The ability to go onto the marketplace and download e.g. a battery monitor app that could display a number on the notification bar rather than the 5-state default was refreshing. I had to jailbreak by iPod Touch to get similar functionality. I similarly had to jailbreak it to disable auto-rotation; that's a default option in the N1. And the sense of freedom in being able to e.g. download Opera and replace the browser is refreshing. This is a device that doesn't necessarily need Google to improve it - competition can play its part too.


There's a lot of polish missing, with too many taps required for some things, not enough finger-swipes etc., but everything else considered - especially background apps

At this point you are in the far distant percentile of power/advanced/ideologically-inclined users, though. Obviously some people will care a great deal about the precise display of their battery status. But you have to recognize they are far fewer than the number of people who care about being able to do basic things with 3 fewer taps.


The effect is more subtle than that, and hard to explain. The iPod Touch seems relatively primitive to me now. The screens are miles apart, while the Apple device has smoother scrolling etc.

The best way I can think of to describe it is like a Mac vs PC, except with the Unix subsystem made completely locked-down on the Mac. PCs are just better and more productive machines for my way of approaching the world. It just feels more industrial-strength, more adult, less toy-like, at an emotional level that's very hard to express concisely.


Apple has been making software for their hardware from day 1.

No user (statistically) cares about GPL 1, 2 or 3 or the possibilities some modular design opens for either hardware or software developers. They care about the UI not sucking. At the end of the day, that's the gap Android has to bridge.

The first leads to the second. I would hack on Android if I could actually use my changes on my own phone, which I would be able to do if Android were GPL 3. If I could hack on Android, the UI would be better. Multiply that by 1000+ other people in a similar situations, and you can see that GPL 3 would lead to what users actually care about.


The evidence for this is sorely lacking. Great multitudes contribute to the open source Gnome, KDE, GIMP and so forth and have for years. The UIs remain lackluster to at best.


The fact that Apple "gets" both hardware and software is pretty unique in the industry. They're the exception that proves the rule.


Whether they "get" anything is a matter of what criteria you use to judge them. They're surely profitable, and I suppose that buys them a lot of accolades for "getting" the technology they sell.

And yet, if they did the exact same thing they're doing now but weren't making a profit, I'm sure the vast majority of the people who are praising them now for "getting" the technology would excoriate them for "not getting" it.


I never said that profitability was the main criteria here. I just seems obvious to me that Apple creates a great blend of hardware and software that is pretty much unmatched in the industry. That doesn't mean their products are perfect for everyone or that I even own one -- just that they get how to build hardware and software. That's fairly rare in this industry.

Now your argument seems to be that regardless of what they do, profitability is no way related? They're profitable because they make products that people like and buy. If they weren't profitable it would because people don't like their products and don't buy them. I'd say that's rather significant.


"They're profitable because they make products that people like and buy. If they weren't profitable it would because people don't like their products and don't buy them."

I agree with the "buy" part: that's obviously necessary for them to be profitable. Not so sure about the "like" part.

There are many reasons to buy or not buy a product apart from liking it.

You could buy it because that's what's used at work, or because that's what all your friends have, or because they have a monopoly on interfacing with other products you need to use (like games, or photoshop, or tax or music software), or because that's what you've been using all along and it's just too much of a pain to switch, or just because the product is marketed so well that you feel the need to buy it without having any sort of clue as to whether you'll like after you've bought it (or any sort of clue as to how good the competition is).


> There are many reasons to buy or not buy a product apart from liking it.

But most of those are statistically insignificant or temporary. Apple has sold millions of iPhones, for example, year after year.

You sound like you are desperate to make a negative point about Apple without actually having something meaningful to add to the discussion.


I don't see any evidence that the reasons I cited are statistically insignificant or temporary. They clearly do happen, but to what extent? I don't know of any large-scale studies that show why people buy iphones or ipods.

As for not adding anything to the discussion, the same could be said about your own comments. Or you could also be accused of being "desperate to defend Apple".

But I wouldn't accuse you of that because I don't think that's a very constructive way of having a discussion.


> I don't see any evidence that the reasons I cited are statistically insignificant or temporary.

Really? So you think the overriding reason that people buy a product has nothing to do with whether they like it? Because that's the argument you seem to be making. I'm not desperate to defend Apple, I'm desperate to defend logic and common sense.

Honestly, I have no idea what point you were trying to make on this little aside to my original comment.


I agree but from having been doing some recruitment lately I can truthfully answer that the worst code I've seen recently is not my own... It's scary to recruit programers...


I agree with most of the article, but I wish Jeff Atwood would stop telling us what programmers should be like and who we should not hire. He has good observations, but he's talking like a cult leader and that's annoying.


I used to really enjoy such posts - ones that celebrated the weirdness and unpredictability of software. The Zen of the argument Jeff Atwood presents is appealing for some reason. However, reading such articles now I cannot help but think they contain too little substance.

As I understand the reasoning it is this: I'm a relatively good programmer and yet I'm incompetent => The world is full of bad programmers => Most software is badly written => I hate software. Perhaps that currently holds. However, to imply that it will always hold is intellectually crippling. To demonstrate this, all we need to do is look at our premise (axiom?) and rephrase it slightly: "Any good programmer is still incompetent". I personally don't see any reason why this should be self-evident and every reason to find ways to change it.


Wow, I thought it was just me. In life I'm pretty laid back--it generally takes a lot before I get riled up by another person. But trying to get something done and running into dumb bugs in bad software makes me rage. I don't rage at my own code though, like he suggests--at worst it's just embarrassing. No, I only rage at other people's bugs. And only when I'm not in a position to debug or fix it (proprietary binaries, web apps, etc).

I think that's why I find my Debian system so comforting. Despite things often going wrong I feel secure using it because no matter what goes wrong I can get the source and fix it (well, within reason--I still can't figure out why my %$#@! sata disk drives randomly hang up for multiple seconds at a time).


What motherboard and chipset do you have? My brother began experiencing similar random hang-ups when he added a second hard drive to his C2D E8400 system running Vista.


I've got an Intel DX58SO (the only core i7 from Intel I could find at the time). Usually Intel motherboard "just work" with Linux...


Interesting, that is my biggest annoyance on Vista, too. I wonder if there might be a problem with SATA that users have been attributing to Vista or other OSes.


I bought a business lXnXvX laptop, and guess what? There is a pile of junk waiting for me named as enhanced experience, well thanks it really made my day by continuously bringing up pc diagnosis software at ridiculous times and asking me needless questions. I became a pc doctor now, installing and updating my computer and making sure it stays healthy. That's my primary job anyway, to keep my pc operational and as healthy as possible. If there is time left from that duty, maybe I can use it for other things. The reason I am angry is this is a premium product and I am obliged to pay $2000+ for this.


The best bargain got the lXnXvX buyers, who bought vista machines eligible for win7 upgrade - they received pristine win7 oem discs, without any enhanced experience or other garbage.


The rule is pretty much to format and run a clean install anytime you get a new computer.


Since I managed to run GNU/Linux properly, I thought that software can also be good. Grewing I started to put my hands in software development, and now I'm aware that everything sucks. I realized this by myself, than I read this article and ...well, I totally agree.

There's no good software out there. There's just software that sucks less.


That's a little strong. Of course there is good software out there. There's even great software out there, just not much.

In a field where the barrier to entry is so low it is natural that the average quality will be lower. Compare this to say, aircraft design, where the bar to entry is skyhigh (pun intended) and as such average quality is higher.


It's not true. I don't hate software. In fact, I quite like it. But I do sometimes hate the things which people make software do - such as spyware/malware/DRM, etc. And you only need to fear blue screens if you're running Windows.

Software is never perfect. You can tinker with it endlessly. If you're a perfectionist then software development is probably not the career for you. I look at writing software in the same way that an author might look at writing a novel. At some point you have to publish. There are always alternative plots that you can think of, the characters aren't always as interesting as they could be and sometimes there are regrets and missed opportunities. Also readers will have diverse opinions about what you wrote, which may be quite different from how you imagined the novel would be interpreted.


As most of the comments on the post demonstrate, his demand that all software developers hate their own code more than anyone else's code is a little unreasonable. If he's been fortunate enough to always be the least competent on his team and therefore has saved himself the frustration and his co-workers only produced code which he admired, then he is definitely lucky.

That's not to say that most of us are great programmers -- most of us, as you might expect, are average programmers. It's just to say that there's a lot of code out there that's not even written by programmers at all. You get the designer who's been copy/pasting every snippet he could get his hands on until it just made the dumb thing work, you get construction workers and plumbers who were attracted to the glamor of a desk job after throwing out their backs, or whatever.

One of the last codebases I worked on was a website that ran a whole company but didn't have any ID fields anywhere and all joining or other inter-database matching had to be done by text comparison. This system was written by an ex-construction contractor who'd fallen hard on his luck, learned HTML one day, and became this company's de-facto programmer, so it makes sense that it would be like this; the concept of an ID field, after all, is not self-evident to one without training.

Much code out there is "written" by people who have no idea what they're doing. I don't mean that in the self-effacing, most-programmers-are-average-programmers way, but I mean it in the way that "your system was built by someone who was literally just as qualified as your receptionist or janitor" kind of way.

Given these circumstances, I don't think it should be an immediate writeoff if you can do better than the last codebase you were brought in to fix.


If he's been fortunate enough to always be the least competent on his team

He's Jeff Atwood -- the hand of fortune has no role in his relative incompetency.


Ouch.


I had some serious deja vu when reading the anecdote about a woman and camera software. I was in pretty much the exact same situation, except it involved my Mac... so not only was it about to be tainted with crappy software written by hardware people, but it was also likely that it was crappy software written by hardware people who were used to writing their crappy software for PCs.


Random thought spurred by this article: camera and camcorder ads in pregnancy-related pages probably convert pretty well. IME, it's when your firstborn is coming that you realize your phone's camera isn't good enough.


I found this somewhat reminiscent of Socrates' paradoxical "All I know is that I know nothing." Or, knowledge of your own incompetence is a sign of competence.


His argument points out the benefit of web applications- your software may suck now, but maybe not so much next week.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: