Legacy C++ Application porting

Posted on 2014-08-25
Last Modified: 2014-08-26
We have a legacy C++ Windows Application that needs to be re written, it uses lot of math calculations and is graphics dependent. Our questions:

1) Rewrite the code from scratch in C++ to support new features.
2) Port it to a newer language like C# or Java and why.

Our customers run this program on their desktop.
Question by:proginc
    1 Comment
    LVL 28

    Accepted Solution

    For me, it is clearly 1).

    1. The C++11 is very nice an fresh enhancement of the language, and it is probably as efficient from the programmers-productivity point of view as C# or Java. You should definitely use the C++11, not the older version of C++.

    2. It depends on what you mean by "a lot of math calculations". Definitely, C++ solution can be the fatest of the three languages.

    3. You have the C++ solution and it need not to be perfect. However, you can enhance it gradually. When anything is bigger than small, the rewrite from scratch is often the way to "never delivered".

    4. It is easier to separate the old math functionality (and other important functionality) to modules.

    5. You will need to understand the old code. Rewriting it to C# or Java will force you to understand first anyway. It would lead to complications that are related to different abstractions.

    6. I suggest to introduce the newer unit-testing framework like Catch ( or another of the same quality. Write the test for the old function first, copy and rewrite the test for the new implementation of the function, and only then enhance/fix the new implementation of the function. This is what will make you sure you did not introduced errors. Writing the test is the way to re-understand the old implementation. And also, writing the test will help you to reveal flaws in the interface of the functionality (that is it will guide you when removing interdependencies).

    7. For the GUI, choose one of the portable frameworks -- they are generally cleaner than the OS specific ones. I like wxWidgets, others do like Qt.

    Write Comment

    Please enter a first name

    Please enter a last name

    We will never share this with anyone.

    Featured Post

    Training Course: Java/J2EE and SOA

    This course will cover both core and advanced Java concepts like Database connectivity, Threads, Exception Handling, Collections, JSP, Servlets, XMLHandling, and more. You'll also learn various Java frameworks like Hibernate and Spring.

    Suggested Solutions

    Windows Script Host (WSH) has been part of Windows since Windows NT4. Windows Script Host provides architecture for building dynamic scripts that consist of a core object model, scripting hosts, and scripting engines. The key components of Window…
    This article will show, step by step, how to integrate R code into a R Sweave document
    This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.
    Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …

    737 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    18 Experts available now in Live!

    Get 1:1 Help Now