I see no good reason for continued contention between the Java and .Net platforms. Thats why Im pleased by the packaging of next weeks OJ.X conference in Detroit, a Compuware event that speaks to the entire managed-code development community -- with Java and .Net tracks to address platform-specific topics and nuances, but with an overall attitude that writing managed code is the key decision to make.
As a coder who learned Lisp before C, I was obviously baby-ducked on the subject of using managed code technology -- rather than the cathedrals-from-toothpicks construction of bare-metal development with syntactically sugared machine-level languages. Neither Lisp nor Smalltalk, though, ever seemed to get the timing right and offer a balance of power and resource requirements that hit the sweet spot for broad deployment.
Java did hit that target of being the right amount of capability, in the right package, at the right time, and Ive liked the Java technology since its first appearance; Microsofts .Net took longer than Id have liked to emerge, but its becoming a place where interesting things are happening that no developer should ignore.
The tipping point for managed code can be found in any of several places, depending on your prejudices. You might find it in the availability of Eiffel on .Net -- not the Eiffel# subset, whose early availability made it a poster child for multilanguage openness of the .Net platform but which suffered from compromises in key areas such as multiple inheritance. Full-strength Eiffel for .Net, with all of the high-reliability constructs that make it so interesting for substantial projects, enjoys an impressive synergy with the resources of the .Net platform.
You might also find a tipping point for managed code in the work thats being done under the code name of "Singularity," a project that I discussed with Microsofts James Larus as part of an eWEEK Labs report from major IT innovation centers across the country. "This is research," Larus warned: "Were not building the next Windows, dont read too much into this." Even so, he said, "Weve built an operating system written entirely in C#, all safe code except the kernel and a HAL [hardware abstraction layer] on top." The result, he said, is far greater self-healing capability because of the resulting software isolation of separate processes. A failure in one process cant result in broad collateral damage: "Other processes have to recover," he said, "but they can know their own state at the point of the failure."
Whether your time frame is immediate or long-range, and regardless of which one you choose as your primary base of operations, youre going to be interoperating between Java and .Net for the rest of your coding career. Im not saying that this will be easy, because the bar for what constitutes an interesting and acceptably high-quality application continues to rise -- but its a whole lot better than continuing to do things the old hard way.
If you want to find out how we do things, this week marks the public debut of new online access to our inner workings and discussions at Inside eWEEK Labs: We hope youll find it useful, and tell us what more youd like to see from that Labs portal.
You can also tell me why Im wrong about managed code being ready for prime time at firstname.lastname@example.org
Check out eWEEK.coms for the latest news, reviews and analysis in programming environments and developer tools.