Ask TPM: Isn’t It Time for the i OS to Catch Mono?
October 20, 2008 Timothy Prickett Morgan
I read in a recent eWeek article that the Mono 2.0 release, which implements the features of .NET 2.0, was announced on October 6. Is there any news regarding whether IBM will ever support Mono in IBM i? (I would assume not.) We have a mixed shop here: Power Systems for our main business application and Windows/Sharepoint/.NET for our Website and intranet. I am doing both RPG and C# development.
It would be great if we could one day run C# apps and Web services on the IBM i to potentially update our RPG program front-ends and interface with our Windows systems. Maybe if you and others continue to periodically write on this topic, IBM will listen.
Like you, I think it is long past due for i 6.1–not to mention i5/OS V5R4 and OS/400 V5R3 (but there I go mentioning them) to catch Mono. And over the years, I have suggested a number of ways that this might be accomplished.
First and foremost, a native port of Windows has been suggested plenty of times by myself and myriad others in the AS/400, iSeries, and System i community, and I think the merger of i and p machines did not, in any way, increase the odds that a native Windows port, either inside logical partitions or running on bare metal iron.
As Project Mono, which implements the Common Language Runtime (CLR) environment in open source code so other platforms (mainly Linux but also Solaris, BSD, and Mac OS Unixes) can support C# applications, went from an idea to a set of code that companies can deploy C# applications on, like many of you, I suggested that IBM get behind the project and embed the CLR deeply inside an i operating system. (Ironically, Mono 2.0 also runs on Windows if you feel like being absolutely consistent across operating systems.) IBM could, of course, support Mono in a more shallow way, such as in the PASE AIX runtime environment that is, in turn, supporting the TCP/IP stack and the Zend Core PHP engine, just to name two cases. There is no technical reason why Mono 2.0, the latest iteration, can’t run inside i 6.1 proper or inside PASE. And every time I have brought it up with IBM, I have gotten thoughtful responses about how this is an interesting idea, but then nothing happens.
If OS/400, i5/OS, or i were an open source operating system, the i community would have done the port by now, IBM be damned. And IBM would be thankfully adopting that code inside the commercial version of the operating system.
The interesting thing about Mono 2.0 is that it includes a new feature called the Mono Migration Analyzer, or MoMA for short, which helps programmers analyze their C# code as they do a port from .NET 2.0 running on Windows to Mono 2.0 running on Linux. (I see the Museum of Modern Art here in New York being a little touchy about that abbreviation. . . . ) The project tested some 4,600 .NET applications using the MoMA tool, and found that more than 2,000 of them (45 percent) were compatible with Mono without any code changes whatsoever. Another 24 percent of the applications tested required six or fewer lines of code to be changed to become compatible. That’s more than 1,100 applications right there.
So, yes, I agree that IBM should catch Mono. And if it could catch it the way I did in college, it might not be so bad. . . . HA!