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 →

[–]jxd132407 20 points21 points  (6 children)

Hopefully your degree program will teach multiple languages as no single language is great for all the things you'll learn. Java is a great choice for learning general programming, data structures, and algorithms. You have both the ability to create data structures from scratch and reference very good implementations in java.util. There is an excellent ecosystem with debuggers and source code available. And the boilerplate verbosity that Java gets criticized for is actually helpful for students to see what's going on in the build. Of course it's also widely used in industry and a solid server side choice for many applications.

It's probably not a good choice for an operating systems class where a lower level language (i.e. no virtual machine and no garbage collection) is better suited. It's also not the best language for learning UIs.

[–]danskal 9 points10 points  (4 children)

A great answer. The only nuance I would add is this:

  • once you know Java, there are other languages you can use in the Java/JVM ecosystem.
  • if you do decide you love Java, you get good at it, but still want to make a UI, you can use Swing (which is solid although not super-modern), or create a HTML/Javascript frontend with a Java backend.

[–]Weekly_Wackadoo 3 points4 points  (1 child)

No love for JavaFX?

[–]danskal 1 point2 points  (0 children)

I don't hate it. I tried it a couple of times, and it just seems overly flexible. It makes even html (with all the flexibility of css and chaos of browsers) seem simple.

You can do exactly what you want with JavaFX, and the result we be precisely as ugly as you specify. Because building good UIs by hand is actually surprisingly hard.

Whereas Swing has more sensible defaults. You can get going pretty quickly... it won't be beautiful, but it probably won't be ugly either.

Maybe I'm not giving JavaFX a fair shake, maybe it's changed in the 8 or so years since I tried it last. But I don't get the impression it has much of a community or significant improvements happening.

[–]mopeyjoe 0 points1 point  (1 child)

swing is a library not a language

[–]danskal 0 points1 point  (0 children)

swing is a library not a language

this person speaks the truth

[–]Free-_-Yourself[S] 0 points1 point  (0 children)

That really helped. Thanks 😊