Visual COBOL Interview
Visual COBOL R3: 'enabling traditional COBOL to be deployed on JVM or .NET.'
Last week, Micro Focus launched Visual COBOL R3, a development environment which allowed COBOL to run on the JVM. But what challenges did the company face, bringing COBOL into the world of modern software development, and is COBOL relevant, in 2011? In this interview, JAXenter speaks to Micro Focus' Product Management Director, Mark Warren, to find out more.....
JAXenter: What is Visual COBOL R3?
Mark Warren: Visual COBOL R3 is the latest release of Visual COBOL (the first release was April 2010 alongside Microsoft's launch of Visual Studio 2010). This version rounds out the Visual COBOL family by adding Eclipse as an option, alongside VS2010, for development of UNIX or Linux applications or COBOL JVM apps. By adding the COBOL JVM support, Visual COBOL has the unique capability of any enterprise programming language to take a single piece of source code and compile to optimized native code for execution on Windows, Linux or UNIX, managed code for the .NET platform, .class files for execution in a JVM/JEE environment or deploy to Microsoft Windows Azure cloud. This means developers have the choice of the best development environments and to deploy to whatever platform is best for their business while having seamless integration with other languages such as Java or C#.
JAXenter: COBOL is over 50 years old. How is it still relevant for today's industry?
Mark Warren: Rather than "over 50 years old", we would say "COBOL has over 50 years' experience running the biggest and most critical business systems". These business systems continue to be vital assets and frequently deliver the company's competitive differentiation.
Visual COBOL continues with the traditional strengths of COBOL but enables those applications to be modernized for the demands of the next decade and beyond. By enabling traditional COBOL to be deployed on JVM or .NET, those applications can be easily integrated in to the data center's operations without requiring expensive and risky rewrite or replacement. Extending the COBOL language to use modern OO constructs allows either new COBOL code to be created in the same style as Java or C# or to incrementally extend traditional COBOL to start using features of the frameworks (e.g. Java data types, classes or methods). The combination of this modern language with the best IDEs makes Visual COBOL easy for new programmers to be productive very quickly if transitioning from Java or C# - increasing team agility, and reducing the cost of project staffing.
JAXenter: What challenges did the Visual COBOL
team face, bringing this programming
language to the JVM, in particular?
Mark Warren: A couple of years ago we reviewed our technology and the industry direction which is strongly headed towards commodity operating systems and hardware (e.g. Linux on Intel x86). Along with that review, a number of other events happened to come together at just the right time. With the release of VS2010 and its new extensibility options, we could enhance our existing COBOL development experience in Visual Studio. We had also just released our first COBOL for Eclipse product which was well received by users. We could also see how we could reuse our experience in generating MSIL code directly from our COBOL compiler (first released with VS2005) to generate Java byte code (.class files). This is a unique approach that doesn't require any "under the covers" translation of the COBOL source code into Java source code which is then compiled by javac. That transformation breaks the connection between the executable and the original source code making it expensive and difficult to build high quality, rich development experiences and limits the ability to optimize the code. The Micro Focus approach avoids those problems but it also had to work around limitations in the JVM caused by the Java language. For example, Java has a relatively small maximum size of methods and classes, so we had to do some very innovative work to ensure existing COBOL could continue to run without change and with maximum performance.
JAXenter: How does Visual COBOL for Eclipse add COBOL sensitivity to the Eclipse editor?
Mark Warren: Visual COBOL for Eclipse integrates a "COBOL Perspective" that ensures COBOL programmers have a familiar and usable interface. For example, where traditional COBOL source is being used, margins are drawn and cursor behaviour set appropriately for COBOL. Source code is continuously verified by a background parser ensuring errors are notified to the developer immediately avoiding frustrating and costly rebuilds to get a clean compile. New views have been added to make it easier to work with COPY books even when COPY REPLACING is used - something that most IDEs have difficulty with as it's unique to COBOL. In other places, standard Eclipse features usually used for other languages such as the Program Outline view and collapse/expand blocks of code have been enabled for COBOL programs.
The debugger has been extended to understand COBOL and full functionality is available to COBOL programmer, including variable watch/modify, breakpoints etc. The Visual COBOL Development Hub extends the Eclipse support so that the application being developed can remain on a UNIX or Linux server, where it has access to test databases, middleware etc., but the developer works with Eclipse running locally on their Windows or Linux desktop. This approach avoids the need to copy the source code to the local machine or to duplicate the server's test data and services. Sample projects, cheat sheets and full documentation are all included in Visual COBOL for Eclipse.
JAXenter: What's planned for the next release of Visual COBOL?
Mark Warren: We have a full roadmap for Visual COBOL. The next release will be in the first half of 2011 and will focus on continued enhancement of Visual COBOL's compatibility with ACUCOBOL and RM/COBOL, additional UNIX platforms and making the COBOL JVM support GA (Generally Available) - with R3 it is at a "Technology Preview" state where we encourage customers to validate their own code on the platform and work with them on any early production deployments. We are also continuing to enhance the COBOL language to make it easier to reuse existing code in new ways such as web services and to incorporate modern programming capabilities such as generics.