The biggest problem with Java is baggage, of two main varieties. The first type is in backward compatibility. This includes maintaining the CORBA API, as well as the hideous Date/Calendar stuff. I shudder at the thought of mutability in some of this, the API effectively states that you can change May 5th to become September 22nd; obviously that isn't how the real world works, May 5th always has been and always will continue to be May 5th, just as 2 can never be changed to become 3.
There's a lot of inconsistencies and design patterns that have since been superseded but have to be maintained in the libraries for backward compatibility. In a private project these would be rapidly deprecated and re-factored as code debt, this isn't an option for the Java APIs. The second type of baggage is in the headspace of developers. Many Java devs got taught how to use the language at university, then promptly stopped learning once they entered a 9-5 job. This means that there are an awful lot of people who plain resist change, and just can't conceive that there may be a better way to solve some of their programming problems. These are the folk who think that other languages are about little more than syntax and can't fathom what all the fuss is over closures and functional programming. These people will continue to hold java back *even if it gains the new API and features that people are clamoring for* .NET doesn't have these issues because: - It's a newer platform and didn't have to maintain compatibility with some of Java's older and more glaring API flaws - Microsoft were more willing to make breaking changes to the API in early days, so as to make genuine improvements and grab mindshare amongst the more passionate and influential developers - They continue to be willing to add proven new techniques and patterns to the platform and C# language. Such as dynamic lang support, FP constructs via LINQ, sensible property handlers, delegates (method handles), closures, etc. Java prevaricates over all of these. - Many .net developers are less resistant to change, because of the above points. It's a shame really, because Java has a faster and more widely available VM, and alternate languages running on it can safely drop some of the unwanted legacy API. What Java needs is to transition into a platform, with selective improvements to the VM to support non-Java languages: tail-call optimisation, value types and method handles are the most obvious three here. As a language I truly feel that Java has already become the next COBOL, it's gone too far now to be able to revitalise itself, but as a platform it's mindbogglingly amazing and a worthy competitor to .NET. On 3 May 2010 15:02, Reinier Zwitserloot <[email protected]> wrote: > Heh, yeah. It's simple, really - as long as people put in the effort > and emotion for java to become a better language, they at least seem > to think that java is worth improving. Those who think it is beyond > salvation would obviously be using something else. > > On May 3, 12:09 am, Wildam Martin <[email protected]> wrote: > > On Fri, Apr 30, 2010 at 23:45, Rakesh <[email protected]> > wrote: > > > Also, I DON'T consider the use of getters/setters as something > > > troubling - I have far more important issues to deal with! > > > > I don't remember who it was in an older episode - maybe Dick - who > > said: Java developers are always whining while .NET developers for > > example in general seem to be more satisfied. > > > > My observation is that by tendency (not by rule!) there are more Java > > developers around who already have been a very long time in the > > software development business. > > > > I think this could be a reason that a lot of "philosophical" thoughts > > and a lot of innovative thoughts come from those. From the languages I > > worked with so far, Java is one of my very favorites. So despite > > things you want to get improved, keep in mind, that Java is already a > > very "nice" language. :-) > > -- > > Martin Wildam > > > > -- > > You received this message because you are subscribed to the Google Groups > "The Java Posse" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > [email protected]<javaposse%[email protected]> > . > > For more options, visit this group athttp:// > groups.google.com/group/javaposse?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "The Java Posse" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<javaposse%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/javaposse?hl=en. > > -- Kevin Wright mail/google talk: [email protected] wave: [email protected] skype: kev.lee.wright twitter: @thecoda -- You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.
