You know how when there are two leading and competing products A and B, and you see the companies that make them playing the switch-trick ? The company that makes product
A guns for
the people using product B and make it super easy for them to
switch to product A ?
When I first came to the US (yes,
I'm not from here), before landline telephone companies had major
migraines like wireless and VOIP to deal with, the leading two
providers, MCI
WorldCom and AT&T used to spend a lot of time and effort poaching
each other's customers. Like me. Aside from the free service for
however long they would give you (from which some of my cannier friends
would profit on a regular basis), one phone company would take care of
the sanity eroding task of canceling your account with the other. No
left-ear-numbing wait for customer service while destroying
a piece of music for all time that you used to enjoy, like Handel's
'The Arrival of the Queen of Sheba'
on infinite repeat, in anticipation of a half-hour interrogation as to
why you wanted to change your account. Usually by someone who was
audibly, emotionally and ceremonially not
the Queen
of Sheba.
Switch to Java ?
So what with most developers in the world programming either in Java or
a .NET language like VisualBasic or C#, it makes me wonder: where are
the clever tools or frameworks or experts to make easy transitions from
one side to the other ? Sure there are tools here and there. Microsoft
made it easy to transition off J++ into one of the other two, but
that's of course not
the same. (yet happily so for that village of developers, because
there was a whole city that did not
fare so well.)
Now you're not telling me that there aren't big companies with
developers some of whom develop in .NET and some of whom develop in
Java. J'accuse !
So don't they ever do lunch, and don't the Visual Basic or C#
developers ever want to dip their toes into our wonderful world of Java
and see what the hoopla is all about ?
If those people do want to see how we Java programmers enjoy ourselves,
they will find some tools to help them. But, and the valiant folks
providing
them I hope will forgive me for saying this, they are few, far
between, not
always terribly up to date, and unsurprisingly, given the titans of
this industry don't support them well, limited in their ambitions.
Suspicions ?
I have several theories as to why this is. One of course is that there
are many other factors that keep developers (and sometimes more
importantly, the budget holders in their workplace) loyal to what they
already know. So the pressure to migrate people backwards and forwards
has to come from the top down; not always an effective strategy with
independent minded developers with choices.
But really I think a lot of the problem is that automating the
migration of applications from one platform to another is a very large
and
difficult task to do well in a general way. First of all the .NET and
Java platforms are very, very broad. There are lots and lots of API
calls that any single application could potentially make. So any kind
of automation has to be ready for any one of them. Second of all, many
applications use bespoke
components that are not necessarily availble to this valiant group
of people out there trying to support such migrations. So as
specialized as these components are to one particular company or
setting, equally specialized are the processes that would enable them
to be migrated. Again, hard to get right for the general case.