At 05:55 PM 6/7/1999 -0400, Victor Giddings wrote:
>At 11:18 AM 6/7/99 -0400, Terry J. Westley wrote:
>>We developed and maintain a real-time, distributed electronic
>>warfare simulation. Approximately 80% of it is Ada; the rest
>>is C, Tcl/Tk, SQL, and FORTRAN.
>>It has been recently suggested that, rather than converting
>>to Ada 95 (well, really, it's converting from VADS to GNAT
>>or Rational Apex), we spend the same money to investigate
>>converting to C++.
>Our experience (and that of several customers) is that the effort to
>transition for Ada83 to Ada95 is less than effort to port from one C++
>compiler family to another. We build and maintain two commercial product
>families for embedded and real-time systems, one for Ada95 and one for C++.
>Also, the effort it takes to support multiple Ada95 compilers is less than
>that needed to accommodate a version upgrade of a single C++ compiler.
>So after you've made the investment to convert to C++, expect to keep on
>paying. And, if you have change your C++ compiler, expect to start over.
I'll second Vic on this. My experience with converting from VADS to
GNAT has been that the ONLY noticible cost is the restesting. Even on
fairly large software suites, the time to get recompiled and up and running
is less than it takes to talk about it. My preference is to recompile
everything, then go in and grep for certain file names and reserved words
("at", with, and "use"), to check for places where the code can be spiffed
up to be more Ada 95 style compliant. Only after that do I look for any
areas where child units and finalization will make things cleaner. (I do
have one project where I probably should convert to using the distributed
systems annex, but that would require a "big bang" upgrade in the field.)
I'd say that converting 100,000 SLOC per week (excluding formal
testing!) is conservative, and even with larger systems you should expect
to have things up and running the first day. Just remember to have plenty
of disk space handy for large systems. (You will want to have several
source trees and at least three excutable images sitting around.)
Robert I. Eachus
function Message (Text: in Clever_Ideas) return Better_Ideas is...