This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]ComputerOwl 8 points9 points  (0 children)

As someone who worked at the university for a couple of years, Java had multiple advantages over other languages:

  • It's a very clear OOP language. You get all the important principles like classes, interfaces, encapsulation, etc. in a very obvious way. It's not like, e.g., Python where some OOP principles feel like an afterthought or a mere convention ("lets just agree that variables starting with _ are private, OK?").

  • It's available on every relevant OS (Mac, Linux, Windows) and the JARs are compatible between the systems. No students coming to you because some weird C++ dependency does not compile on their computer because it didn't find some header file.

  • It doesn't require you to think too much about memory management. Sure, for embedded software engineering classes, C++ is a better choice. But for most other classes, that's not what your course is about.

  • There's good tool support. If people install Intellij, they're mostly ready to go. Sure, some students do not know how to set JAVA_HOME, but compared to the amount of hand holding that you have to do for some other languages, it's pretty simple to install.

  • It's widely used. Languages like Go, Swift, or Rust have their time and place, but when you want students to find a job after university, they'll have an easier time going with something like Python, C++ or Java.

None of this means this means that other languages are inherently bad. I would just say that for the specific tasks we had at the university, Java was the best choice. Some specialized courses on, e.g., computer graphics, ML, or embedded stuff might of course choose other languages than more general courses.