Super Fan said:
No, what I mean is that the average age of .net programmers is like 50.
Prone to exaggeration are we?
Which makes me think that all the younger programmers use java,
Probably because Java is now the baseline programming
language for most academic courses and programs (unless you
go to MIT and get started with Scheme...). Java has been
around longer to be accepted by the academic community and
they also like it because it is supported by multiple
vendors.
So most fresh (and usually young) graduates will know Java
"best" when they look for a job.
Now from an employer's perspective: who will they put onto
those "new" .NET projects?
- if they already are a Microsoft shop they will look for
someone with .NET experience (who wouldn't be "freshly
graduated")- if they don't want to wait that long they will
train their own proven individuals (i.e. "not freshly
graduated").
- even an diversifying J2EE shop would not use new ("Java")
graduates on a .NET project. They either hire someone with
..NET experience or rely on their on "proven assets" to come
up to speed with "yet another platform" quickly.
Someone who has survived this profession for an extensive
period of time AND survived through continuous adaptation to
the ever changing technology can probably pick up "yet
another platform" more quickly than your average "fresh
graduate" who is still struggling to wrap their head around
their first major platform.
If you want to be cynical about it, you could say that
younger programmers are using Java because it is older (some
prefer the term "mature").
and .net is just a way for old COM c++ programmers to do java.
Hardly. A background in COM would only give you an advantage
in a very narrow aspect of .NET (i.e. Interop and maybe
Enterprise Services). I'd say, in general, the learning
curve for .NET and J2EE is equally steep. Now an
organization that is heavily invested in COM technology and
components would be more likely to move to .NET to preserve
its investment for awhile - so people working in these
organizations ("not fresh graduates") would have a COM/C/VB
background and they will end up doing .NET rather than
Java/J2EE.
Now if there is a business reason to abandon COM and move to
J2EE then those COM/C/VB people will end up using Java.
Many "Agile Alliance" authors that now publish books with
..NET content have used Java in the past. They don't
necessarily prefer one over the other - its just a different
development environment. In fact, some of them still state
that they would have rather stuck with Smalltalk - it was
just too difficult to convince the customers that Smalltalk
could do the job. At the time, while Java was far from
perfect, it had the best commercial and mainstream support
so they switched to it - now some of them are adopting .NET
- probably not exclusively
Don't try to judge any technology based on its perceived
user base.
'Any fool can write code that a computer can understand.
Good programmers write code that humans can understand.'
Martin Fowler,
'Refactoring: improving the design of existing code', p.15