Mainframe environments are made of numerous components, sub-systems, applications with varying levels of criticality, performance requirements, developed in different languages and by different programming teams over decades. Quite logically, parts of this complexity show in rehosting projects and in the target architecture.
To care for this variety of moving parts, more often than not, the resulting architecture will have to support multiple programming languages. Not only mainframe languages such as COBOL, PL/I or Assembler, but also mainstream ones such as C#, VB.NET, Python and others. After all, the rationale for rehosting projects is more than financial only. It is also to allow new components to be developed in the latest technology and have them interoperate gracefully with the legacy. One needs the possibility of gradually moving away from COBOL and PL/I, rather than being stuck in these antiquated languages just because of history.
Multi-language development can be a nightmare in the making, but this is where .NET shines. It solves elegantly what used to be a never ending string of painful technical details. .NET guarantees isolation between processes, memory protection, no dangling pointer, no memory leak, strong interface validation, centralized threading support, security and more. If a module manages to call another module, a whole class of possible problems are known to have been checked for, and this remains true even in the most unlikely of settings, when PL/I code calls an F# module or any similarly exotic combination.
These common grounds shared by all .NET enabled languages (at least, for those that operate in fully managed mode) extend to a smooth integration in Visual Studio, where one can debug multi-language applications going seamlessly from one module to another whether they are written in C#, COBOL, PL/I, Assembler, VB.NET or any other language.
Are we biased?
We rest our case.
In our eyes, .NET is by far the best target environment for rehosting projects. Are we biased? Yes, we probably are, but the facts we list are for real, and cannot be discarded without as much as a shrug.
But then, whether you agree or disagree on this, we’d love to read your thoughts. What do you think?
If you want to see for yourself how Raincode helps to migrate your legacy applications from your mainframe to a .NET platform, download the freely available Raincode COBOL compiler: