3 ms·
It's partly a question of how you define "knowing something" For one thing, when a language feature doesn't really work out, the user community will notice and
by michaelt 3y ago
It's partly a question of how you define "knowing something"
For one thing, when a language feature doesn't really work out, the user community will notice and it'll disappear from most codebases. If a Java developer with 20 years of experience has never worked with java webstart - is their mastery incomplete?
And even for features that aren't deprecated, almost no jobs will demand every feature a language offers. A veteran Java developer with 20+ years working on high-performance backend server code might not know much about JavaCard, or packaging their code for use on Windows, or the state of the art in making GUIs, or the latest kitchen-sink enterprise framework - is their knowledge incomplete?
Of course, some would say if your definition of "knowing a language" is so demanding that nobody meets it, some might say that's an unrealistic bar....
- Remnant44 3y agoExactly this - The language is big and getting bigger, and so is the standard library. But this is true of almost any popular language! By the metric people are applying to C++ here, there is no one on earth who "knows Java", which is patently ridiculous. A better metric would be "Can write code in that language for some domain".
- tialaramex 3y ago> A better metric would be "Can write code in that language for some domain". Can you though? C++ chooses to sidestep Rice's Theorem with IFNDR (Ill-formed No Diagnostic Required). IFNDR is sprinkled on lots of the ISO Document and what it basically does is, everywhere the language needs semantic constraints for soundness Rice's Theorem would otherwise make it theoretically impossible to write a C++ compiler so they just say well, if you break this semantic constraint you haven't written a C++ program. The compiler won't know, and neither will you, but it's not our fault if your program doesn't work, it was actually never a C++ program anyway. This is a great rhetorical device - if the goal was to win a debate championship this sort of sidestep is very clever. But obviously it's going to produce a vast amount of nonsense, it's terrible engineering practice, and yet for decades people acted like this was OK.