Read the Original Article at http://www.informationweek.com/news/showArticle.jhtml?articleID=18100162
Java developers and the Microsoft Visual Studio .Net community sometimes seem as if they're members of two warring camps, despite the fact that many companies have adopted both technologies.
"Most large companies have both, but they tend not to mix and match," says Mark Driver, an analyst with Gartner.
Mainsoft Corp. is offering a bridge over these troubled waters that lets Microsoft-oriented developers participate in enterprise Java efforts. Mainsoft last week offered Visual MainWin Java 2 Enterprise Edition, which compiles code from Visual Basic or C# (pronounced "C sharp"), two languages from the Visual Studio .Net stable, into the same intermediate byte code as Java. Once compiled, the Visual Basic or C# code will run in the Java Virtual Machine or on a Java application server, such as IBM's WebSphere or BEA Systems WebLogic.
"Java is no longer a single language platform," says Yaacov Cohen, CEO of Mainsoft, which was founded in 1993. Mainsoft has previously produced versions of MainWin that moved Windows applications onto Unix and Linux.
"Now the CIO can make the Java team and the .Net team work together," Cohen adds.
When Microsoft conceived of Visual Studio .Net, it updated Visual Basic, Visual C, and Visual C++ and added C#, so that Visual Basic and C programmers could continue to work in the language to which they were accustomed. But in each case, it compiled the language's source code to an intermediate byte code that was shared across the .Net language set. And that intermediate code could be used to send programs over a network or get systems composed of different languages to work together.
Microsoft's intermediate code, Cohen says, "is very similar to Java byte code," the compiled Java source code that's fed into a Java Virtual Machine. What's more, the structure of Microsoft's intermediate code is part of C# standardization through ECMA, formerly known as the European Computer Manufacturers Association. Mainsoft is on safe ground against future changes to the byte code because any changes must be published as part of the ECMA standard, Cohen says.
It's too early to say whether the crossover compiler technology will work in all production environments. "It sounds too good to be true," Driver says.
But Mainsoft's product does address the shortage of Java programmers in companies that would like to put the productive Visual Basic or C# programmers to work on larger enterprise projects. Microsoft .Net development projects tend to be ones with 50 to 1,000 users hammering away on an application at one time, while Java apps are often designed for 1,000 or more users, Cohen says.
By bringing the visual environment of Visual Basic and C# to a project, Driver says, Mainsoft is hitting the sweet spot where the comparable Java technologies, such as Java Server Pages and the Jakarta Struts framework for user interfaces, "are still too complex." The MainWin compiler technology may make the services of .Net programmers available on complex Web-services and enterprise development projects that can't find enough Java programmers, he says.
Cohen insists the conventions of Visual Studio .Net can be translated into Java applications. For example, it's easier to generate a form in Visual Basic or C# and then generate an Active Server Page to host the form than it is to do the same task in Java using Java Server Pages. After being compiled by MainWin for J2EE, the Active Server Page will run as a Java Server Page on a WebLogic Application Server, Cohen says.
Additions to a Java system composed in Visual Basic or C# can be added to the enterprise system as Enterprise JavaBeans after being transformed by MainWin for J2EE.
Cohen says other Visual Studio .Net languages, such as J Sharp and Visual C and Visual C++, could be added in the future.