Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I disagree. No matter how knowledgeable the user, they are constrained by the capability of their tools. An expert logger with a flint axe isn't going to be able to fell them as quickly as he would with a chainsaw.

Java is an extremely primitive and restrictive language, lacking a great deal of functionality that is used extensively in other languages. No matter how good a developer you are, there are fundamental limitations in a language like Java that can't be easily circumvented.



Utter BS.

So now you've gone from "Java source code is 10 times the length of Ruby", to "Java is primitive and restrictive"?

This is the sort of idiotic baseless language bashing that is such a waste of time.


Java source code is especially verbose because Java has a very primitive and restrictive syntax.

This shouldn't be news to anyone. Java lacks macros, type inference, and currying. It lacks a concise mechanism for lambda forms, and variables in closures have to be made final. There is no way to delay evaluation of an expression, save through the default control structures. The generic typing system does not persist to runtime, and it does not support covariant or contravariant types. There is no multiple inheritance supported, nor any mechanism for mixins. Interfaces cannot be applied to classes after they are defined. Types are nullable by default, which is a remarkably dumb idea for a static language. Functions cannot exist outside a class, and the syntax is littered with redundant keywords like 'new'.

Should I continue?

Java's shortcomings are many and well known. Calling Java "primitive and restrictive" is not baseless language bashing; it's an observation of the design decisions made by the developers of the Java language.


More irrelevant stuff. Continue if you enjoy it.

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.


> Assembly language also lacks a ton of stuff.

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!


I think you are making my point rather better than I ever could.


What exactly is your point? I know axod believes that the choice of programming language does not matter as much as I think it does, but what's your opinion on the discussion?


Don't get me wrong, I believe language choice matters a ton when it really matters - maybe you need specific libraries, maybe speed/memory concerns, etc. I just don't believe the actual syntax (Which is pretty much the only difference between language source code) matters much.


Yes, sorry; let me rephrase that. I believe the syntax of a programming language matters a great deal, and has a significant impact on code length, quality and flexibility. axod disagrees on this point.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: