All these f*cking java/c#/goony programmers are getting dumber and lazier by the day.
I starting to understand some the dynamics at play that are influencing these changes in attitudes and programming philosophies (which is directly being driven by the business sector for obvious reasons), but I keep getting this feeling that this is a runaway effect (performance is external; hardware can always be upgraded and cost less than development).
Hardware is cheap, but programmers are expensive ... so the obvious solution to getting things "done" is ... cheaper and dumber programmers!
Everyone just wants to program-to-the-standard-library today, and not to ever have to write anything new beyond gluing library calls together.
I quit a consulting gig recently where the boss wanted to do the project in node.js (one of the currently "hot" software platforms).
He refused to do the project in C/C++ because those languages were obviously too hard, and memory-management is impossible to get right, and C/C++ programmers are difficult to find compared to web programmers (node.js is Javascript).
He didn't realize that node.js is actually just like a modern game engine ... Javascript is the scripting language, but whenever it needs to do something fast, the core functionality is written in C/C++. But whatever ... how hard could it be to do an application in Javascript?
I tried, I really tried, but I had to quit when it became clear (to me) that it's almost-impossible (IMHO) to write good, documented, maintainable code in Javascript.
Now one of the big things about node.js is that there's a built-in package manager (called "npm") with tens of thousands of Open Source libraries that exist ... so you're supposed to make constant use of that resource of high-quality code rather than writing you own stuff.
That's supposed to make it quick to write applications ... but gawd help the poor users who get hit by the bugs!
I found it hilarious that a whole bunch of popular node.js applications crashed recently because one programmer had a hissy-fit and removed his libraries from "npm", and the whole stack came crashing down from the lack of one 11-line trivial library package.
http://www.theregister.co.uk/2016/03/23/npm_left_pad_chaos/Computer science needs to start with C/ASM, and then C++.
...
She and I agreed it would be wise for computer science classes to have a class that spends an entire semester teaching you say, C64, or Apple II.
I'd agree with this. Learn the fundamentals first, then you're in a better position to understand WTF the whole of programming is based on, and you'll get a better appreciation for the good bits of modern programming, and a better idea of what the time/complexity/cpu costs are of what you write.
But this pretty-much-contradicts the commercial pressures in education, which is to get folks out-of-the-door with a degree and lots of debt, knowing just-enough to fit into the workplace.
If you can't at least manage C++, stay away from programming.
IMHO C++ has become a dreadful mess.
The language has evolved to the point where it's nearly impossible to look at something and see what it's doing, or supposed-to-do, without a knowledge of how the program is actually built, and what all of those classes/templates actually do.
It's no mistake that the Visual Studio editor has to basically include a C++ compiler built into itself just so that it can understand the code enough to give you hints on what stuff
really means.
I find it completely unsurprising that it was Bjarne Stroustrup himself, the creator of C++, that wrote up the standards-document for software development for the F-35 fighter.
You know ... the F-35 that's very late, and who's radar needs constant rebooting, and that's even when it will actually take off instead of having the system software just shut the jet engine down when it panics (yay for a great example of exception-handling!).