H
Herfried K. Wagner [MVP]
Ray,
When the code is perfectly working and there are very few changes made to
the code because it is stable, a rewrite won't bring a benefit. Rewriting
code will bring back the project to a lower level in the beginning, and
increasing its quality will require testing, reviews, documentation, ... In
the end all you have got by migration are high costs but no
functional/technical improvement. Imagine that you could have spent the
time you used for migration (reimplementation, testing, QA, ...) for
implementing other features.
That's not a problem when the code works. There is no need for a change.
For the user it doesn't matter /how/ feature X is implement, but it matters
that it works. Every change of something that works will hold the risk of
adding bugs.
The whole discussion is not about "Is Classic VB better than VB.NET or vice
versa". You could do pretty everything that is possible with .NET in VB6,
even if it was not supported in the unified way it is now supported by the
..NET Framework.
I doubt that COM will go away that fast. Windows and many other Microsoft
applications heavily rely on code. Even Microsoft doesn't have enough money
to rewrite working code only to be able to put a "Made with .NET" sticker
onto the product box. Users won't pay more for a Windows or Office package
only because it's implemented in .NET.
The petition is asking for an upgrade path. The signatories believe that
VB.COM would help them with migration.
A car cannot be used to generate products that depend on the existance of
the specific car model. On the other hand, a programming language is used
to create /data/ (and thus assets) that will be lost when the programming
environment (OS, libraries, development tools) are not supported any more.
Consider this text by /Microsoft/:
Visual FoxPro 8.0 -- Upgrading from Earlier Versions
<URL:http://msdn.microsoft.com/library/en-us/dv_foxhelp/html/igUpgrading_from_Earlier_Versions.asp>
---
Microsoft Visual FoxPro protects your investment in applications built with
previous versions of FoxPro. In Visual FoxPro, you can run many applications
that were written in earlier versions with little or no conversion. You can
modify and enhance applications using the Visual FoxPro language, knowing
that most extensions to the language do not affect backward compatibility.
---
Backwards compatibility and the ability to reuse written code instead of
rewriting it is a /key factor/ of a RAD system. It's crucial for the
highest possible productivity. Even if migration of a project will only
take five moths (including testing) five months have been spent that could
have been better invested by extending the existing application.
DOS applications were written more than 10 years ago, and they still work
for obvious reasons, even on Microsoft's newest operating systems. There
are mathematical libraries that contain FORTRAN code which is more than four
decades old. C code written 30 years ago still compiles without going
through a costly migration process.
Did Microsoft ever promise to keep .NET (VB.NET, C#) forever? I suppose
that in some years the same that happened to VB6/COM will happen again.
"Fool me once, shame on you
Fool me twice, shame on me!"
Do you really believe that the .NET Framework will exist forever? It's
simply a technology like OLE and COM that will be outdated (and marketing
will say that it's /obsolete/) and superceeded by another technology, let's
call it ".NEW".
Ray Cassick (Home) said:<snip...>
I hate to tick people off here but if your projects are this complex then
I think they would BENEFIT from a re-write in VB.NET.
When the code is perfectly working and there are very few changes made to
the code because it is stable, a rewrite won't bring a benefit. Rewriting
code will bring back the project to a lower level in the beginning, and
increasing its quality will require testing, reviews, documentation, ... In
the end all you have got by migration are high costs but no
functional/technical improvement. Imagine that you could have spent the
time you used for migration (reimplementation, testing, QA, ...) for
implementing other features.
Most of the time the reasons for all the hard work put into complicated
projects using subclassing and fancy API stuff was because there were
things that could only be done in VB6 that way, specifically because of
shortcomings in the language.
That's not a problem when the code works. There is no need for a change.
For the user it doesn't matter /how/ feature X is implement, but it matters
that it works. Every change of something that works will hold the risk of
adding bugs.
Clearly VB.NET has provided way for you to do a lot of this stuff right
out of the box, and a lot cleaner than some of the old hacks that you had
to use in VB6.
The whole discussion is not about "Is Classic VB better than VB.NET or vice
versa". You could do pretty everything that is possible with .NET in VB6,
even if it was not supported in the unified way it is now supported by the
..NET Framework.
Again, I too have a large code base of stuff in VB6, but I am not afraid
of the end of support. Yes, there will come a time when, because of
changes to the core OS, some of the tings stop running (ie: COM WILL go
away some day - no matter what any one says, it will)
I doubt that COM will go away that fast. Windows and many other Microsoft
applications heavily rely on code. Even Microsoft doesn't have enough money
to rewrite working code only to be able to put a "Made with .NET" sticker
onto the product box. Users won't pay more for a Windows or Office package
only because it's implemented in .NET.
and there will need to be some major changes to legacy stuff, but this is
not a reason to continue to maintain a code line for ever.
The petition is asking for an upgrade path. The signatories believe that
VB.COM would help them with migration.
Should Ford continue to make parts for the Model 'T'?
A car cannot be used to generate products that depend on the existance of
the specific car model. On the other hand, a programming language is used
to create /data/ (and thus assets) that will be lost when the programming
environment (OS, libraries, development tools) are not supported any more.
Consider this text by /Microsoft/:
Visual FoxPro 8.0 -- Upgrading from Earlier Versions
<URL:http://msdn.microsoft.com/library/en-us/dv_foxhelp/html/igUpgrading_from_Earlier_Versions.asp>
---
Microsoft Visual FoxPro protects your investment in applications built with
previous versions of FoxPro. In Visual FoxPro, you can run many applications
that were written in earlier versions with little or no conversion. You can
modify and enhance applications using the Visual FoxPro language, knowing
that most extensions to the language do not affect backward compatibility.
---
Backwards compatibility and the ability to reuse written code instead of
rewriting it is a /key factor/ of a RAD system. It's crucial for the
highest possible productivity. Even if migration of a project will only
take five moths (including testing) five months have been spent that could
have been better invested by extending the existing application.
Was VB6 a ground breaking bit of developer history? YES it was, but should
it live on forever?
DOS applications were written more than 10 years ago, and they still work
for obvious reasons, even on Microsoft's newest operating systems. There
are mathematical libraries that contain FORTRAN code which is more than four
decades old. C code written 30 years ago still compiles without going
through a costly migration process.
No... Things change and we have to change with them. Is change easy? No,
but no one ever promised it was going to be. Did MS ever promise to keep
VB6 alive for ever? Nope. In fact they have actually made it now very
simple to at some point end VB all together.
Did Microsoft ever promise to keep .NET (VB.NET, C#) forever? I suppose
that in some years the same that happened to VB6/COM will happen again.
"Fool me once, shame on you
Fool me twice, shame on me!"
The growing code base of VB.NET code at some point will be able to be run
through a converter and be moved over into C#. The entire .NET runtime is
going to make it possible to change between languages very easily from now
on. Will I like it when that happens? Nope, but I will have a far simpler
time of it now because of the framework that I would have had without it.
Do you really believe that the .NET Framework will exist forever? It's
simply a technology like OLE and COM that will be outdated (and marketing
will say that it's /obsolete/) and superceeded by another technology, let's
call it ".NEW".