3 ms·
I don't that find Java as a language has fewer idiosyncrasies (perfect term btw). For example, the many modifiers: public, private, "package-private", protected
by oftenwrong 5y ago
I don't that find Java as a language has fewer idiosyncrasies (perfect term btw). For example, the many modifiers: public, private, "package-private", protected, default, abstract, static, final, volatile, synchronized, etc. How much of that is relevant to a fledgling programmer?
If you extend your consideration to build systems and other tooling, it's easy to see that students have a lot to overcome with Java as an intro language.
I think purpose-built languages like the HtDP languages or Logo are better choices. Students can get started with zero faff, learn the essential concepts, and move on.
Java is a fine choice for higher level courses, with students that are already capable programmers.
- jariel 5y agoI don't think concepts such as public/private/abstract are idiosyncratic because scoping and non-instantiable entities are common in programming. Yes - 'Logo' is a good choice for the most entry-level users, maybe for high schoolers who are taking CS as a 'required' part of the curriculum, but anything beyond that Java is fine. I think Generics, Java9++ 'Modules', jar files and class files might be the idiosyncrasies to worry about. That said, it's weird that in 2021 we don't have a universally 'basic' programming language that is essentially the 'vanilla' of programming. Somewhere inside JS/Python/TS/Java/Dart I think is that 'basic vanilla' imperative language I think.