Tool vs. Manual Porting
March 10, 2007 Leave a comment
Many companies are migrating their application from one technology to another technology for various reasons. It is good as a developer; it provides more job security and opportunity for us. For porting generally there are two approaches: Manual and Tool based porting. Lets take an example of porting COM application into Java platform. There are quite a few vendors offering toolkit/engine to run the COM code inside J2EE application server. But most of the developer will be more comfortable to rewrite the code based on the new platform. Lets analysis Pros and Cons of both these approaches. For the discussion I took COM to Java as an example.
Leave the source code as it is and identify the calls on the ported environment. These calls then are converted into the equivalent native calls. This conversion is handled by a set of libraries provided by the tool vendor.
[Note: Since the code base remains same, this approach can be chosen to run the application in multiple platform, may not be optimal solution for complete technology porting.]
- Can port the application faster.
- Low cost compare to rewriting the complete application.
- Should rely on the porting tool vendor heavily.
- Would be difficult to debug as the code remain in different technology.
- Code maintenance would be tougher.
- Future enhancement is very difficult as operating and development platforms are different.
- Need to spend lot of time on testing, the time may not be worth for long term stability.
- It is not easy to upgrade Operating System and application server.
Manually locate and replace platform-dependent code with appropriate Java code. Platform-dependent code usually includes operating-system calls, language-library calls, and other functions, such as transaction-processing calls.
- Can get good code base, will be useful in long term.
- As it gives good code base, it is easy to debug and enhance the application as needed.
- Can freely choose the Operating System and application server
- Easy to upgrade Operating System and application server.
- Maintenance will be much easier with good code base.
- It takes little longer time to port; time to market might be an issue.
- As it needs developers’ involvement in porting, may cost more.
It is purely based on the your business requirement and political differences in your management staffs on the approaches.