Re: Language change question
Bryan wrote:
I work for a company that is heading towards an FDA approved development
process. We have always used C++ in a windows environment, and we have
more than 6 years of code, applications and libraries developed.
Our IT director has made the decision that to speed up development times
we need to re-architect all of our existing code, and has hired a 3rd
party (offshore) company to do this for us. They have recommended that
we change from C++ to java, spring and hibernate.
We are all professional programmers here, so learning java is not a
problem for those of us who dont know it. But the time to learn the
tools and environments may take a bit of time. But the real question is
what do we gain from moving to java? Or conversely what do we lose by
moving away from C++?
I would be interested to hear any thoughts, stories of similar
experiences or pros and cons.
It will be a disaster. Your working, debugged code is going to have to
be both translated and extensively (especially from C++ to Java) redesigned.
The 3rd party programmers who will be doing the work will have never
seen your code before. They'll know nothing about the design of it, why
the code is written the way it is, and will not know that the ugly
detritus in the code are undocumented fixes for specific problems.
Chances are good that if it took your company 6 years to get to where it
is now, it'll take the 3rd party 6 years to duplicate it and bring it up
to the same level of capability and bug-free-ness.
In the meantime, you'll fall 6 years behind the competition.
Essentially, you're stuck with using C++ for your existing applications.
Switching to a significantly different language only pays off for new
code, or if you're forced to by things like severe unfixable compiler
problems.
The number one, proven, way to improve productivity with an existing
code base is to improve the test suite. A thorough test suite means you
can change code without fear of breaking things. The better the test
suite, the less fear. The less fear, the faster development goes. Best
of all, test suites can be improved incrementally without interfering
with your release schedule.
I suggest starting with a good C++ code coverage analyzer, and work from
there.
-Walter Bright
www.digitalmars.com C, C++, D programming language compilers