Joshua Prismon's Technical weblog

.NET News Now

Slashdot Comment

It's posts like this that make me want to abandon Slashdot after 5 years of faithfully following, commenting and posting stories. Let's set some things strait: (before anyone accuses me of being Microsoft marketting, I have no links to the company, and am a huge fan in OpenSource. I have both a windows and a Linux box, and I spend more time hacking on Linux for fun, and hacking on .NET to get paid....)

1) Microsoft has completly committed to .NET. Longhorn's new features are all managed code.

2) Microsoft's most profitable Business Aplications are being ported as we speak. BizTalk, Office, and the OS all have managed serviced components now, and the next version of SQL will have extremly rich CLR support.

3)My experience as a Technologist is the reverse. We have gone from no .NET projects (all perl and Java) to four this year, and my guess is that we will see as many as six or seven next year (smallish shop).

4) The knowledge curve works for you. My experience is that in Assembly 10% of stuff is "easy" the rest you need to look up, in C, 40% of the stuff is easy, the rest you need to look up, in C++ it's about 50/50, in Java it's closer to 75/25. In C# on .NET, it's about 90/10. That last ten can be a bitch, but no less then Java's 25%.

5) Having strugled with AXIS and several other varients of Web Services for Java, I have to say, they pretty much suck rocks (GLUE excepted, although at least the last version I was playing with still equired source access to code to generate services). On the other hand, the extremly rich API and Metadata abilities in .NET make web services insanly simple (maybe to simple, new developers may use them too much).

 6) Interoperability rocks in .NET. Not just platform (mono is doing a great job) but also interop based on the WS-I stack.

 7) Java is at best a niche platform. When was the last time you saw any non server/specialized software written in Java? Of the top ten software software packages (Windows, Office, SAP, PeopleSoft, Oracle, SQL, Quicken, Quickbooks, TaxCut, Microsoft Money) how many of them are actually written in java? 0/10. Microsoft owns 90% of the CPU market. Microsoft has decided to slip .NET until Longhorn, but it is out there in the hands of extremly productive developers.

 8) .NET has only been released in a non beta form for about 1 year. Since then Microsoft has already done a major upgrade to the development platform, and a major release of the CLR. Whidby will add more features.

9) Reflection, Inspection, Attributes and Events. Simpler in .NET, more powerful in .NET.

10) ASP.net is a solid step up from ASP. Seperate of presentation and business logic is much more solid, the rendering pipeline is more powerfull, and the security features rock.

11) ADO.net makes simple database projects (CRUD) easy. Will anyone use Datasets for a large enterprise application? Probably not, but it is still there and powerful.

12) Sun fails the Dogfood test. Number of critical applications in Solaris that are or are being ported to Java? None, ask Sun why that is (not scalable, not fast). How much of Windows is being ported? The whole Shabang (see Longhorn). I will be happy to re-examine Java seriously for ongoing work when Sun's rm6 utilities (including the command lines) are written in Java.

13) Not only that, Sun is now lifting features from .NET, clearly there is some new and cool features here to get the ever slow sun to actually change their precious language.

14) Compact Framework. Share code between WinCE devices and your platform. Tie them together via Webservices with a single click of the mouse.

15) Rich clients. Have the interoperability and accessability of the web without stateless programming enviornment and pretty graphics.

16) Integration. Don't want to rewrite all of your companies security? Use Domains and Roles. Don't want to implement your own message Queue? Already There. How about Transactions, JIT ACtivation, automagic threading? Done.

17) J2EE.... say no more. Look guys, Microsoft's business practices suck. On the other hand, Microsoft employees some of the brightest people on the planet, and the CLR/CIL stuff is fantastic. You can either keep on trolling (ala Carlos) or you can actually notice new and cool technolgy being developed and taken advantage of. Frankly, all of you Java contractors, please keep this up. I like having more work offers then I can take for .NET programming.

Comments

Phil Scott said:

That is exactly the post I wanted to make, but am far too hung over to do so. There were soooo many posts on Slashdot that I wanted to refute, I just didn't know where to begin...
# July 8, 2003 2:07 PM

Duncan said:

While you are preaching to the choir at .netweblogs it is a very big choir for a simple reason - Microsoft make the best developer tools at the moment and have done for the bulk of the last 15 years, IMO.
# July 8, 2003 2:13 PM

Frans Bouma said:

" 7) Java is at best a niche platform."
Err... not really. Java is bigger than .NET when it comes to server side applications, never forget that.

For the rest, it's slashdot: of course they're bitching about .NET, you should start worrying when they stop doing that ;)
# July 8, 2003 3:21 PM

Jorge Chandra said:



I don't know what Slashdot post your referring to (I don't see the link), but you yourself seem like a Slashdot troll.
<br>
It seems from your post that you are mainly comparing .NET and J2EE, and I must say you appear to see the world trough .NET coloured glasses or trough some kind of Reality Distortion Field(TM).
<br>
Some of your points are just childish fanboyism, so I will address the others.

<p><i>5) Having strugled with AXIS and several other varients of Web Services for Java, I have to say, they pretty much suck rocks (GLUE excepted, although at least the last version I was playing with still equired source access to code to generate services). On the other hand, the extremly rich API and Metadata abilities in .NET make web services insanly simple (maybe to simple, new developers may use them too much).</i></p>

Axis is without question more difficult to use than it should, but it's getting better, and if you have the patience to wait for mono, waiting should not be to hard for you.


<p><i>6) Interoperability rocks in .NET. Not just platform (mono is doing a great job) but also interop based on the WS-I stack.</i></p>

Interoperability with other platforms? So I guess the "other" platforms are also interoperable with .NET ... what's your point?
<br>
Mono is still wearing diapers at the moment, but as you say it's progressing nicely. It remains to be seen if Microsoft will tolerate the existence of competition using their own thechnology... I am skeptic, but I really hope I'm wrong.
<p><i>7) Java is at best a niche platform.</i></p>
?!?! ... surely you jest

<p><i>When was the last time you saw any non server/specialized software written in Java? </i></p>

Every time I use my cellphone

<p><i>Of the top ten software software packages (Windows, Office, SAP, PeopleSoft, Oracle, SQL, Quicken, Quickbooks, TaxCut, Microsoft Money) how many of them are actually written in Java? 0/10.</i></p>

This stuff is also not written in .NET

<p><i>Microsoft owns 90% of the CPU market.</i></p>
I though that Intel did... and only x86


<p><i>Microsoft has decided to slip .NET until Longhorn, but it is out there in the hands of extremly productive developers.</i></p>

There are "extremely productive developers" in other platforms as well.


<p>
<i>8) .NET has only been released in a non beta form for about 1 year. Since then Microsoft has already done a major upgrade to the development platform, and a major release of the CLR. Whidby will add more features.</i>
</p>
For some people that is a signal of immaturity.

<p><i>9) Reflection, Inspection, Attributes and Events. Simpler in .NET, more powerful in .NET.</i></p>

more powerful in .NET than in Java? ... How so?... This is not a rhetorical question, I really want to know.


<p><i>10) ASP.net is a solid step up from ASP. Seperate of presentation and business logic is much more solid, the rendering pipeline is more powerfull, and the security features rock.</i></p>

No argument here, If I never touch ASP again I will be a happy man, but in the Java world there are better things than ASP.NET... I like Tapestry myself.

<p><i>11) ADO.net makes simple database projects (CRUD) easy. Will anyone use Datasets for a large enterprise application? Probably not, but it is still there and powerful.</i></p>

In Java
# July 8, 2003 4:45 PM

Jorge Chandra said:

"11) ADO.net makes simple database projects (CRUD) easy. Will anyone use Datasets for a large enterprise application? Probably not, but it is still there and powerful."

In Java you can make simple database projects (CRUD) easy by using any of the great OR mapping frameworks available. I'm not a fan of OR mapping (in reality I don't like it at all), but the frameworks are there and they are powerful (the last time I looked at OR mapping frameworks for .NET they palled in comparasion.)

"12) Sun fails the Dogfood test. Number of critical applications in Solaris that are or are being ported to Java? None, ask Sun why that is (not scalable, not fast). How much of Windows is being ported? The whole Shabang (see Longhorn). I will be happy to re-examine Java seriously for ongoing work when Sun's rm6 utilities (including the command lines) are written in Java."
What do you consider to be "critical applications"? Java and C# are not appropriate languages to write Operating System kernels... I'm not sure what are you talking about.

The Sun One server that ships with recent versions of Solaris is written is Java, is that critical enough for you?


"13) Not only that, Sun is now lifting features from .NET, clearly there is some new and cool features here to get the ever slow sun to actually change their precious language."

Yes they are, and I hope that they continue... there is good stuff in .NET, and I hope they look to other places to look for inspiration.


"14) Compact Framework. Share code between WinCE devices and your platform. Tie them together via Webservices with a single click of the mouse."

That is indeed cool, but wake up and smell the Java, most mobile devices are already J2ME capable and the industry is not moving to WinCE, I mostly see WinCE on board car computers (talk about niche)... there are several other devices using WinCE but Microsoft is very far from extending the desktop monopoly to mobile devices.


"15) Rich clients. Have the interoperability and accessability of the web without stateless programming enviornment and pretty graphics."
Cool ... just like Java applets... or like "flash remoting".


"16) Integration. Don't want to rewrite all of your companies security? Use Domains and Roles. Don't want to implement your own message Queue? Already There. How about Transactions, JIT ACtivation, automagic threading? Done."
Other platforms offer these features also.

"17) J2EE.... say no more.</i> </p>

?!? I develop in .NET and J2EE and I really don't understand why shouldn't i say no more.

"Look guys, Microsoft's business practices suck."

Microsoft's business practices are criminal... the courts have said so, you may not agree, but that is another issue. You seem to act as if Microsoft lost some sort of bizarre popularity contest - they lost a legal court case, a loss that even survived an appeal by them, in a court where they had unbelievable opportunity to disprove the claims, during a trial that was conducted according to defined and fair rules.

"On the other hand, Microsoft employees some of the brightest people on the planet"
They are no more brilliant than the the people that work in other companies.

Try to remember that: "If you are one in a milion, there are thousands of people just like you"... and you may bet that some of those people work for your competitors

Regards,
Jorge Chandra
# July 8, 2003 4:49 PM

Jim said:

I currently run an entirely OpenSource server. I like the OpenSource community, everything it stands for and everything it provides me. I also agree with almost every point made by Jorge.

Here's the kicker though. I get a job offer from my friend for some web design and the second I accept he drops an ASP.NET book in my lap. Why? Install 2k3 server and your up and running that's why. Everyone in the company grew up on Windows and Dos. It feels right and the can pop up remote desktop and login from their Windows machines at home. It doesn't matter what features it has, how powerful it is, or how easy it is to program. What is important is Microsoft has put there colossal wait behind this and they'll shove it down the throat of the masses like they do everything else. In short like it or not bend over.
# July 9, 2003 7:11 AM

Nick Lothian said:

You do trackback? There's a bit of discussion going on on some Java blogs about your comments here. See http://www.mackmo.com/nick/blog/java/?permalink=dotNETComments.txt
# July 9, 2003 1:03 PM

Jim S. said:

You forgot to mention the simplicity of integrating with unmanaged code. My company switched to .Net a little over a year and a half ago from C++. Some parts of what we do are very processor-intensive, so we kept those bits in C++ and get the speed boost there while still being able to develop the rest of the product in C#.

The only "failure" in .Net was in marketing. The choice to slap .Net on every product in the world confused the a lot of people, but they seem to have realized that now.

As for my company, we're having a lot of luck hiring Java programmers and getting them to switch.
# July 9, 2003 2:21 PM

Joshua Prismon said:

First of all, I was not responding to a slashdot comment, I was responding to a frontpage article on slashdot.


I don't really feel the need to respond to this article but just read the comments where a certain Jorge Chandra very nicely and politely gives a more educated opinion.

Really? Okay. How many .NET projects has Jorge done? I have three major java projects and four major .NET projects under my belt.

Don't get me wrong, most of this article was responding to the mindless .NET bashing coming out of the Java and Opensource community (the later of which I am a proud member of mostly). I love Java. However, I am far far more productive in C#.

I am accused of being a troll simply for liking .NET (from the evil Microsoft) more then Java (from the most virtuous IBM and Sun), fine so be it.

The biggest problems I have with Jorge's comments are as follows:
-----------------------------
Axis is without question more difficult to use than it should, but it's getting better, and if you have the patience to wait for mono, waiting should not be to hard for you.
-----------------------------
Why wait? I can do it now.

-----------------------------
Interoperability with other platforms? So I guess the "other" platforms are also interoperable with .NET ... what's your point? -----------------------------
Yes, but I can code it two to three times faster in .NET.

-----------------------------
Every time I use my cellphone
-----------------------------
Which is specialized software. I want to see a mjor consumer application running Java? Still waiting.

-----------------------------
This stuff is also not written in .NET
-----------------------------
But it's only a matter of time before it will be.
-----------------------------
For some people that is a signal of immaturity.
-----------------------------
And for others, it's a sign of innovation. (apparently Including you from your response to Java picking up ideas from C#)


more powerful in .NET than in Java? ... How so?... This is not a rhetorical question, I really want to know.
-----------------------------

Reflection and Inspection are both built in at a fundamental level into the entire runtime. (As is Java.lang.Reflection). But where it gets far more powerful then Java's setup is the idea of Attributes. Attributes mean that you can tag arbitrary portions of code (class definitions, methods, paramaters, etc) with descriptive items. While reflection enables things like autoloading, it almost always takes a horribly complex XML configuration file (tag or whatever) to describe exactly how something should interoperate) to actually let a outside engine work on code. For example:

[SharedClass]
public class NewClass
{
[TellServerToCallMe]
public void Call()
{
// do stuff
}
}

by marking each portion of the class with a attribute it becomes possible to "clue" outside engines working on compiled code on what to do.

For example:
[WebService(namespace="http://prismon.com/test"]
public class ExposedService
{
[WebMethod]
public int DoStuff(string information)
{
}
}

It's that simple to define a webservice (complete with wsdl) to the outside world.
-----------------------------

The Sun One server that ships with recent versions of Solaris is written is Java, is that critical enough for you?
-----------------------------

No. It is not a critcal system resource (We have over two hundred web sites deployed for customers at my company, exactly zero use Sun One). Once again, I want to see it actually used in something critical (like th
# July 9, 2003 3:33 PM

Jos Dirksen said:

I responded to your list here:

http://www.mackmo.com/nick/blog/java/
# July 9, 2003 4:55 PM

Jorge Chandra said:


[The character limit by post is somewhat annoying]

"Really? Okay. How many .NET projects has Jorge done? I have three major Java projects and four major .NET projects under my belt."

I have you beat on both accounts, it's true however, that my Java experience is larger that my experience with .NET


"most of this article was responding to the mindless .NET bashing coming out of the Java and Opensource community"

So you choose to reply with mindless J2EE bashing.


"I am far far more productive in C#."

Good for you... I'm not. But that's irrelevant, because the opinion of two people doesn't a "truth" make.


"I am accused of being a troll"

I didn't accuse you of anything, I stated that you looked like one :-).. as in... there is a possibility.

"simply for liking .NET (from the evil Microsoft) more then Java (from the most virtuous IBM and Sun), fine so be it."

And it was a possibility not because you like .NET more than Java, but because you posted inflammatory remarks and patently false statements with zero supporting facts, which btw is perfectly OK, this is your weblog after all, you may choose to fill it in whatever way you want.


"-----------------------------
Axis is without question more difficult to use than it should, but it's getting better, and if you have the patience to wait for mono, waiting should not be to hard for you.
-----------------------------
Why wait? I can do it now."

With Axis you also can do it now, I prefer GLUE myself, but there is nothing stopping you from using Axis *now* ... well time constraints perhaps :-)


"-----------------------------
Interoperability with other platforms? So I guess the "other" platforms are also interoperable with .NET ... what's your point? -----------------------------
Yes, but I can code it two to three times faster in .NET."

Well and I can code pretty god damn fast using Java... so at least for me that's a non issue.
To see how easy the development of an Webservice in Java can just look at this demo:
Test Driven Development with Eclipse
Keep in mind that the author is also demonstrating other stuff, the actual development of the Webservice is even easier.
# July 9, 2003 6:05 PM

Jorge Chandra said:


"-----------------------------
Every time I use my cellphone
-----------------------------
Which is specialized software."

Well... I can argue that all software is "specialized" software, I don't really see your point.


"I want to see a mjor consumer application running Java? Still waiting."

How about the load of Java Applets over at Yahoo games used by thounsand of people everyday?
Or how about EDonkey? wich is P2P softare used by many?
(I don't recomend EDonnkey, it's spyware crap).
Prey tell ... are there any major consumer applicationa running .NET?


"-----------------------------
This stuff is also not written in .NET
-----------------------------
But it's only a matter of time before it will be."


This is more a statement of faith that one of proof.
I really doubt that PeopleSoft, Oracle, Quicken and Quickbooks will port their codebase to .NET, but you may choose to believe whatever makes you happy.



"-----------------------------
For some people that is a signal of immaturity.
-----------------------------
And for others, it's a sign of innovation."

I have no problem problem with innovation... but the passage from .NET framework from 1.0 to 1.1 didn't bring any earth shatering experiences.
It was more of spit and polish kind of thing, wich goes back to the immaturity thingy.
We will see what 2.0 brings, just today I found myself wanting to use templates with ASP.NET I really hope that's included.


<Snip explanation>

Thanks for the explanation... I apreciated.
Althoug the ideia of atributes and metadata is not yet incorpared in the main Java distribution (it will be in the next release) there is nothing stoping you using QDox or XDoclet for your purposes right now.
For doing magic with java code I particulary like Javassist , and as far as know there is nothing in .NET that does that, I heard some talk about "Partial Classes" but nothing very concrete.

Regards,
Jorge Chandra
# July 9, 2003 6:08 PM

Dave said:

The comment about Oracle is wrong. No, the database engine itself is not in Java, but nearly all the configuration and management tools in Oracle 9i and 9iAS are Java and J2EE. Even the installer is Java.
# July 9, 2003 7:55 PM

Nick Lothian said:

More comments: http://www.mackmo.com/nick/blog/java/?permalink=MoredotNETvsJava.txt
# July 10, 2003 1:56 AM

Laszlo Marai said:

Funny reading. I have to say that I've never used .NET and I don't like MS's strategy, but I'm not a supporter of 'the other side' (though I use and like java).

However... how do you know that .NET is faster than java? You say that .NET is fast because Longhorn is going to be implemented partly on top of it, and java is no fast, because solaris isn't implemented in it. Not that Longhorn won't be released for at least two years and the avarage CPU performance will be more that two times as much as today. So basically you are 'comparing' java on today's hw against .net on tomorrows hw, based on not yet implemented software. ;) That's an argument...

I don't see why is that 75/25 - 90/10 difference between java end .net. You are talking about the supporting libraries, aren't you? Well, with .net all you have is the core libraries, with java you have a lot of free/commercial solutions to choose from. OK, I'm being unfair, because there are 3rd party libraries fro .net too, and the fact that for java there are a lot more of them, is caused (at least partly) by the fact that java has been aroound for 8 years now.

Anyway your argument doesn't really hold as currently the situation is that there are more ready made solutions for java. OK, Axis might not be the right tool for every one (I don't know that, just a few guys who fall for it), but still you have a lo of choices if you want web services. E.g. sun's JAX-RPC, wich is probably the easiest way to do it in java. You basically do the same as if you were writing an RMI service. Beat this.

.NET for small devices. Oh, we don't have such a thing with java, in billions of phones. Or do we have? J2ME?

And so on... face the fact, you are biased too. ;-)
# July 10, 2003 11:42 AM

Joshua Prismon said:

Oh... no question that I am biased. .NET makes me far more productive and efficent then vanilla Java. Waiting on eclipse to finish up (I love some of the features) and the playing field might be more equal.
# July 10, 2003 1:23 PM
Leave a Comment

(required) 

(required) 

(optional)

(required)