What is .NET?
CyberBry writes "There's a great technical overview of Microsoft .NET over at arstechnica: "In a remarkable feat of journalistic sleight-of-hand, thousands of column inches in many "reputable" on-line publications have talked at length about .NET whilst remaining largely ignorant of its nature, purpose, and implementation. Ask what .NET is, and you'll receive a wide range of answers, few of them accurate, all of them conflicting. Confusion amongst the press is rampant. The more common claims made of .NET are that it's a Java rip-off, or that it's subscription software. The truth is somewhat different.""
...where MS is going with this initiative. They seem to be touting portability, but what kind of portability? Certainly not inter-OS portability, that's for sure. No doubt that their Common Language Runtime is so heavily patented, encrypted, folded, spindled and mutilated that it will be quite difficult for someone to make it run on a non-MS platform. I know that quite a few Linux-heads are working on it. Prediction: if they ever get it right, MS will sue them about four microseconds after they post it on Freshmeat.
.NET have similar limitations, I wonder?
That being said, it does seem like MS is trying to wean themselves out of a strictly x86 world, and portable binaries is a good way to do that. What about performance? Java used to be well known for crappy performance because of the abstraction forced on the code. Will
In the end they will lay their freedom at our feet and say to us, Make us your slaves, but feed us. - Fyodor Dostoyevsky
language neutrality, but based on what I've
read so far, it's only language neutral if
your language is c# or close to it.
However, maybe they should repeat
the claim another million times; it worked
with getting people to think Windows
was secure.
(currently testing something about signatures here)
Just coincidental that Windows XP drops default Java support.
First, Java works fine in XP -- you just have to (automatically) download the VM or get it from Sun.
Secondly, the real advantage of .NET is that you can write in whatever language you want to and use components from other languages in your .NET programs. Those are hardly minor advances. Java has had a six-year head start, not to mention a vast amount of hype, and if it's the better technology, it'll hang in there. If developers like the .NET stuff better, they'll use that. In all likelihood, there will be a lot of different competing languages which will be good at different things. Nothing wrong with that, IMHO.
Well, you can use any language that happens to look very similar to C#, and which has a CLR compiler. Take a look at some of the languages that have been ported to .NET, and you'll see what I mean. They are modified to look like C# with different syntaxes. Example: Smalltalk# (or whatever it's called). Forget about dynamic typing anymore. Basically, you can use any language so long as it's mauled to look like C# (static typing, etc.) This multiple-language thing is not a big win, really.
I don't think they ever gave a straight-forward definition that clearly stated that .NET is this and this. If they did then I missed it. .NET could do. He introduced and chatted with several MS employees on some of the things .NET could do. I especially liked their comparison to Sun's J2EE Pet Store sample application. They've got this comparison available on the web at: .NET. After three of these we broke for lunch and I went home, still not being clear on what .NET is, exactly.
The show started out with a welcome message from the Microsoft Technology Evangelist...no, really, that was his title.
Next came Steve Ballmer who came out to work the crowd into a frenzy and tout all the things
http://msdn.microsoft.com/net/compare/default.asp
(I hope Sun posts a followup on Microsofts claims in this comparison)
After this they worked the crowd into another frenzy by randomly giving away three of the XBox games. Then they brought out some folks who gave success stories on implementing
All in all it seemed like I heard mention of several different items:
.NET
Visual Studio .NET
.NET Framework
.NET MyServices
.NET Server ...and probably some others I missed. I'm going to visit Microsoft .NET Defined and see if that helps clear anything up...
And Microsoft has provided the answer: Here is the runtime model, here are the APIs you call, here are some tools you can use, here is how to get help if you have problems.
Now substitute a web of connected personal computers -- the Internet -- for a single one, and developers are still asking, "How do I write an application?" And Microsoft's answer is, .NET.
DOS provided very few services to application writers, but with the Windows APIs, things got more sophisticated: support for graphics, for printing, for various other input and output devices, and eventually for networking. These were filtered through a standard Microsoft-provided operating system to various third-party devices, each with their own device driver, which performed the actual work.
In the .NET world, the "API" will handle Internet-related issues such as password verification, price calculation, payment, and so on. The "operating system" will be a set of always-available Web sites that may then dispatch the actual work to third-party sites -- the "device drivers" in the .NET model.
That is an excerpt from a longer article which I wrote back in November 2000.
- adam
But it's not "any language". It's a collection of languages that are nearly isomorphic with C#. In fact, there are currently many more languages, and more diverse languages, targetted to the JVM than there are to the .NET VM. See, for example, this list, which contains about 160.
Microsoft is developing a version of the .NET runtime and classes for FreeBSD. I have talked with the lead engineer of this project over e-mail, and he said that it's due to be out in late Spring. I asked him about the Windows Forms stuff, and he said it will be based on Tk (could someone explain the implications of this?). He also said that there are going to be very few UNIX-specific classes, but they hope people will develop those on their own.
I wonder why Miscrosft is developing a FreeBSD implementation? Could it be because substantial portions of Hotmail still runs on FreeBSD? If I remember correctly, MS has yet to successfully port all of Hotmail over to Windows. That being the case, I'd hazard a guess that it's a REQUIREMENT for them to do the FreeBSD thing.
I could be wrong, though. Anyone?
$0.02 (CDN)
Yes, Roger Sessions' article does make that point, and the guy running that JVM languages page is quite honorable to link to the criticism.
However, saying that the JVM isn't a suitable substrate because a lot of the language tools written on it are experimental is sort of a non sequitor.
- jon
Ganymede, a GPL'ed metadirectory for UNIX
This is Slashdot... who's producing commercial code? ;-)
Seriously, though, your point about legitimacy is well-taken and something was cavalier about originally. IF you're eligible, it's a great deal. If you're not, then it's illegal software.
Look, we're splitting hairs here about what "drops default Java support" means. To say that it drops support implies that the OS no longer supports Java. It does as long as you have a VM installed (which, again, happens automatically the first time you hit an applet).
Secondly, it's hard to argue that Java was particularly relevent to "recreational computer users" anyway. Very few desktop apps that "recreational" users depend upon are written in Java and applets are less common than ever, so what's the big? Look at it another way -- you get to choose your VM, and isn't choice a Good Thing?
I'm not sure what's "bull" about the fact that you can use multiple languages in the .NET CLR. You CAN. Yes, they have to be .NET aware, but isn't that kind of obvious? It's still a good idea and, by all accounts, it's implemented well.