3 ms·
I think the opposite actually. Python, JS and C/c++ are full of idiosyncrasies. Java allows students to quickly get up and running and focus on the 'CS'. Tha
by jariel 5y ago
I think the opposite actually.
Python, JS and C/c++ are full of idiosyncrasies.
Java allows students to quickly get up and running and focus on the 'CS'.
That said, Python might be more practical for anything applied in school.
- oftenwrong 5y agoI 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.