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.

Reply via email to