|
|
|
date: Thu, 31 Jul 2008 12:53:38 +0530,
group: microsoft.public.vstudio.general
back
Re: VIsual Studio 6
> From my 30 years of experience with C and my 15 years of experience with
> C++, I'd say its all too easy to have code that "apparently works".
After nearly 27 years myself I agree with this statement. That's not the
point though.
.
> The kinds of errors I've seen spew out of a compile with 2005 on code
> that compiled with no errors on VC6 were all indeed errors. Most of
> them were errors with VC6 as well, the compiler just didn't catch
> them.
This is the point. You've got a 100,000 lines of code on your hands that
nobody really understands because it's so old, it's a colossal mess, many of
its developers are now long gone, and it may now be in support mode only
(you've presumably seen as much of this as I have). The number of compiler
errors now maxes out the first time you try building it under a new
compiler. What are you going to do. There may be no mandate to move it to a
new compiler let alone fix these "new" errors and someone has to explain to
management (who's often clueless) that the program your organization's been
using for so many years has serious problems and requires potentially
hundreds of man hours to repair (or more). And because it is a house of
cards, there's no guarantee that you're not going to make the problems even
worse. A buffer overrun that's been "harmlessly" writing into some unused
area of memory for all these years now starts writing into some critical
area and you have a serious problem on your hands. The compiler's certainly
not going to "catch" that. So the very act of even trying to fix some of
these problems can introduce other types of (potentially subtle) problems
that didn't manifest themselves before. And what about the techniques that
people often rely on, which are often so poorly designed and mechanically
unsound that fixing them would be extremely time-consuming and expensive
(and some of these techniques might actually work under your current
compiler even though their otherwise dangerous). Maybe you're even using an
old version of STL, not the one shipped with VC6, but the new compiler
doesn't like something. So now you have yet more repairs. You know as well
as I do that these issues and many others exist in real world code so again
I ask, what are you going to do? You may be powerless to do anything even if
you yourself are in charge.
The bottom line is that no competent programmer would dispute that this type
of program is an accident waiting to happen and that most of the programmers
who wrote it should be shovelling garbage for the city instead. You need not
point out the obvious IOW, that many of these problems exist independent of
the compiler being used. In the real world though you often just can't
migrate these programs to a new compiler without introducing far more
problems than you already have. It may not be technically or financially
feasible and you may face insurmountable resistance from the people who pull
the strings (as incompetent as they often are). You wanted an answer as to
why continue using VC6? For many there's simply no choice.
date: Tue, 5 Aug 2008 07:02:27 -0400
author: Larry Smith
|
|