Comment Re:A poor craftsman blames his tools. (Score 1) 531
"easy code"? What kind of made up term is that?
The whole point of programming languages is literally to make programming easier.
Speed and simplicity has ALWAYS been the goal. It's clear you're new at this, so let me educate you:
The problem is near absolute lack of validation. Unit testing, directional testing, random template testing, none of this is taught in schools and over my 30 years I've been a contractor, I'd say close to 90% of software projects have zero validation or regression infrastructure, compared to 100% of the semiconductor projects I've worked on.
There is less financial risk to shipping buggy code than there is to shipping buggy processors, which is why during my time at Intel, the validation teams were typically FIVE TIMES LARGER than the design and architecture teams combined.
When is the last time you, or any other programmer, spent 5x the effort writing test vectors for your software? How many books are written on validating software, compared to "Programming for Dummies"?
Back in the day, C linters were common in software projects, but slowly started to vanish because programmers became younger and more uneducated: academics don't emphasize validation like companies do, so the professors and grad students had no idea how to pass on these concepts of good programming. You can see this living on whenever you type "make check" after building a repo, it means someone cared enough to keep their code healthy, but this has been a dying art for the past 20 years. (I largely blame the rise of microsoft visual studio & borlad C in the 90's which pretty much ignored the Unix way, and then MS subsidizing college education, which led to the movement away from the Linux/GNU tools.)
I applaud the Node.JS attempt at providing very easy to use unit test suites. Modern web languages have seen a rebirth in test-driven development, and many companies have really smart strategies for keeping their codebase healthy. The strategy of defining the specification first and THEN writing code to pass the tests, instead of writing code first and tests later, is what needs to be done from top to bottom. Not only that, the test database needs to be kept healthy with ticket tracking and revision control
Programming is easy. Validating is hard. That's why so much code is broken: everyone wants to be the hero "hacker" (or architect) and no one wants to do the REAL work of validating and making code robust.