Live data from Hacker News

Nobody Hates Software More Than Software Developers

codinghorror.com

41–50 of 50 posts

Re: Nobody Hates Software More Than Software Developers

#41
post #4

Earlier quoted context omitted.

The irony of you saying "almost everything I ever inherited was crap in one way or another" is that somebody probably said the exact same thing about your code. I bet you write amazing code, but when given a choice, programmers would rather have the joy of creating their own code than trying to interpret someone else's.

Let me try to sketch how bad it can get: In the mid 80's I worked for a game company for about a year (Aackosoft, flightdeck, indy 500 on the Atari) and I inherited a project from another programmer. After reading the code for a couple of days I realized that he'd been planning his 'exit' for a considerable time. The could would assemble (the 68k part) and compile (the C part) but other than that you couldn't make he…

could = code, sorry...

and no, I'm not making this up!

Re: Nobody Hates Software More Than Software Developers

#43
post #6
post #4

Earlier quoted context omitted.

The irony of you saying "almost everything I ever inherited was crap in one way or another" is that somebody probably said the exact same thing about your code. I bet you write amazing code, but when given a choice, programmers would rather have the joy of creating their own code than trying to interpret someone else's.

When it comes to maintaining code, I believe there are 2 kinds of crap: subjective (I don't like it) and objective (it's crap because of these 14 specific reasons). You're probably right about people who inherit my code. I know, when they've whined about it, I confronted them. "Please show me exactly what's wrong with it. What are your specific complaints about violations?" I rarely got an objective answer. It was us…

Oh god... I had a partner in school that would name any variable x and then reuse it ad infinitum... what a nightmare.

Re: Nobody Hates Software More Than Software Developers

#44
post #10
post #6

Earlier quoted context omitted.

When it comes to maintaining code, I believe there are 2 kinds of crap: subjective (I don't like it) and objective (it's crap because of these 14 specific reasons). You're probably right about people who inherit my code. I know, when they've whined about it, I confronted them. "Please show me exactly what's wrong with it. What are your specific complaints about violations?" I rarely got an objective answer. It was us…

Those are technical issues. The truly most nightmarish software to inherit is one that shouldn't have been writen to begin with: software made by people who either lack the programming skills, or the domain knowledge. Nothing worse than an accountant-turned-DBA's perl, or a system's programmer that just left you an steaming pile of MFC GUI. Worst of all, the person responsible for the mess is not long gone and forgot…

You had me at "steaming pile of MFC GUI."

Re: Nobody Hates Software More Than Software Developers

#45

I'm a little bit nervous to say this, but this is another of Jeff's articles where I think "man, so many of this guy's problems would go away if he didn't hate Macs so much". In my experience, Mac devs don't hate software, and Mac users don't have the instinctive "oh [App X I haven't heard of]? That's going to suck". Gruber talked more about this in his Broken Windows essay -- http://daringfireball.net/2004/06/broken…

Apple is it's own worse enemy here - while there is beautiful software on the Mac and the standard is in general above what I think you find on windows, the software that Apple itself makes for windows is generally awful and this drives the perceptions of a lot of windows users.

For example, iTunes is still the one piece of software that gets me into a flying rage - usually when I want to do something stupidly simple and it refuses to let me due to some preconceived user workflow that I would be violating. It freezes and hangs at weird moments, the UI lacks all kinds of normal Windows niceties like tooltips and hover highlighting, things that are vitally important to click on are rendered as if they are not clickable at all, and in general it looks completely out of place.

The message that Windows users get from this kind of thing is that Macs are foreign and hostile and incomprehensible and the idea of spending your whole life in that environment is repellent. Strangely when I use the same software on the Mac it all makes sense - I can't even really explain why.

Re: Nobody Hates Software More Than Software Developers

#46
post #3

In fact, I think you can tell a competent software developer from an incompetent one with a single interview question: What's the worst code you've seen recently? If their answer isn't immediately and without any hesitation these two words: My own. Then you should end the interview immediately. Sorry, pal. You don't hate software enough yet. Maybe in a few more years. If you keep at it. I have always enjoyed Jeff's c…

"but it works, it generally works well, is very well documented, and can be easily enhanced by myself or someone else."

Yeah, but maybe for you "excellent, clean code" means you have moved everything into XML configuration files. I thought the general consensus was that real experts can never know that they are experts, therefore your claims would make me wary of your skills.

Isn't there always a way to write things even better, cleaner, more effective, more modular, whatever? In that sense I think all of my code sucks. I am sure some people out there write worse code than I do, but I am also sure there is much better code.

If you think you are so good, are you even still trying to improve yourself?

The only way I see to write "perfect" code is to adhere to some standard perfectly. Like J2EE development: you have strict rules for putting stuff into XML files and so on. So if you did all that, and raked in the money, you can call your code "perfect". It would still suck, though.

Re: Nobody Hates Software More Than Software Developers

#47
post #26

"How do I know, incontrovertibly, beyond the shadow of a doubt, that the world is full of incompetent programmers? Because I'm one of them!" Those who can, code. Those who can't, blog.

Pissing on Jeff's coding ability became passé when he put out the best programming Q&A site out there. You need new material.

Re: Nobody Hates Software More Than Software Developers

#48
post #14
post #10

Earlier quoted context omitted.

Those are technical issues. The truly most nightmarish software to inherit is one that shouldn't have been writen to begin with: software made by people who either lack the programming skills, or the domain knowledge. Nothing worse than an accountant-turned-DBA's perl, or a system's programmer that just left you an steaming pile of MFC GUI. Worst of all, the person responsible for the mess is not long gone and forgot…

Now I can't sleep (why did we have to talk about bad code?) ``The Windows 3.1 Guru'' 1) That guy who knew too much about Windows 3.1 internals and never thought this newfangled "Windows for Workgroups" or "95" would never take off. Thank you, sir. Treating obaque structures for the unsigned chars they are has never posed a problem for me. All the documentation I needed was in those 4 pages of macros you left me (comp…

These are awesome.

Re: Nobody Hates Software More Than Software Developers

#49
post #6
post #4

Earlier quoted context omitted.

The irony of you saying "almost everything I ever inherited was crap in one way or another" is that somebody probably said the exact same thing about your code. I bet you write amazing code, but when given a choice, programmers would rather have the joy of creating their own code than trying to interpret someone else's.

When it comes to maintaining code, I believe there are 2 kinds of crap: subjective (I don't like it) and objective (it's crap because of these 14 specific reasons). You're probably right about people who inherit my code. I know, when they've whined about it, I confronted them. "Please show me exactly what's wrong with it. What are your specific complaints about violations?" I rarely got an objective answer. It was us…

Some of these "violations" are good ideas in some contexts. Tom Duff has written a pretty good, clear case for "single entry, multiple exit" in the form of multiple conditional return statements in a function. And Rob Pike has made a pretty clear case that this:

        for(i=0 to 100)
                array[i]=0;
is better than this:

        for(elementnumber=0 to 100)
                array[elementnumber]=0;
But that involves variables named with 1 or 2 characters.

The rest I pretty much agree with, except in very unusual cases.

Re: Nobody Hates Software More Than Software Developers

#50
Clearly the main issue of the post is the answer to the interview question. Although I think it's a very good answer and that to me it would probably mean I would be hiring a guy which is humble, which always views his knowledge has something that still could be better and has a view of his own code has something imperfect, and so he tries very hard to always know more and improve, and that would mean in the end he is just one of the best choices to hire, I think that in most companies that guy would never be hired.

Although it sucks, nobody gives any value to humility anymore. They want the confident, "I'm an expert" kind of guy, so giving as answer that the worst code you've seen lately is your own, without any kind of explanation of why you think that (that you view your knowledge has something which as always a long way to go) would probably be a instant KO to the poor humble interviewee.

Post reply on HN