Linked by R_T_F_M on Thu 13th Sep 2012 21:19 UTC
Thread beginning with comment 535173
To view parent comment, click here.
To read all comments associated with this story, please click here.
To view parent comment, click here.
To read all comments associated with this story, please click here.
Java as a platform needed to suffer a dramatic loss of developer mind-share before its developers finally relented, compromised the language's elegant OO design and grudgingly started to add support for a lot of features that C++ (and Python and Ada and C#) have had forever. We had to wait way to long for generics, and absurdly long for RAII.
Funny, because here in Germany I get called every single week for new Java projects. My employer has lots of Java projects proposals without enough developers to take care of them all.
That does not look like loss of mind-share to me.
Now I agree with you that generics in Java suck, and I also don't like the way the language is going with the annotation overload that it is getting (@override, @value, ...).
For me, Java is just another tool. The language I use, always depends on the project requirements, and is usually already decided by the customer.
Funny, because here in Germany I get called every single week for new Java projects. My employer has lots of Java projects proposals without enough developers to take care of them all.
That does not look like loss of mind-share to me.
That does not look like loss of mind-share to me.
I admit that I have no solid empiracal measure of language usage or user-base growth, but I have the strong impression that Java as a general-purpose desktop application language is dieing. It isn't being shipped on new Windows machines anymore, new software projects aren't using Java, the language is fading away. It certainly still has its users -- I've written an internal-use web service in JSP, and it's Android's native language, after all -- but I think it's days as a general-use language are pretty much over.
Now I agree with you that generics in Java suck, and I also don't like the way the language is going with the annotation overload that it is getting (@override, @value, ...).
For me, Java is just another tool. The language I use, always depends on the project requirements, and is usually already decided by the customer.
For me, Java is just another tool. The language I use, always depends on the project requirements, and is usually already decided by the customer.
I never said that generics in Java sucked! I'm glad they finally got them, long overdue as they where. Given how much more type-safe generics make abstract container classes, I was saying that it was a crying shame that it took Sun so long to break down and add generics into the language!
To me, that's the story of the growth of Java. They looked at C++ and said "there's gotta be a simpler way to build a language." (And for my money, they're right on that.) So they stripped out a lot of the most confusing features and worst design decisions, and Java was what they where left with. But they took out to much; things like generics, while ugly from a type-flexible pure OOP perspective, end up being net benefits for the language. And they where too slow to add those features back into Java. So you're left with an under-expressive language that's missing features that older languages have had since before Java existed.
I mean, Java finally gets what amount to a Python with-block in Java 7, in 2012? Why the hell did it take that long? And why is the RAII block that we finally do get merged with try-catch blocks? What would've been so bad about introducing a with block?





Member since:
2009-02-19
Not exactly. Yes, C++ developed slowly. Yes, early compilers supported different sub-sets of it, so yes, different developers make wildly different uses of the language even today. And yes, C++ as a language has its own set of flaws, some of them quite severe. But the generic containers in the C++ standard library have been (comparatively-)type-safe templates for forever, and C++ has been multi-paradigm for most of its history. Java as a platform needed to suffer a dramatic loss of developer mind-share before its developers finally relented, compromised the language's elegant OO design and grudgingly started to add support for a lot of features that C++ (and Python and Ada and C#) have had forever. We had to wait way to long for generics, and absurdly long for RAII.