Assembly language also lacks a ton of stuff. The point is, you build it if you want it. That's what makes you a good programmer.
I haven't needed any of the items you state as shortcomings of Java, but if I did, it really wouldn't be hard to add them in a preprocessing step.
Not one of the items you state really makes Java verbose. The real reason some 'enterprisey' java is verbose is because people use endless patterns, factories everywhere, separate implementation from interfaces for the sake of it, etc.
Which is why people rarely program in assembly language any more.
> The point is, you build it if you want it. That's what makes you a good programmer.
Sure, but working around the issues I mentioned would require altering the syntax of the language, or preferably constructing a new language from scratch. But I wouldn't count that as programming in Java.
> I haven't needed any of the items you state as shortcomings of Java
People rarely do until they have experience of using them; it's the blub paradox. If you take a look at the code of a seasoned Lisp or Haskell programmer, then you'll note that a large proportion of their code includes syntax structures that cannot be replicated in Java.
> But if I did, it really wouldn't be hard to add them in a preprocessing step.
Fixing Java's type system as a preprocessing step is not going to be very easy, I'm afraid!
Assembly language also lacks a ton of stuff. The point is, you build it if you want it. That's what makes you a good programmer.
I haven't needed any of the items you state as shortcomings of Java, but if I did, it really wouldn't be hard to add them in a preprocessing step.
Not one of the items you state really makes Java verbose. The real reason some 'enterprisey' java is verbose is because people use endless patterns, factories everywhere, separate implementation from interfaces for the sake of it, etc.