31 August 2019

C Is a Passing Grade

Generally, Bob Rudis's posts (the ones that show up on r-bloggers, anyway) are useful to read. This one, OTOH IMHO, didn't even hit the dartboard, much less the bull's eye. That it continues the 'get off my lawn' meme of the geezer crowd is what appeals and compels this missive.

The lament, especially among the ever decreasing number of assembly coding geezers, is that 'these kids don't know anything!' Which, considering how easily gulled in their political decision making they've shown, is obvious.
Prior to this, most of the assignments were just variations on each other (read from stdin, loop with conditionals, print output) with no program going over 100 LoC (that includes comments and spacing).

OTOH, using FizzBuzz and R to demonstrate that a 14 day C++ course leaves the student unprepared to code professionally is a tautology, is kind of silly. R is hardly the archetype of language architecture rectitude.

1) as a low level language (it's not, absent many libraries, high level), those are the things one needs to know from the get go; and the notion that code blocks are short on purpose is definitely part of today's modular approach.

2) the topics described in the post are dog standard 101 fare in any low level language; it's worth remembering that C/C++ is 'the universal assembler' and the notion the students would get much more than that in 14 days is silly.

3) not getting to OO semantics and syntax in 14 days should not surprise; C++ is not an OO language by design any more than R is; Bjarne called it "C with Classes" and C++ remains the same.

4) virtually no kiddie koder gets a job (as programmer or scientist) writing C/C++; those days ended more than a decade ago with the rise of the innterTubes and PHP/java/python/etc. Web Frameworks. They're more likely, if sucked up by Corporate IT, slipped in with the Indians maintaining 30 year old COBOL applications. I'm not kidding.

5) thus, kiddie koders (and a lot of re-purposed geezer mainframe assembly cowboys) will never write a line of semantic C/C++; or even PHP/java/python/etc.

6) if one simply looks at titular coder adverts, not only are base languages seldom demanded, but some specific Web Framework is the demand; and file dump oriented SQL ('we prefer to do transactions in the client').

7) using R as the platform to complain that kids can't code any more is hubris in the extreme, since there isn't a much more platypus language on the planet (modulo hundreds of home grown 'high level' proprietary languages, often with home grown OS).

So, yes kids don't know nuthin no more. But so much of coding these days is driven by teen age 'entrepreneurs' who only want to get rich with the next whiz bang innterTubes money spinner, marginally useful, and not fatally buggy, next week. Almost all fail. But that's always been true. The difference is that the VC community has been valuing slick tongued teen agers, since at least when The Zuck crawled out of the muck under the Charles, over wizened veterans.

It would be of interest to see what a 14 day syllabus for FizzBuzz worthy C++ (and fluent C++ semantics) would look like. If one undertakes to teach some language in 14 days, only z assembler is a dumber choice than C++. Teach 'em javascript or python or the flavor-of-the-week Web Framework. Or, in a pinch for the engineer types, FORTRAN.

No comments: