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 with Standard_Disclaimer; use Standard_Disclaimer; function Message (Text: in Clever_Ideas) return Better_Ideas is...