4 ms·
I think Java is a fine first language - it has a strongly typed, static runtime with good cross platform support, and stellar backwards compatibility (meaning t
by kaba0 4y ago
I think Java is a fine first language - it has a strongly typed, static runtime with good cross platform support, and stellar backwards compatibility (meaning that you can use decade old code samples as well).
The often touted alternative starting language is C and python, and I believe Java is better than both — C’s mentioned advantage is “learning low level details”, but I don’t see it as necessary, plus C can fail at runtime (or worse, at *some runtime on someone else’s machine) in completely cryptic ways, you may not even realize your program is incorrect until you submit an assignment. I have seen even very smart students be puzzled by it. Also, pointers can be learned afterwards easily, I don’t see it problematic at all.
Python’s problem comes mostly from its dynamically typed nature, it is very hard for new programmers to reason about the runtime state of programs, and why might have it failed on the nth cycle of this loop.
Java is a great in-between. It is not perfect (for example arrays having special syntax is not ideal), but not bad and it being an industry language is just a plus.