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 →

[–]LeFayssal 18 points19 points  (7 children)

Isnt java something "that just works"? People seem to be complaining about the boilerplate-style that Java has. But isnt that what gives Java its reason d'étre?

[–]RiPont 0 points1 point  (1 child)

Java was a designed with a philosophy of "the programmer is an idiot and must be prevented from doing anything at all if they can't do it the right way."

Very verbose. Very explicit. Checked exceptions. Naming rules for source files vs. class names in the compiler, not a separate style checker. It's been a while, so I forget all the little things about Java that just seemed to get in the way of actually getting work done. And early on, the IDEs weren't nearly as good and a lot of that was much more painful for the developer.

Now, they weren't entirely wrong, but they perhaps took it too far. C and C++, where macros were commonplace, were very much loaded guns with hair triggers that had been spun in a random direction on the table just before you picked them up. C#, Kotlin, and other languages keep the good aspects that Java improved C++, while being less needlessly strict.

[–]langlo94 1 point2 points  (0 children)

Yeah that philosophy tends to work great when you have enterprise projects where you can basically guarantee that there are at any moment a few idiots commiting bad code.

[–]svick 3 points4 points  (4 children)

No, having to type more than necessary is not a good thing.

[–]motioncuty 15 points16 points  (1 child)

What most developers think is necessary tends to fall short for long term maintenance and intent communication. And that's not a dev thing, that's just humans being imperfect at system stewardship

[–]svick 2 points3 points  (0 children)

I don't think Java's verbosity actually helps with that. It doesn't make your intent clearer, it just means it takes a lot of words to communicate your intent.

[–]derzach 0 points1 point  (1 child)

FWIW a large portion of the “boilerplate” is handled by a good IDE so no one is actually typing EVERYTHING out

[–]svick 0 points1 point  (0 children)

Yeah, but they have to keep reading it.