Most critical production systems have alerts to pagers and phones. Nobody exclusively relies on email for this kind of stuff.
What makes you think that the Java API is "public"? At least Sun/Oracle never said that anyone can use those APIs. Which is why there was this compatibility certification crap.
I read somewhere that Oracle wasn't interested in buying Sun until they learnt about Android's use of Java APIs. If they were successful in suing Google for this, the damages could make up the purchase price anyway.
I agree with your list, except this one:
- one day I will rewrite this to be better
Welcome to the real world, where there are deadlines and sometimes it's a necessary evil to write crap to fix later.
What you say is true, but "not being the most brilliant people I know" is not necessarily "failure", and definitely not "the floor".
I know a bunch of really brilliant CS people as well. Almost all of them graduated with CS degrees and doing quite well. There are different kinds of "smart". The person who becomes a competent sysadmin at 16 is different from the one who drops out of college to found a successful startup, and is different from the one who gets a CS PhD and then a researcher job at Princeton.
The 16-year-old sysadmin probably can't do my job, at least not as well as I (software engineering), and I probably can't do her job well either.
There are different paths to "success", although I must agree that the value of getting a degree is diminishing every day, it's not necessarily a bad thing to do. It really depends on the circumstances of each case.
If you can't write self-documenting code, you cannot write self-documenting documentation.
In my jurisdiction (non-US) there's stuff like these: http://en.wikipedia.org/wiki/D...
Not sure whether there are such laws in Massachusetts..
Depends. If you're kidnapped to the blood donation center and had your skin pierced and blood forcibly "removed" (I try not to use "bleed") from your body, while you are not dead yet, I suppose it fits the definition of being "bled alive".
Anyone can learn to make sounds on an instrument. Doesn't mean anyone can make music that doesn't suck. (I know I can't.)
(Sorry for stereotyping but) you're a typical geek. You think that words can have a precise, context-free meaning, and whether something falls within the meaning of a word (or a technical term) can be done in polynomial time.
The real world is much more complicated than that.
Take for example, what is a male and what is female? You'd think it's easy enough to determine that if you have access to the genitals, but there's still difficult corner cases to handle. For legal questions, it can be even more complicated. Questions like "was there a contract?" "is this negligence?" "did the person have the 'intention' to commit the crime?" are simply too 'complicated' to have a deterministic algorithm for all the cases. And before you ask why there are so many lawsuits (I'd imagine many more than the number of people with an indeterminate sex), the fact is that for the vast majority of cases the question is pretty clear cut, and it's really the corner cases that seriously go to court for a dispute on issues of law (as opposed to factual disputes, eg. whether a person did indeed sign a contract, whether the accused did kill the victim, etc.).
Supposedly you can really write out all the anticipated cases in a super horrifically complex program. But then, even if we suppose we can resolve the controversial cases where the facts don't fit our intuition (eg. the many many many situations whether or not you can have an abortion), it defeats the other purpose, that the (general) legal principles should be understandable by a lay person. In fact, lawyers are human beings too (well, not going into the soul question), and if the solution is not understandable by a significant number of lawyers, it's not going to become law. That's where your argument comes in -- but honestly, when you're good at skill X, you'd tend to believe that skill X is all you need to solve the world's problems, until you realize that when you apply skill X outside of its usual domain, it doesn't work in practice. (Just check out the mad scientists cartoons/movies for how things that work in theory could go wrong) The fundamental flaw I see, is that people expect the law to *usually* work according to their *intuition*. Usually court decisions don't tend to go against common sense, and when it does, the legislature will "correct" the decision (at least for common law systems) so that the law is what people expect. The problem is, what people expect can be very self-inconsistent, and what people expect is usually optimized for the normal case, not optimized to reduce the awkward corner cases. If you have no idea what the "self-inconsistencies" of a normal human being is, try understanding a woman. (to please the feminists: or a man who's not a logician -- getting to understand the opposite sex makes you wonder whether everyone's brains are just full of inconsistencies)
And of course you can't just look at the law in its current state and simply declare it void because you have a supposedly better system "intelligently designed" by a genius. I'm not sure about you, but I personally would be very skeptical of any large "rewrite" of a system by a person who doesn't even understand what the system is about.
I do agree there could be a bit more inter-disciplinary research on how CS can assist in making law less complex, but
I'd say, getting legislation to use a proper version control system, and if a git-blame could show all the people who voted for/against a particular law, it would already be a great win.
Law is fuzzy. Programming is usually not.
Law is often inconsistent. Programming (or the underlying logic) usually cannot be inconsistent.
Law is relatively simple once you get past the fuzziness and inconsistencies. A lot of software is multitudes more complex than legalese.
There's often an easy way to test your program. Not so easy to test a legal theory or opinion. (You go to court, spend thousands or millions on legal fees before you get a judge to decide on the matter -- and then you have appeals)
Lawyers are usually not very anal about making the law "efficient" and "easy to understand". Sometimes the law is more complicated than it needs to be, and the lawyers like it that way (after all, they make money by translating all that crap to plain language). Most good programmers, on the other hand, strive to make their code easy to read.
English common law is basically all about struggling with legacy issues and finding new applications for old "code". The concerns about "backwards compatibility" (i.e. not overriding previous decisions) appear often enough to warrant a mention.
Disclaimer: IANAL, have a law degree, and I'm a software engineer.
Or this one.
Somebody is just bitter.
Sure, there's a bunch of money sucking parasites in Wall Street, and then another bunch of them in Washington DC, but then, to claim that they are the "only" jobs that pay well, is bullshit. The richest people in the world aren't the ones that merely push money about (except maybe Buffett). If you're talking about being an employee at a large corporation kind of "job", how about 3 million dollars at Google? Not sure how productive he was, but I'm pretty sure he wasn't in the business of pushing money around per se.
Tech is generally as well paid as any other industry -- it's just disingenuous to whine about compensation in the tech industry when it's been outgrowing basically every other industry, and companies scrambling to hire anyone who has a hint of talent.
An improvement from the "Chair in the Air" days, I suppose?
They say that some people are using lower-end Android phones as a "dumb" phone.