Hehe, nice post. It resonates with me because i believe that if you ever start thinking that what you produce is ‘pretty damn good’ you’ll stop trying to improve and in this industry when that happens you’re in trouble and so is everyone you work with.
I think there’s a sort of honeymoon period that accompnies the writing of code - for a while, everything is perfect, you’re so happy with how everything is working out. And then, there are problems. Little problems at first - but you fix them. Later, you realize that there were problems with the way that you fixed the little problems - and now you’ve got big problems. You start to wonder if it’d be easier to just start over - but you’ve already put so much effort into it that you feel committed - why waste all the work you’ve already done?
But there is most certainly a point, early on in the process, where you have a sweet little bundle of code that you love more than anything in the world.
I concur with the HP printers comment. I prefer using HP printers on Ubuntu than on Windows, it’s so damn easier.
That said, Vista and 7 seem to detect my HP printer out of the box, similar to Ubuntu, no need to install HP printer drivers/extraneous shitty software.
“What’s the worst code you’ve seen recently?”
It’s not “my own”; it’s not even “yours” (which is the obvious retort)
It was a Win32 C program written by a COBOL programmer.
Invisible dialog windows were created to be used as processing steps and data buffers and never released (but they were orphaned). There were no typedefs and no structs; all variables were global. There was zero code reuse. Code was obviously cut and pasted multiple times, even in the same function, with no variation. Several functions were over ten thousand lines long.
I couldn’t write code that bad if I tried. I couldn’t write code that bad if I erased my memory and started over from scratch. In assembly language.
An ex-military friend of mine refers to this level of incompetence as “weapons-grade stupidity”. And he’s right. Twenty minutes of running that program was guaranteed to blue screen the machine so bad you had to turn it completely off and frequently you also had to repair the disk drive on reboot.
Summary: you just think your code is bad because you have such high standards. But your code, like mine, is pure gold compared to the truly clueless!
holy crap, that was the funniest thing i have read all week. your dreams are hilarious
"You said “Any modern operating system (and even Windows XP!) can see and automatically download pictures from a new digital camera.”
Well, this is not always true. At least my Canon EOS 350D DSLR is not being detected by Windows XP without WIA driver because it does not support Mass Storage Device."
You are doing it wrong.
You shouldn’t be directly connecting your camera to your computer except in dire circumstances. Pop the card out and into your card reader, then download the pictures four or more times as fast (I had the 300D before my D40, and it was an 8x difference between reading from the camera interface versus a fast firewire card reader; my D40 is about a 3x difference; your 350D should be somewhere in between).
Really. It’s silly to directly connect a big, bulky, fancy camera up to your PC to download pictures. Just use a card reader!
(For what it’s worth, my 300D directly connected up to my Mac with no special drivers, and I’m sure there wasn’t a Windows Imaging Device driver snuck in there without my knowing … there’s usually a camera setting enabling “PC Mode” for transfers which changes the firmware over to calling itself a mass storage device)
You’re absolutely right. When I develop software or a website, it always feels less “clean” than other software/websites that someone better than me made. Even if it works perfectly fine.
Software typically sucks because of a few reasons.
Ever changing requirements, that were poorly accessed in the first place.
As well as over estimated project time frames and limited / unsuitably skilled resource’s.
If you say the worst code you have seen is your own. You obviously haven’t met a programmer who’s attitude is short variable names is less typing and ‘why do you need documentation or comments? The source code is right there…’ who’s working on a project with the traits described above.
Ummm, Did you just review the software by the process of not installing or trying it?
Seems like an extreme case of navel gazing to me.
Yeah sure, my code IS bad. But really, I’ve seen much worse
It’s not stopping me from hating my code though…
I am first? At once?
Sorry for silly comment…
But come on, hating your own code is stretching it. Sure my code isn’t providing the performance I originally intended. Sure, it didn’t fit the original memory budget. Sure, the HW requirements are steep…
But I find hating it is a bit too much. I’ve seen some systems getting my same performance, while using more memory to churn a 100x smaller dataset. I’ve also seen some system mangling the same dataset with 6x the performance but hating your own code is weird to say the least.
The answer to “What’s the worst code you’ve seen recently?” is “My own” not because I hate it, but because it’s the only code I’ve seen recently (couple of weeks).
I think this is a case in which software development and building construction are similar.
If you hire 10 incompetent builders then at some point you will have to hire a good builder to fix all the mess. Which if you had hired that one good builder at the beginning you could have just done without the 10 incompetent ones.
Have you actually gotten that answer (“My code is the worst that I’ve seen recently”) from an interviewee? Did you hire him/her?
My codings not great!!!
So i prefer to look at it after ive spent hours debugging it, rather than before. So worst the thing i wrote and second the thing i debugged.
Great site by the way
It’s usually not the code you wrote today. It’s the code you wrote six months or a year ago that you’re looking at today. If it still looks good, you’re either that good (unlikely) or you’re about to appear in the Daily WTF.
About digital camera software: I have experience with two companies here (Canon and Panasonic), and I must say that the Canon experience is very good - they have software for the casual user/amateur that even my 70-year-old mother uses happily and successfully, and software for the professional that is well thought out, highly functional, stable, and free.
On the other hand, the junk that came with my father’s new Lumix gave me an experience like the one described above. One example: New pictures are sorted into ddmmyyyy folders. No way to change that. Some stuff only works when you’re an admin. Etc. etc…
…are exceptions to the rule that hardware companies make bad software. Sorry, last sentence got lost in my previous post.
I can’t say I “hate” my code. I’m just never happy with it. It could always be better, I always have to do something kludgy that makes me cringe, and all I ever see are the things I wanted to do to make it better but didn’t have the time/budget/energy to do so.
I always have an imaginary developer on my shoulder going, “Is that really that’s the way your doing that, putz?”
Captcha: problem eric
“What the worst code you’ve seen recently? My own.”
Gotta differ with you there. I’m currently in a very painful project, editing and extending the feature set of a VB.NET/ASP.NET website written by two guys who had never written ASP.NET code previous, and one of whom had never written VB (he was a Java guy). Almost every function or method of every class and page has me wondering how either of these guys make it through a single day without hurting themselves.
The only problem I have with my own code isn’t so much a problem with my ability to write good code, but that the technologies are changing so freaking fast that I don’t have the time to really study and adopt the best-practice way of doing things for a given skill set. And because technology is moving so fast, the answer inevitably is: don’t worry about writing to the best practice: we’re going to pitch this code and re-write everything in three years anyway.
My point being that the lack of stability of the technology in our profession almost guarantees that programmers, on the whole, will not write good code.