Fog Creek Software
Discussion Board

.Net develops advantages over Java,,t479-s2134382,00.html

Thursday, May 8, 2003

here we go again....

Rick (
Thursday, May 8, 2003

The argument seems to be ".NET is newer therefore there are newer/better features". Borrrrring. Tomorrow there will be a new favourite. So what? It doesn't affect the fact that people will either have technology foisted on them by marketing fuckups who don't know what they want or they will be allowed to choose which technology to use. In the latter case it is to be hoped that they choose based on what is best to solve the problem to hand, not what is cool today or might be cool tomorrow.

Thursday, May 8, 2003

That has to be one of the most strained introductions I've ever read. 

Ged Byrne
Thursday, May 8, 2003

His points are valid and their is a benefit to not leading in these things.  Java could do some things better and the backwards compatibility issue is always going to be an issue.  However, it is always an issue(Ask the people going from VB to In this area it may be better to support the old, but provide new, rather than leave the old

All this however is not necessarily a limitation of JAVA. It may be time for Java to see what .NET is doing for fresh ideas to add to the next language release.  Evolution is a good and necessary thing. 

In the end however, the most telling portion of the story was: ".Net is still a mostly Windows party, while Java offers the chance to work on a large number of platforms."  If you are working on a mixed environment .NET is not there yet.  Not that it cannot be, but I wonder if it ever will be.  Look at Microsoft's recent stance on FoxPro.  They could easily change licensing of .NET to say "illegal to run on anything but MS products." 

Unfortunately, I do not see MS offering that guarantee anytime soon.

Mike Gamerland
Thursday, May 8, 2003

Ged, I agree.  That intro was horrible.

Thursday, May 8, 2003

Fluff.  The article in 50 words or less:

1. Config: Java uses Properties Files, XML, .Net uses XML.
2. Java uses Reflection, so does .Net with metadata.
3. Java uses .jar files, .Net uses Assemblies.
4. Java uses RMI, .Net uses Remoting.

There you have it, all the compellingg reasons to use .Net over Java.

Nat Ersoz
Thursday, May 8, 2003

I have a Java application here that spits out the reasons for using Java over .NET. It's calculations should be done soon. Wait for it... wait for it.. Hmm... seems a little slow...

Kool-Aide Drinker
Thursday, May 8, 2003

What's the .Net substitute for EJB?

Beth Linker
Thursday, May 8, 2003

Don't you consider it a benefit that there's no analogue to the bastard child of J2EE, the EJB? :)

.NET offers all the same infrastructure services that are available in Win32 via COM+.

Brad Wilson (
Thursday, May 8, 2003

My only qualm with .NET is that it doesn't include all of the controls that C++/VB windows programs have access to.  Take for example the DriveList/Directory Picker.  It would have been nice to see that control included among others... So's that I dun have to write my own ;)

Tucan Sam
Thursday, May 8, 2003


Check out the Microsoft.VisualBasic.Compatibility.VB6  assembly ;-)

Thursday, May 8, 2003

You can still use the old active x controls, just add them to the tool bar.

Steve Barbour
Thursday, May 8, 2003

[What's the .Net substitute for EJB]

Although all of the same things can be accomplished there is no MS equal. There are plenty of tools written and being written to fill this gap. I think, in hindsight,  EJB might be a bit too much and one could accomplish the same using other methods. Right now they sem content with pushing remoting/soap as their go-to and using 3rd party persistance mechanisms to fill the gaps.

But who knows, maybe the next version of IIS wil be a full fledged app server and they will announce a huge push for enterprise level architectures complete with 37 interfaces (37 sounds like a good number): remote, home, remote-home, home-remote, local-home-remote-remote, remote-remote-really-remote- no-you-don't-seem-to-understand-this-thing-is-off-the-friggin-planet-remote, etc.. 

Ian Stallings
Thursday, May 8, 2003

37 *is* a magic number:

"If you want me to wear 37 pieces of flair, like your pretty boy over there, Brain. Why don't you just make the minimum 37 pieces of flair." - Office Space

Office Space
Thursday, May 8, 2003


could help?

Just me (Sir to you)
Thursday, May 8, 2003

Or how about upgrading to .NET Framework 1.1 which has a standard library class FolderBrowserDialog, due to popular demand? :-)

Chris Nahr
Thursday, May 8, 2003

If you want to make a mint, develop the functional equivalent of Apple's EOF (Java persistence framework) for .Net.  Then actually market it.

Though, EOF does has some patents associated with it.

Jim Rankin
Thursday, May 8, 2003

Don't you MS lovers ever feel dumbed down by MS.  After all, Open Source is mostly free and you have more granular control over what you are doing.

Drag and drop (MS) is great when you have a couple of hours to complete something.

You don't mind MS being told what is good for you, and when you should switch platforms?

I listened to the latest .net web show on .net 2003 server, and couldn't get away from the fact that they were adding Linux-like features.  And .net adds java-like features.  Only "new" to MS developers.

I'm glad a lot of you hate free SW, but why argue merits if MS controls your fate anyway? 

I will concede that MS wins the *momentarily expedient* argument.

BTW, I thought the VB MS library documentation sucked.  Finding crap in there is grab bag city.  I felt like I won the lottery when I found something basic in VB6 documentation, or even on-line MSDN.  It always felt like MS was trying to sell me on everything rather than just tell me what I need to know.

I know, you get paid for what you do, and you get it done more easily with MS.  I am not blaming you for that.

Brian R.
Friday, May 9, 2003


You've hit the nail on the head.  Microsoft makes it easier to do what were paid to do.

At home I use mostly open source.  I find that open source makes it much easier for me to do stuff thats cool.  Unfortunately only a very few lucky people get paid to do cool stuff.

Most of us get paid to perform what's needed, and Microsoft are extremely good at facilitating that.

Ged Byrne
Friday, May 9, 2003

.Net is better than Java. Of course it is, its a newer and improved. Get over it.

Im an Architect, not a developer, so I try to look at the bigger picture. There are many compelling reasons for the developer to use .Net: mostly boiling down to language improvements etc. But to an Architect the maturity and openess of the supporting framework infrastructure gives Java its present edge.

J2EE for al its flaws is currently the standard for implementing enterprise level projects globally. The majority of enterprise level projects I've heard of, or been involved in, rely on connecting legacy applications and serving internet based clients: and Java is the defacto standard for both - even when including web services.

Why is that. We could debate this forever - as developers. But not as architects, or a CIO, having to justify strategic investment in the enterprise IT portfolio across a global and heterogenous platform base.

The answer boils down to openess and platform (infrastructue / vendor) independence. The platform independence of Java has been critical to its success. So to has the culture of openess that has engendered. It is probably true that Sun wants to control Java, and a Swing client is sluggish. However, Java is dominant on the server side and application integration market - the two critical areas of enterprise level architectures. The server is as critical as the legacy tier because of the ubiquity of the internet. And the server is the (middleware) glue that binds the internet client to the legacy logic normally running on relic host based code.

For architectural strategy,  the trade offs involved in platform independence is more importance than language independence. Why? Simple. Bridging a language is easier than bridging a platform. A language can be bridged in many ways, so that the languages can interoperate: Corba, Web-Services, .Nets CLR, etc. Natuarally the trade off is performance - but at least that can be countered by adding hardware.

But is far less easy to bridge a platform. Bridging a platform cannot be so easily countered with a few more servers. It requires a whole scale migration. And, when that includes legacy appplications dependent on the client side environment, that migration can easily cost billions.

Openess is the natural counterpart to platform independence. Openess of a system is not just about access to source code: although it's usually important. It affects both the atmosphere of trust, and the pace, and breadth of innovation.

Its may be true that based on language feautures alone, productivey is faster with .Net. But not when you factor in the richer choice of mature open source tools and frameweorks that Java has. In sum they offer free, open, production quality, off the shelf for virtually crticial activity -  from IDEs, build , test, issue tracking, documentation, source code control, to the servers that run the production services.

If successful and once complete, Mono may weakness Javas edge in platform independence - although it has yet to prove itself in the field. Its also open, which makes .Net available for innovation and adoption beyond immediate vision of .Net's owners. It also has a built in bridge for language interoperability. Very nice. Nonetheless, the .Net strategy is hampered by the fact that the .Net (open source) framework scene lags man years behind that Java. And the weight of industry opinion is an juggernaut that will take a long time turning, before CIOs and strategists start pinning their enterprise startegy on .Net.

Saturday, March 6, 2004

*  Recent Topics

*  Fog Creek Home