When the source code is ambiguous, the default is to generate better quality code. In some cases, rather than make a decision that might be sub-optimal (for example, evaluating runtime objects), the code will be commented so that a developer can further analyze and decide the best course of action.
Code is refactored and cleaned up.
After semantic representation is complete, code can be automatically refactored (from “code behind” to MVC, for example); dead code is flagged and eliminated; redundant code can be simplified.
No third-party dependencies
All generated and required code is source code, with no binary libraries used to speed the port to a different platform. While binary libraries (i.e. runtimes) are the fastest way to move an application to another platform, the resulting code is difficult to maintain and creates a risky dependency on an outside vendor for ongoing support. (Note: if you want, you can include the helper classes as a binary lib in your code tree for brevity, but it's entirely up to you.)
No performance penalty
Because Mobilize.Net migrated code is pure source code, it uses native runtime libraries (e.g., .NET, J2EE) so it performs equivalent to applications written from scratch for those platforms; additionally any profiling or analysis tools for that platform will work on a Mobilize-created application.
Coding standards can easily be implemented. A developer who was familiar with the original application source code will be able immediately to read and understand the resulting .NET or web application, except for those aspects of .NET classes, C# syntax or HTML5 they are not yet familiar with. The application structure, names, comments, etc. are preserved. Other companies that offer only syntactic tools can provide consistency across platforms, but customers sacrifice any hope of taking advantage of the new platform since the code generated is tightly bound to the old platform and frequently is riddled with syntactic and structural artifacts from the original language and platform.
We invented semantic transformation
Mobilize tools, including VBUC and WebMAP analyze the entire application, not just code blocks, to understand the programming intent. Other tools can require the developer to analyze and migrate line-by-line or at a code-block level, rather than at the application level, a process significantly slower than using Mobilize’s tools and one that creates numerous opportunities for bad decisions. Consequently, Mobilize tools create the target application with the original architecture intact. Apps created from syntactic tools have a much cruder fidelity with the original application.
Like a compiler for modernization
Mobilize uses the same model as a modern compiler, parsing the source language into an Abstract Syntax Tree (AST) in order to identify intentional patterns and build equivalent patterns in the output code. This results in a more accurate representation of the original code, so that the completeness and accuracy of business logic and processes remains intact, reducing the need to identify and fix runtime errors. This again points to the superiority of semantic transformation tools vs syntactic tools that Gartner has identified as a critical modernization issue.