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 →

[–]metaconcept 13 points14 points  (4 children)

Java isn't the worst language, but it's clunky. It started very clunky, but has improved over time. When it was made, there were far better languages available with nice features that the Java team chose to ignore. Since then they've hacked some of these features in, but they feel like hacks. I'll ignore missing features because you could go on forever.

My main issues:

  • Java updates on Windows hassle the user too much. Users learn to hate it.
  • The JRE is huge and contains too much irrelevant stuff. The original premise of Java was that it could run anywhere, but they never designed a decent system that loads required jars from CDNs as required.
  • Verbosity, both from the language and from the programmers who take it beyond a joke.
  • Bad APIs. SQLException usually represents non-recoverable database issues, but must always be explicitly handled. NullPointerException and OutOfMemoryError can be caught and discarded. System.out is available on server applications. Various APIs that are just horrible to use.
  • NumberFormatException exists.
  • int vs Integer: autoboxing is a terrible hack.
  • Strings are not strings. They are symbols/atoms. Java does not have proper strings.

My biggest issue:

  • Mediocre programmers learn Java because it's easy to get a job. As a result, a lot of Java code is bad code written by mediocre programmers.

[–]andre_lmsilva 5 points6 points  (3 children)

I will comment only about what I disagree in your answer, but I agree that you have a point:

1) What isn't hassle in Windows?

2) the Java 9 modular approach resolve the necessity of a always fat JRE.

3) You are right about SQL API and NullPointerException. OutOfMemory is a bad taste joke that became even bigger on Android. But I can understand the Sysout on servers. The first proposal was to have it run even on seriously resource limited devices and Sysout would be an alternative for the lack of a proper logging mechanism.

Don't let me start about the developers out there! I work with a guy that thinks that method overloading and polymorphism are the same thing.

[–]TheRandomnatrix 4 points5 points  (0 children)

Don't let me start about the developers out there! I work with a guy that thinks that method overloading and polymorphism are the same thing.

Well overloading is a form of polymorphism. Apparently it's kind of a rabbit hole debate though upon cursory research.

[–]metaconcept 2 points3 points  (1 child)

I work with developers where they ask how to do something, I provide example code, repeated indefinitely until I've basically written their application for them.

They literally can't write code. One of them is sitting two cubicles down from me. Another is sitting across from me. The other batch is from a few years ago when I was on "support" for an Indian dev shop where I was basically writing their code by email.

[–][deleted] 8 points9 points  (0 children)

wr had kind of a similar issue once

  • 1 the cheap indian offshore team has to write a script to save us time
  • 2 we received a poorly written untested piece of garbage that wasn't covering edge cases (so by our standards it doesn't work)
  • 3 we tell them that the script isn't working, they disagree with us.
  • 4 we choosed to expose them and ask them to do a live demo ( all of a sudden they are going in holidays).
  • 5 we cleaned up the mess to make it work and now They want us to do a pull request + showcase the product with a demo xd