When that stalwart of facile enterprise development, Visual Basic 6, was retired by Microsoft, it left companies with a variety of problems. While many were able to immediately upgrade to Visual Basic .NET, Java, C++ and other platforms, cases remain in which VB6 was so embedded in the software infrastructure that it could not be easily changed or extricated. TSRI has been working on code transformation of numerous languages for many years, and now includes VB6 transformation.
PowerBuilder, with its ever-popular DataWindow IDE feature, and strong client-server orientation, is still an important coding mechanism. It has fallen out of favor in recent years, however, and its codebase has been neglected and moved to Sybase, then to SAP, and now to Appeon. Due to a few missteps along the way, and a late.NET capability addition, many companies are choosing to discontinue their use of PB and move to newer platforms.
Cybersecurity in the government has certainly come into focus recently as we have witnessed sensitive document troves exposed on WikiLeaks along access to government information from transaction systems. Perhaps the most serious of the latter was the 2015 incident in which the Federal Human Resources database was hacked for more than 22 million records containing sensitive personal information such as Social Security numbers. In this incident the source of the problem was 30-year-old mainframe software written in COBOL that was too technically obsolete to encrypt personal information. This raised the discussion of legacy system security to a new level.
Code modernization has become increasingly important as we move toward integrated cloud-based and virtualized software environments. Modernization of code permits legacy applications to continue functioning efficiently and securely without a complete rewrite. This makes it possible to meet the demands of today's infrastructure requirements without high cost or compromises in security or functionality. Companies need to expand services, access improved processes and use resources more efficiently. This demands architectural changes. Bringing these trends together, containerization under Docker has created a new model for application deployment that provides numerous advantages to program operation and interoperability, but requires special accommodation.
When it becomes apparent that legacy code must be replaced, modernization is often the best possible strategy. With code modernization it is possible to refine the original code and bring it up to modern practices, as well as integrating it with existing software. One of the problems with modernization, however, is that critical applications tend to have thousands of lines of code and a manual rewrite is often impossible. To re-create the software requires a project of similar magnitude to the original development; to leave most of the code intact as a “black box” and build around it results in numerous security issues and inefficiencies, as well as inability to leverage emerging technologies.