Only logged in members can reply and interact with the post.
Join SimilarWorlds for FREE »

I Like a Good Quote

Murphy´s Laws of Computer Programming
1. Any given program, when running, is obsolete.
2. Any given program costs more and takes longer each time it is run.
3. If a program is useful, it will have to be changed.
4. If a program is useless, it will have to be documented.
5. Any given program will expand to fill all the available memory.
6. The value of a program is inversely proportional to the weight of its output.
7. Program complexity grows until it exceeds the capability of the programmer who must maintain it.
This page is a permanent link to the reply below and its nested replies. See all post replies »
SW-User
that sounds like laws of users, programming would be more

- the optimizer always has bugs in it
- someone else's code always uses different indentation rules from you
- code you write on Friday afternoon will not be understandable on Monday morning
- moving to a new compiler will break something
- comments only document the parts that are obvious
- API calling conventions changed AGAIN
- users want something that seems easy to them but is actually difficult or impossible
- everything gets messier and uglier until eventually it has to be rewritten
- you have 2 days to learn a new language (bonus if it's Haskell)
- bug that disappears when you run it with the debugger
MethDozer · M
@SW-User
RealtaReoite · 61-69, M
Tabs or spaces @SW-User?

You comment about comments is soooo true. Actually they are all true. Dealing with the "debugger" one right now. All I have to do is ship a complimentary one with each system sold and all will be well.
SW-User
@RealtaReoite or emacs vs everyone else
CharlieZ · 70-79, M
@SW-User Murphy´s laws are getting old.
And so myself.
Software design (my job) is getting millenial.
Hope for the best but prepare yourself for the worst.
CharlieZ · 70-79, M
@SW-User And that is also why I go on, at 67 years old, being so frequently called as external consultant.
When things that should work, don´t.
That´s when the perplexed system manager says: "Call that dammned grumpy bald one, again!"
RealtaReoite · 61-69, M
@SW-User And:

Your client will invariably have lost the dongle for the compiler version that the code you are trying to maintain was built with -- but will cheerfully provide you with a dongle for a newer compiler version that "can only be better, right?"

The binary file that gets released the next morning will not match the "unofficial" binary that you sent out late the night before to fix a bug which, according to the project manager halfway around the world, "can't wait for the CM people to get their butts out of bed in the morning", despite the CM person swearing up and down that all she did was add her "Official Release" comment line.

Discovering, for the first time, that adding a comment to a source file really can, sometimes, change the executable.
SW-User
@RealtaReoite I'd laugh if I weren't crying 😭
CharlieZ · 70-79, M
@RealtaReoite True!
You certainly know what you are talking about.
Some tasks are more about exorcism than about code.
RealtaReoite · 61-69, M
@SW-User My life...

And right now, I'm really trying to understand why one particular serial port on a microcontroller gets overrun errors (and locks up, ignoring any and all attempts to clear the error) at seemingly random times, despite the fact that the logic analyzer seems to claim that no overrun can possibly be occurring -- and the problem only shows up when the debugger is NOT connected.

Fortunately, I'm old enough now that all I can do is laugh. And wait for inspiration to arrive.
RealtaReoite · 61-69, M
Thanks, @CharlieZ. I've been doing this for a lot of years and "exorcism" is pretty much on the mark some days.

Somewhere in a dark cranny in my brain is a vague memory of some old Motorola (I think) debugger appropriately called an Exorciser. Back in the days that there was still truth in advertising.

Damn, I sound like a curmudgeon.
CharlieZ · 70-79, M
@RealtaReoite It´s both a bit scaring and a kind of hope that two old venerable sources of experience are still somehow valid.

One of them is and will always be "No Silver Bullet – Essence and Accident in Software Engineering" by Fred Brooks (1986), a must read.

The other one is (sadly) the history of the Sabre software, when they upgraded the (otherwise working)inherited code.
A what "not to do" strong example.
In other words, to try to fix "oportunistic code" with more "oportunistic code" is the best récipe for disaster.
Eveen when that oportunism once was as good as icecream, it´s always also a one shoot hunting shotgun.