Re: My Migrations

I didn't/don't want to get into things I consider axiomatic.

But Pete expresses my own beliefs perfectly in this reply.


"Pete Dashwood" <dashwood@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message

"tlmfru" <lacey@xxxxxxx> wrote in message

Lee Unterreiner <lee@xxxxxxxxxxxxxxxxx> wrote in message
Fellow Dinosuars:

It's been a while.

I've been coding in C# for the last six years and I must admit I have
swallowed all of the OO Kool-Aid.

Note: (When I say 'I', I really mean 'We'. My friend and co-developer
Rick Hardman. When I use 'we' I'm referring to y'all).

I used to say all my dreams were in COBOL. Now I have a new dream that
in this group may share.

In this dream I work for a company called "MyMigrations". Their mission
to move EVERYONE to .Net. Their product is called "MyMigrator". It is
migrations like MySql is to databases.

MyMigrator sucks in a client's entire software inventory: code, data,
schemas, procs, screens, jcl, etc., etc..
It reads from any IBM, any UNIX, any HP, any Windows, but only one
platform: .Net.
Development and deployment platform based on SOA and Smart Client
architectures using WCF and Framework 3.5
All data converted to SQL Server. All screens or Accept/Display
to Winforms
All source languages (all dialects) are translated to C#. The generated
code is indistinguishable from the code you or I would write.

Oooooh, ambitious! Noble, too. But I don't think one person's lifetime
sufficient to convert EVERYTHING.

You got that right...:-) So maybe more than one person is needed?

You must have some starting point. (F'r
instance, the Prime computers are long since gone, but there is a
considerable inventory of the Prime InfoBasic programs running all over
place: I know of seven such sites in Winnipeg alone. They all run in an
emulated environment on bread-and-butter Unix or Windows systems. Bet
hadn't considered them!).

More to the point: all the target facilities are Microsoft products (I
think - correct me if I'm wrong). Is it really a good diea to convert
the world to a proprietary product?


Particularly Microsoft!


For all the
virtues of their products, they owe their dominance to superior marketing
and the bandwagon effect, rather than to technical superioirty.

I'd dispute that. We used to say the same about IBM in the old days. In
this part of the world it's called "tall poppy syndrome", but it is based
on envy rather than a dispassionate evaluation.

The fact is that MicroSoft DID have some bad products and they still have
some poor products, but .NET is NOT one of those. And the difference is
that when you have the resources they have, you can get the best people
and improve the poor products. Anders Hejlsberg was bought from Borland to
provide C#, for example. I don't think he has ever regretted moving to
MicroSoft. Now he gets to do things he could only dream about before. He
has the resources he needs to implement dreams and we are all better off
because of it. He is not the only one, I'm just citing him as an example.

My own experience with MS products has been one of consistent improvement.
Vista has faults (most of them were enforced onto MS by pressure groups)
but they are being addressed, and Windows 7 will be better. (If it isn't
then I'll exercise an option and move to LAMP. Note that the fact that
MicroSoft is a monopoly does not preclude me doing that...). Meantime, XP
with SP3 is the first OS I have had on a PC that I am totally happy with.
It has never crashed or BSODed and it does what I expect of it.

This is not to say that there is anything wrong with Linux or Unix or
other non-MS OSes either. It is just that being anti MS because they are
big, or a monopoly, is, well, stupid...

.NET was/is a fantastic concept and the implementation of it has borne out
the promise. Until you actually work with it you can't really understand
why it is important. It is a truly level playing field that allows all OO
languages to interact seamlessly...even COBOL. Apart from that it provides
programmers with many thousands of easy-to-use functions and components.
However, people who can't even see the importance of Object Orientation
are unlikely to recognize the value of such a platform. The fact that the
non-MS camp has produced an equivalent in Mono should indicate that the
concept is important. (Mono, BTW, is an excellent implementation. However
it doesn't yet have InterOP services (so COBOL can't play on it, unless it
is COBOL for .NET) or LINQ and will lag behind .NET until it does.)

C# can run on either platform (or both). It is something that has been
talked about for decades and never satisfactorily implemented, until now.

I get a bit tired of people slagging off MS when they don't really
understand or use their most significant technical products. I really
don't care about their applications like Office; if you prefer Open
Office, go for it. I use MS Office 2003 and will probably move to Office
2007 at some point. It is easy to go with the flow, when it comes to
applications. When it comes to technical development, it is a different

MicroSoft provides a bunch of languages that integrate to .NET, an IDE
that is second to none (Visual Studio), has encouraged MILLIONS of young
people to get into programming and provided free support, tutorials, and
forums for them, and they have made it all available for FREE.

Did your COBOL vendor ever do that? Even IBM at the height of their power
never gave anyting away.

Yet, is "only because they want to market .NET". Wanna know a secret?
.NET would have gained acceptance whether they provided languages and an
IDE for it, for free, or not. Having a language independent framework is
just too important for developers to not use it. Developers would pay for
the products (and do, to get full and comprehensive functionality).
Nevertheless, I don't deny that giving people the chance to program for
it, and making it really easy to do so, has helped promote it. So they
made a good business decision, but we all benefit from it.

It doesn't matter what they do, in some quarters they will always be

If they join or support a standards body it is because they are "seeking
to manipulate it". Nobody ever seems to give them any credit for having
any integrity. Rather than being thankful, or even acknowledging that they
have done much to bring computer programming to the masses, we get people
just bashing them because they are MicroSoft.

Bottom line: .NET and C# are the RIGHT choice for Lee's Migration target.
At least for the foreseeable future.

And I DO
believe there have been problems reported with at least some of their
products. I don't need to spell out all the disadvantages of a monopoly.

You do for me... Have you considered the advantages of a monopoly? Sure
we all like to have a choice, but a monopoly doesn't necessarily preclude
that. Rather than just wave the banner of "Everybody knows..." why not sit
down and look at some of the benefits that can be provided by a monopoly?
I was taught that a benevolent dictatorship is the most efficient form of
government. I still don't want to live in one. But I won't argue against
it on the grounds that "Everybody knows dictatorships are bad."

It is the final resort when arguing against MS... "Well, it's a
monopoly...we don't need to spell out how bad that is..."

Nothing lasts forever. C# and .NET will someday be superceded. Not that
that matters - presumably Microsoft will provide migration tools - but
IF the next best paradigm comes from IBM or Univac or even from some
that doesn't exist yet?

And WHAT IF people had bought Betamax instead of VHS? Ever wondered why
they didn't? We don't always get the products and services that we want.
We invariably get the ones we deserve. (It's a bit like Governments in a
Democracy, really...)

Would it be possible to make it a two-step conversion: first step creates
agnostic, platform-independent, language-independent "specification"
second step would convert that to C#/.NET etc.

That's not a bad suggestion. It is rooted in the Waterfall and specifying
stuff before you build it. In this case you have options when it comes to
build. But it is a lot of work, and it is a rigid process that is not
responsive to change. Development will be at least three times as long as
if you DON'T do this.

What would the alternative be? Build for .NET and C# and simply evolve the
tools by iteration and interaction with users. Use components and you can
rearrange them at the drop of a hat. Flexible and fast.

You no longer have alternative build options and are committed to a single
platform. But what exactly did having that option buy you? Just a choice.
It slowed down your development and it bogged you into changing specs
every time you amend something and all the concomitant regression testing
and such that goes with it. Just so you have an option that you MIGHT
exercise in the future. Not for me. I'll commit to .NET and if it gets
superseded, I'll cross that bridge when I come to it.

If it's possible, as you
seem to have assumed or proved, that every facility in every language
environment on every systyem can be converted to C# etc., then it's
possible to create a set of specs that could be used in any language
environment to create the necessary programs & forms, etc.

But why would you do that? We know the Waterfall simply doesn't work. (OK,
I'll withdraw "we" and substitute "some of us"... :-))This comes down to
an Agile, RAD, iterative, interactive, evolving approach versus a
traditional Waterfall one. It's a no-contest.

That way you
aren't tied to a particular platform and are at least relatively immune
paradigm shifts. Maintenance of the specification members, for
& upgrades, would then be the same as for any other language.

And twice the work it needs to be. :-)

"I used to write I can do anything."