3 ms·
Funny how, in computing, every new idea is almost always a reiteration of an old one. One of the arguments for John Backus to create Fortran was to allow non-p
by diego_moita 9y ago
Funny how, in computing, every new idea is almost always a reiteration of an old one.
One of the arguments for John Backus to create Fortran was to allow non-programmers (of Assembly language) to program. In some sense he succeeded, it allowed a lot of scientists unwilling to understand registers, stack and heaps to program computers. Then Grace Hopper did the same with Cobol for business people. In the end they didn't extinguish the job of a programmer, they just enabled people that thought in higher levels of abstraction to program computers.
This is what Wordpress/Joomla did for HTML coders, what super-optimized C and C++ compilers did for machine-level coding, what Sharepoint is doing for intranet builders, etc. We are constantly moving to higher levels of abstraction and solving more problems but it only increases the need for people skilled with basic notions of programming.
- hoopladler 9y agoTuring reportedly believed that programming would require “a great number of mathematicians of ability”. I think if you want to find a trend in computing, it's the same as the progression in other industries. Tooling replaces raw ability, technique replaces skill, and jobs requiring skills are slowly replaced by jobs that don't require skills. Consider Go, for instance. There's no doubt that the opinionated, overly-controlling compiler, absolute minimalism, and conventional structure of the language is designed so that a mediocre programmer can produce passable code. A good programmer doesn't really need gofmt, or a compiler that tells them off for not properly commenting their code. Good programmers don't tend to abuse generics or lambdas or all the other things Go doesn't have. So what it does, compared to C++, or even Java, is allows you to employ less experienced, less skilled programmers, and equally, to expect them to actually be productive, and not to produce morasses of unreadable gibberish. Don't get me wrong - I like Go. But if C was the only language in town, there's no doubt you'd need more programmers, they'd have to be better trained, and their job security and compensation would be better.
- anonacct37 9y ago> designed so that a mediocre programmer can produce passable code That's a little unfair, if accurate. Even the best of us are mediocre programmers when fixing a bug in the middle of the night or diving into a new code base. You might as well say (and some do) that Haskell is for mediocre programmers because good programmers don't make type mistakes. > a compiler that tells them off for not properly commenting their code Are you still talking about go and if so would you mind sending a link because as someone who has written it professionally since pre-go1.0 and contributed multiple changes to the go repo I haven't the faintest idea what you are talking about.
- hoopladler 9y agoI'm actually kind of embarassed by how innacurate my post was, but I can't edit it with corrections.
- solipsism 9y agoGo has lambdas. Go's lack of generics isn't in order to cater to mediocre programmers. Go doesn't force you to comment. Are you thinking about the right language?
- hoopladler 9y agoNo, I'm just confused. I used lambda when I meant ternary operator.
- hinkley 9y agoBertrand Meyer suggested you could split most code into decisions and actions and that makes the code more maintainable. My own experiences seem to support this. Machine learning only (partly) addresses one of those categories. There’s still plenty of work to do even if AI decision making is less buggy than human code.