Flav wrote on Mar 20
th, 2014 at 5:57pm:
You never had the fun to troubleshoot compiler generated bugs... Trust me Code do not always do what you told it to do... Unless you code in Assembler. In that case, kudos, in these days of Visual This or That you're an endangered species.
You think that's legitimately the issue here? Or in 99.99% of flawed code?
I spent past years dissecting how certain VMs work, and in the languages I'm versed in, I can pretty well do anything I please. Yes, I've found issues with certain build tools and implementations, specifically IBMs zSeries special snowflake JVM implementation and their SQLJ language that I ran bareback on that box w/o paying for their overpriced web containers. It's actually not that hard to find those types of bugs, if you build in different environments using more than one compiler tool. The one that compiles, but doesn't act like the others is the issue. Doesn't happen often though, nowhere near the prevalence of your average developer completely missing run of the mill edge cases.
Truly good developers are always an endangered species. I was mentored by some of the best, talk to others yearly (the ones that write the books that O'Rielly churns out), and I've mentored a tiny few kids that were capable and ambitious enough. The vast majority of the developers churned out the education system will never be anything more than average code punchers that do exactly what mgmt tells them and wouldn't have any vision even if they dropped acid before they sat at a computer.
I got hired into an organization that had a huge, rapidly grown, tightly coupled, code base (millions of lines and hundreds of applications, thousands of pieces of source) that used to throw tremendous numbers of very real business exceptions on a regular basis that required all kinds of manual intervention on a regular basis. It took a while, but it all got tamed and I'd say I re-designed almost every major area of their system all while keeping it running and new parts got swapped in an old shit got excised. It's really no different than surgery (and vastly easier I'd argue). You can replace just about anything in the human body, provided you know how and where to cut and how to keep the patient alive while you do so. The problem isn't that coding is hard, it's that people are stupid. No educational system teaches how to work on enterprise scale systems safely. You either learn that from people who already know how to do it or you don't, most don't.
I've thrown plenty of things into high volume production environments without even bothering to do more than compile them, as long as I'm confident in my language skills and I'm satisfied as to the risk profile (I don't recommend that to 99.99% of developers). Most developers fold like cheap suits the minute you quiz them on the languages they work in. They know the terms they use everyday, and that's about it. I'm only special in that if I'm going to bother to learn a language or an environment, I'm going to take the time to master it.
Code doing exactly what you tell it to is going to be accurate in most all the cases that matter. Developers being mediocre coders is far more common than them getting bit by an obscure compiler flaw. Frankly most of them couldn't find those even if they knew they existed, they'd just try something else until it gave them one successful test result.

ETA: I did some time learning Assembler back in the day. Virtually never used it for anything since I never went into the engineering side and chip design that I studied for a while in college.