Such a misguided article. The Java language has (quite literally) nothing to do with `javac`. In fact, there's a lot of other compilers out there. Taking a Java class should not focus on the intricacies and weirdness of Java compiler command line interfaces. It seems pretty amateurish to argue in favor of it. Case in point: back in high school, I learned C++ using a Borland compiler (and I haven't touched `bcc` in the 15 years since then, even though I've written plenty of C++ in the meantime).
> ... imports and file naming requirements.
These, again, are (compiler) implementation details and should not be part of a generalized Java curriculum.
> And of course, mathematics is the foundation of computer science.
Stuff like this can be misleading and even though not completely wrong (discrete math, logic, metalogic, mathematical logic are sorta' kinda' similar), it's just wrong enough[1] to lead people astray.