Most of the time you're maintaining code you're maintaining bad code, though, and it's pretty rare that I run across a perl program with "use strict" turned on. But if I don't see it, I at least know what I'm up against. The newer languages need a similar "A bad programmer wrote this" flags.
Big deal. I'm sure the ones soon to be used by businesses and local law enforcement will be much more safe & reliable, because they will be produced in a competitive market environment (instead of by government contract) by 3D printers.
Oh gosh, it took me a second to detect the sarcasm in that statement. At first I thought, "no way - local law enforcement and safe. - LAPD drones???" But then there was that bold marker for pure sarcasm: competitive market environment hehehehe
They either need to be designed to not fail (triple redundant, etc) or designed so that when they fail that they are not a hazard to innocent bystanders.
Or when they fail, they could access a map of insurgents living close by.
Drone engine failure, crashing in 2 minutes, list of possible crash sites:
playground: -100
unoccupied garage of elderly lady: 0
vegetable garden: -10
guy who posted anti-NSA stuff on slashdot: +20
* You know who you are
It's funny, I'm working on a project for which a lot of the components were coded back in the mid '90s. The state of the art really hasn't advanced since then. The basic API (Xlib/Motif/Xcb) are nominally well documented -- you can find books and the library calls have man pages. Newer libraries and X extensions are a hodge-podge of largely-undocumented and generally incompatible API calls that take more work to integrate than they do to program in (Assuming you can find an example to work from.) The actual frameworks typically require you to drink all their kool-aid in order to use the framework. So I could go GTK+ or QT, learn their idioms and framework implementation details and that's great assuming I never want to change frameworks again and am willing to accept their quirks. And outside of QT, everyone (including motif/xlib) re-invent C++ badly with home-rolled type systems which often involve pushing strings around. Brilliant.
Somehow despite all this it still does what it does better than anything else I've seen. I'm not sure how this is possible, but there you go.
The king of the world? Jesus Christ?
Just FYI: Ave Maria
I wonder if choice of toppings correlates to voting history.
And if so, could it be circular? I.e. interesting people in more non-traditional toppings could influence their views on non-traditional topics...?
Thus spake the master programmer: "After three days without programming, life becomes meaningless." -- Geoffrey James, "The Tao of Programming"