An outrageous, insightful, and sadly accurate commentary on programming. I found this an extremely entertaining read and agree with most of it. It doesn't offer solutions, but certainly highlights a lot of the problems.
"Double you tee eff?" you say, and start hunting for the problem. You discover that one day, some idiot decided that since another idiot decided that 1/0 should equal infinity, they could just use that as a shorthand for "Infinity" when simplifying their code. Then a non-idiot rightly decided that this was idiotic, which is what the original idiot should have decided, but since he didn't, the non-idiot decided to be a dick and make this a failing error in his new compiler. Then he decided he wasn't going to tell anyone that this was an error, because he's a dick, and now all your snowflakes are urine and you can't even find the cat.
Personally, I think things will only get better (including salaries) when software development is treated like other engineering disciplines.
(Score: 5, Interesting) by Thexalon on Thursday May 01 2014, @02:39PM
In the vast majority of professions, horrific incompetence is tolerated. About the only thing that makes programming different is the number of people affected by an incompetent programmer in an incompetent organization - one stupid mistake in a program and 40 million people are adversely affected, whereas one stupid mistake by, say, a PR flunky and only a few people are adversely affected.
In other professions that can have that kind of effect on things, we have extensive exams and certifications to try to prevent incompetent people from having careers in the field. We don't for programmers, because for the most part the smeg-ups affect people other than the ones who hired the incompetent programmers (users, partner businesses, members of the general public, other programmers).
If we really wanted to change the culture of professional programming, one of the key things we'd have to do is make it illegal to sell software or sell access to an online application that requires users to accept an EULA with language like this:
(Yes, this was taken directly from a real EULA, with the company name replaced to protect the guilty)
Because once you read through it, you realize that what this is saying is that:
1. The software may not work at all.
2. The software may not do anything remotely similar to what it's advertised to do.
3. The software may cause serious and expensive problems for you or your organization.
4. The software may be infringing on patents, copyrights, or trade secrets of third parties. You have no way of verifying this one way or the other, and if it is the case, you rather than $COMPANY are liable for the damages.
5. $COMPANY may know for a fact that this software will cause massive damage to you or your organization. Even so, they are not liable for this damage.
In other words, right now you are allowed to sell the software equivalent of a live grenade with the pin pulled, packaged to look like it's a bag of dog food, and when the grenade goes off it's entirely your fault. Make the sellers of software entirely liable for the consequences of their own mistakes, and they'd demand processes and exams and continuing education requirements to ensure high quality programming.
"Think of how stupid the average person is. Then realize half of 'em are stupider than that." - George Carlin
(Score: 3, Interesting) by maxwell demon on Thursday May 01 2014, @02:54PM
Well, just because they write it in their EULA doesn't mean it really holds under the law. There's a reason why EULAs also contain sentences like this (also taken from a real EULA):
The Tao of math: The numbers you can count are not the real numbers.
(Score: 3, Interesting) by Thexalon on Thursday May 01 2014, @03:41PM
That it exists at all means that there exists at least one jurisdiction where such clauses are enforceable, and since many EULAs also include a declaration of venue (which is common in contracts of all sorts), they can simply pick a jurisdiction that allows those clauses.
EULAs are one of the many places in which companies fleece consumers who don't have expensive lawyers. And even some with expensive lawyers: Now-senator Elizabeth Warren once described one of her regular exercises in her contract law courses as going through ordinary consumer contracts for cell phone plans and bank loans and credit cards and the like, and discovering that neither her, her students, nor her colleagues at Harvard Law could really figure out what they actually meant.
"Think of how stupid the average person is. Then realize half of 'em are stupider than that." - George Carlin
(Score: 0) by Anonymous Coward on Friday May 02 2014, @03:26AM
"That it exists at all means that there exists at least one jurisdiction where such clauses are enforceable"
Not necessarily. Perhaps the person putting in there put it in there in case there is a jurisdiction where such a clause is enforceable. Also, laws change with time so perhaps the clause is in there to anticipate possible changes in future laws. Perhaps one clause is valid in one location and not another. Sometimes it may depend on the court and the specific judge even.
It's much easier to just put a catch all document than to try and figure out what each jurisdiction allows and work from there.
(Score: 4, Insightful) by Anonymous Coward on Thursday May 01 2014, @03:35PM
Even the oldest, most wise and experienced rockstar of a programmer can never be exactly sure what his code will do, simply due to the fact that it will be compiled by software written by other people, run on operating systems written by other people on hardware designed, built and maintained by other people. Implementing functional requirements (often contradictory, or impossible) specified by other people. He can try to avoid catastrophic failure by building various types of safeguards into the software, maybe turn it into graceful failure, but he will never be able to prevent failure altogether.
So please be a bit more nuanced. Designing and building a bridge, or doing a brain surgery, is child's play, compared to what many programmers in the world today have to deal with. THAT..and the lawyer culture, is why we have disclaimers.
Civilization runs on what we do. I'm sick of being treated like a digital brick layer, after all the effort and expense I went through to learn what I know, while MBAs and banker parasites reap the profits.
Yes I am an Anonymous Coward, and proud of it!