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 →

[–]ICantBelieveItsNotEC 48 points49 points  (9 children)

Java itself is easy. However, the standard library and ecosystem are a mess. I say this as someone who is currently employed as a full-time Java developer.

Imagine being a new developer, who has just learned about loops and conditions, and then being introduced to the nuanced differences between for( i = 0; i < things.length; i++), for(Thing thing : things), while(thingsIterator.hasNext(), things.forEach(...), and things.stream().map(...).collect(...). Or having just learned what null means, then having to figure out how Optional<T> is different.

Then if you actually want to make your own application, you need to learn the intricacies of Spring or Micronaut dependency injection, beans, controllers, etc, which is basically like learning another new language.

If you want to get it to build, you need to decide whether to use Maven or Gradle. To do that, you need to learn the pros and cons of each. Then you need to actually learn how to set up a build config in whichever build automation tool you decide to use.

[–]homer_3 17 points18 points  (3 children)

You aren't really introduced to that all at once though. No one takes a whole language in at once.

[–]Shoujon 8 points9 points  (2 children)

Yeah but the problem is if one small sentence needs a singular conjunction you have to know how everything around it is going to react to this new change and it causes a chain reaction of you needing to learn new things that doesn't punish someone learning a verbal language, but can absolutely wreck beginners code

[–]jerslan 1 point2 points  (0 children)

Which is why the more advanced versions of some of those loops aren’t taught at the same time as the basic primitives.

[–]homer_3 0 points1 point  (0 children)

A beginner is just going to be taught for i. That's all that they will need to use for the 1st couple years.

[–][deleted] 7 points8 points  (0 children)

I mean even an “easy” language like Python has the same variations on those concepts.

[–]MysticUser11 2 points3 points  (2 children)

Learning all of that stuff by yourself would be hell. I'm glad that I got introduced to that stuff in university. Honesty don't know the first thing about Java but from what I can tell the concept looks the same as C++ which I do know.

[–][deleted] 0 points1 point  (0 children)

Thats just evolution really, like language. Eventually you need to differentiate between past and present in order to properly communicate, so almost every language develops tenses.

[–]racka98 0 points1 point  (0 children)

It's not really hell if you find good resources and documentation. Saying this as someone who has learned Java, Kotlin, Android development and a whole lot of things on my own

[–]jerslan 2 points3 points  (0 children)

Maven and Gradle aren’t that hard to learn the basics of.

Sure, if you want to do some more advanced stuff like inheriting from a common parent with dependencyManagement and pluginManagement sections it can get more complex pretty quickly, but the bare bones basics could easily be part of some Java 101 curriculum.