April 12, 2004

Java and .Net

The Sun-Microsoft settlement seems to mean a lot of different things to a lot of different people, but I realize that my needs are very simple:  I want to be able to write Java code for the .Net platform.

I don't mean writing Java on a Windows platform (I do that every day and it's working very well), but being able to access the native Win32/.Net API's from Java.  Right now, if I want to write an add-in for Outlook, I need to switch to C#.  Not a huge deal in itself, and it's actually a fairly pleasant experience, but I was promised "Java everywhere" and I'm still waiting.

Hopefully, the Sun-Microsoft settlement will make this possible.

On a related note, it's interesting to see how things change.  A few years ago, writing native code for Windows meant:  switching back to C++ (bad) and Visual Studio (good).  Now, it means switching to C# (good) and Visual Studio (bad).

Don't get me wrong:  Visual Studio remains an outstanding IDE and if anything, it is more powerful now than it was five years ago.  It's just that today, modern Java IDE's blow it out of the water...

Hopefully, in a couple of years from now, deciding to write native code for Windows (or for any platform for that matter) will mean switching to both languages and tools that are equally pleasant to use as those I am using today.


Posted by cedric at April 12, 2004 09:09 AM

Have you looked at ikvm? It allows you to run Java using .NET. Have a peeky at www.ikvm.net

Posted by: Andrew Shuttlewood at April 12, 2004 11:53 AM

So, basically you want an updated version of J++ which supports Java 1.5, right?
The whole issue is if you'd like to have the Java package structure (java.*, javax.*) or the one from .NET

Maybe we could have WinForm-backed Swing just like we have Carbon-backed String in OSX?!

Posted by: Gabriel Mihalache at April 12, 2004 12:19 PM

Just another handy URL - this is an example of actually using Java to use .NET (under Mono, but as far as I understand it, IKVM works under 'proper' .NET as well)


Posted by: Andrew Shuttlewood at April 12, 2004 12:46 PM

Dude, I am surprised that you have soooo much time to blog. Don't you have a day job to do at BEA (?)

Posted by: Richard Nixon at April 13, 2004 05:19 PM

Hi Dick, I'm a big fan of your work.

I do have a day job at BEA but that's not a problem for me since I blog at night instead of sleeping (which is such a waste of time anyway).

Posted by: Cedric at April 13, 2004 05:56 PM

Hi Cedric.

You write:

Don't get me wrong: Visual Studio remains an outstanding IDE and if anything, it is more powerful now than it was five years ago. It's just that today, modern Java IDE's blow it out of the water...

Just out of interest, which modern Java IDE's blow Visual Studio out of the water?

Posted by: Kofi at April 14, 2004 02:35 AM

Hi Cedric,
I take write once - run anywhere over write Java for each platform specifically. Java with "native" .Net is no platform, it is just a language. Why don't you ask for C# on Linux, Mac OS, Palm OS and Nokia Cell Phones?

Just a thought

Posted by: Kaj at April 14, 2004 06:26 AM

If this is just a matter of syntax, why don't you use J# ? You will have full JDK1.1 + Collections and a few other packages. You can even have Swing with few hacks.

FYI: Java will be a first class citizen programming language in Visual Studio 2005. Furthermore, VS2005 will provide all the cool refactoring features you have in modern Java IDEs.

Posted by: Thierry Kormann at April 14, 2004 01:09 PM

I second kofi. which particular ides blow vs out of the water? and can you list enough specific features they have over vs? i come from the perspective that vs is the best ide in the world and though eclipse and idea try, they are limited and not fast enough..

and for thierry, where can i find info on the java and vs2005 plan?

Posted by: bioye at April 15, 2004 06:02 AM

IDEs that blow Visual Studio out of the water:

Top of my list is eclipse, which blows every other IDE I have used out of the water. The refactoring, second chance debugging and staggering number of plugins rate very highly with me.

Also, I use JDeveloper pretty heavily, not quite as nice an environment as eclipse but better integration with Oracle database which is important at work.

Netbeans, IntelliJ IDEA and Sun ONE (basically commercial netbeans) are all pretty outstanding too.

Visual Studio vanquished all of it's competitors in the windows space a good while ago, and when it did it started stagnating. MS ran out of ideas for it and had no one to copy. Internet Explorer is the same story right now, just look at where Mozilla/Firefox are in comparison to realize just how little distance has been covered in IE since it achieved it's 90% share. MS is a masterful impressionist but no visionary.

Posted by: QuaintRcky at April 15, 2004 03:55 PM

I second that opinion, QuaintRcky. I see lots of people complaining about Java stagnating, but I'm looking at Eclipse right now and I am very pleased with what I see. I have customised it to be an immensely powerful environment for me. I'm also looking at the Spring framework and I'd like to show it to those people and ask "Do you *still* think Java is stagnating?".

Looking around at Eclipse, Spring, Hibernate, AOP, Tapestry, SWT etc. etc. I see huge activity. I'm starting to believe that Java is morphing into something different, especially with AOP. I also have to perform C++ programming as part of my work and it is such an eye opener - the level of choice and sophistication we have now is huge compared to back in the 90's. C++ has not changed while Java is not only keeping up, I feel it is now setting the pace! Watch for the AOP scramble in the .NET space - watching how MS will bolt *that* on will be interesting. I suspect that some of the C# language constructs may make that task v. difficult to appear seamless to programmers...

Posted by: bithead at April 15, 2004 06:35 PM

HI - I apologize if this is a rude question. First, some background.
The State of Alaska government is attempting to force standardization to all of its IT structure. Noble idea but reality is lacking. Part of this is that they are telling each Department to standardize its development to one platform, Java or .Net. Of course we chose Java, in part because it was not Microsoft and we are a Oracle shop. I have been trying to accept this gracefully and learn Java. First class next week :-)
Now my question - is it possible to "referece" the Office object model, like in VB, and drive applications like Excel? Any pointers to information on this would be greatly appreciated. A language is a language is a language but I will miss getting into the Office/Windows architecture and driving applications. Hope you can help. I have been looking around and this is a subject not talked about very much.

Posted by: Steve Gebert at April 16, 2004 09:11 AM

Recently someone ported my SimpleORM object relational mapping system to J#. It was relatively painless. I changed a few lines of code, added my own ArrayList, and we have common source for Java and .Net.

One could build up libraries. The big issue is that I do not think that J# can access new .Net constructs such as Structs, which makes it very limited, eg. Point is a heavily used struct.


Posted by: Anthony Berglas at April 17, 2004 03:37 AM

You were promised "Java everywhere", and now want
to access the native .Net API's from Java?
You can have it just as soon as .Net API's
are available everywhere!

Posted by: at April 20, 2004 04:27 AM

Writing to Windows APIs would not be "run anywhere", it would be "run on windows". Perhaps you should spend a little more time sleeping.

Posted by: at April 20, 2004 07:02 AM

Hi Cedric --

You want to call .NET APIs from Java? Check out our product at www.jnbridge.com. Contact us if you have any questions. We've got a couple of things on the way in upcoming versions that'll make it even better.


Posted by: Wayne Citrin at April 20, 2004 09:34 AM

To write Windows programs, you need to use Windows APIs in many cases. Thus, to really be able to propose Java as a solution for all substantial Windows development tasks, you need to have some easy way to access them from Java.

In addition, were a set of stub .NET libraries provided in jar form from Microsoft, then we could use them in popular Java IDEs, use them as part of nightly builds, and otherwise make .NET part of our tool chain, just like Java is. Even if MS does not want to put .NET on Linux or MacOS X, they have customers who need to work with it in a limited way from those platforms, and appropriate Java bindings would go a long way towards making that possible.


Posted by: Scott Ellsworth at April 20, 2004 12:30 PM

Write once - run anywhere? No longer important in the Java world for the enterprise. They all mostly picking one of the application server providers and sticking with them, using the proprietary stuff and not worrying about it.

Want to communicate with things written in any other language than the one you are using? Can you say service-oriented architecture? Of course, both sides have to participate.

Posted by: Purpleman at April 22, 2004 11:56 AM

Visual Studio IDE is coming a long way but still has a long way to go when compared to modern java IDE's such as Eclipse or IntelliJ (light years ahead of eveything)

On a side note, if you are looking for Java .NET Integration don't forget to take a look at our interoperability tools: J-Integra Interoperability suites.

Check out our website at: j-integra.intrinsyc.com and feel free contact us if you have any questions.

Posted by: J-Integra at February 15, 2006 03:31 PM

MorphBuster - Animation Design Tool


Posted by: black window at April 27, 2006 10:17 PM


Posted by: plavix drug at August 17, 2006 08:57 AM
Post a comment

Remember personal info?