“Much has been written about the virtues of .Net. But as Builder.com’s Lamont Adams pointed out in a recent article, “I’m confused…What is ‘.Net’ anyway?,” [OSNews wrote a similar article last February] the developer world is a long way from adopting .Net as the de facto standard for development tools.” Read the editorial at ZDNews. Another related .Net article is to be found at ZDNews: “Why .NET will benefit other platforms“.
I’m still confused, mostly the Unix and Windows developers I know cannot even explain what .NET is. I can tell you this, I have yet to see any movement towards a .NET framework.
I think they are having a tough sell into the enterprise market.
“Slow!”
We’ve recently received some .NET applications for use here, designed to replace some significantly inferior software that had been developed for Solaris.
Yet no one is using the new software. Why? It’s too slow, to the point that users are willing to forego the extra features (many of them very nice) and continue to use radically inferior software which performs decently.
I really don’t think the hardware is coming into play here much either. Their Solaris workstations are dual 900MHz Blade 1000s, and the Windows systems are 2GHz Pentium 4s. I place the blame for the speed problems squarely upon the massive runtime environment required for the .NET software.
I’m not disputing that you’re having speed problems, Bascule, but our experience has been almost exactly the opposite. We’ve replaced our few intranet Java- and ASP-based applications with ones written in ASP.NET and the performance improvement has been dramatic. Of course, we are the sort of developers who take care to make sure that things perform well.
“I place the blame for the speed problems squarely upon the massive runtime environment required for the .NET software,” you say, but I suspect the developers of the software. ASP.NET is well-known for its speed.
ASP.NET may be fast but it only runs on Windows boxes. The .NET runtime only runs on Windows boxes. The port for .NET to Linux only supports 30% of the APIs. The wonderfull runtime is just a virtual x86 machine; thus, when the .NET framework is finally ported to the non-x86 operating system (never) it’ll run too slow to be usefull. ASP.NET is going to become slower soon with Microsoft moving with Intel to the new 64bit chips; they aren’t backwards compatable with x86 so the high end servers will now have to interpert the runtime.
I like the Java runtime better. Sun designed a virtual processor with a clean microcode to be easyly interperted. Thus it may be slower the native code on most machines but just-in-time compilers are easier to write with the clean microcode. For server side code, JavaBeans are native and speed up the servers. The newer version on the Java VM is getting the ability to do paralle garbage collection which is also speeding things up.
In summary, Java has room for improvements. .NET can only get worse.
I am not a MIS person, but if I were, I would be trying to avoid giving MS a bigger and bigger slice of the pie. I would have no confidence that MS intends for .NET to be anything other than a way to “lock in” the dominance of windows. Sure, java is proprietary, but the company that owns it doesn’t own 97 percent of the desktops, 30 percent of the servers and have plans for “windows everywhere.”
MS’s business plan is obvious — preserve the windows/Office monopoly. Why would they ever make .NET crossplatform. Even if they did for a while, what would they do after Java was killed?
I really wish we could get even ONE reasonably intelligent tech journalist… I’ve not seen one to this date.
The fact is, there are sometimes where using .NET would be better than Java, and vice versa.
Joe Powers: The wonderfull runtime is just a virtual x86 machine…
…Sun designed a virtual processor with a clean microcode to be easyly interperted…
Ummm… As far as I can tell from having studied how the Java VM and .NET VM work… Well… True .NET code should be using “clean microcode” which is pretty darn similar to the “clean microcode” for the Java VM. (Of course, I might have missed something while I was looking through the documentation I have.) However, with .NET code, you can also mix in native x86 instructions. I believe that’s what Visual C++ .NET does by default. However, I believe Visual C# produces clean .NET code.
Joe Powers: …become slower soon with Microsoft moving with Intel to the new 64bit chips…
I think part of the reason for .NET is to make it easier for developers to move to 64-bit processors. Think about it, all the JIT has to do is recompile the .NET code for the 64-bit processors and it will (hopefully) be reasonably optimized and will run just fine.
As for the comment about .NET being too slow… So far, I have had fewer speed problems .NET than I’ve had with Java.
Which exactly is better? First of all, dotNet is only at version 1.0.x. Java on the other hand is already at version 1.4.x. Give Microsoft a little break if it’s still a little slow for you. As for me, it is slow. And, for some strange reason, it also slows down Windows itself for me. I’ve already installed the dotNet Framework on about 10 PCs and they all react the same way, fresh format or not. So dunno. Java is slow as well so there.
As a supporter of Java (which means I should be biased), I am hoping that Microsoft will somehow support to make dotNet cross-platform. Right now, their definition of cross-platform is Windows PCs, Pocket PCs, and MS Mobile Phones. If they make it truly cross-platform, then it might easily be adopted by most businesses since they will see that they can run their applications on anything, and not be married to a Microsoft-only platform. If Sun can do it, they should be able to copy that functionality as well. I mean, MS already has a monopoly on the destkop, so maybe they should think of sharing the technology to other platforms. Maybe create some sort of Apache module that run dotNET (unsupported by MS of course). Hey, they said they only have a problem with GPL, so Apache is OK (it’s BSD licensed). If this were to happen, then they could market the thing two ways. As a free alternative to Java, as well as sell their server software, saying that any dotNET applications will run better on it and supported as well.
Am I blabbing too much now?
If we set aside anecdotal opinions such as “dotNET is slower than Java” or vice versa, most opinions can be summarized as:
1. Java is better than dotNET because it is truly cross-platform.
2. dotNET is better than Java because interoperability via protocols is more important than the ability to deploy to multiple platforms.
3. I don’t care which is better, but I’m sticking with Java because I don’t like Microsoft.
My own opinion is a little more subtle. I agree mostly with (2), except that in looking at the System.* namespace in the .NET Framework, I really thing 95% of it is platform-neutral, but there are little pockets of highly Windows-centric stuff that I think they should have left out. I say this because I think it is *occasionally* useful to be able to deploy to multiple platforms, but chiefly for software like word processors, etc.
.NET isn’t going to be cross platform. It’s going to be a Windows only technology period. What about Mono you say? Mono will be its own implimentation, and although there may be some initial compatibility, I doubt there will be any more chance of a .NET application from windows running on Mono (unmodified) than a fish breathing out of water.
Microsoft’s .NET spec is going to be a moving target much in the same way win32 is. The WINE project has shown just how difficult it is to keep up. Microsoft isn’t going to make it easy for you to run .NET on anything other than their operating systems. Just as I’ve read else where, .NET is really just a Win32/MFC/COM replacement. If you want to do Windows programming, then .NET is the way to go, but I don’t believe for a second that it will be truely cross platform.
Maybe create some sort of Apache module that run dotNET (unsupported by MS of course). Hey, they said they only have a problem with GPL, so Apache is OK (it’s BSD licensed).
From the Go Mono web site (http://www.go-mono.com/index.html)
Sep 3rd, 2002: Apache integration
Sterling announced an Apache module that hosts Mono, and allows CIL code to run from within Apache, giving the module access to the Apache runtime. This uses the Mono embedding API.
If you check out the site, you will also note that the Mono folks are making a lot of progress on the ASP.NET front. Once you can run .NET code in Apache, getting ASP.NET to work (once they complete their implementation) shouldn’t be too difficult.
“1. Java is better than dotNET because it is truly cross-platform. ”
It isn’t. It works on a small number of widely used platforms.
C is cross platform. Rebol is almost cross platform.
3. I don’t care which is better, but I’m sticking with Java because I don’t like Microsoft.
This is the sort of reasoning that makes me want to bash your head against a wall.
You should build a db app with crystal reports and use it for a few seconds and check its memory usage. When I did it, I found out that dotnet used as much memory as Java. Now compare with a db app with rave reports made in delphi, it uses less than 10 megabytes of ram.
Dotnet felt slow and confuse. At least its visual tools.
On the server I didn’t like all that css being generated.
Make no mistake, it is not perfect.
Macromedia’s products are pretty good if you want something that just works.
But I reckonize that time is on Microsoft’s side
> “1. Java is better than dotNET because it is truly
> cross-platform. ”
> It isn’t. It works on a small number of widely used
> platforms.
> C is cross platform. Rebol is almost cross platform.
Yes, but that is not because Java is “hiding” any APIs or anything else from these other smaller platforms, it is because getting a JDK 1.4 compliant JVM running is a monumental amount of work AND because it costs so much money to do the testing required to certify your JVM (though I think this situation may have changed for non-profit organizations such as Apache). The worry with Microsoft is that they are almost guaranteed to eventually create Windows Specific APIs or hidden APIs that make their dotNET apps only work with Windows. The Java specification for the JVM and the standard APIs is out there for the world to see and implement. People may not like it when developers say they “dislike” or “distrust” Microsoft, but to me it is not a matter of trust. They are very honest about the fact that they will protect their core-business, a part of which is Windows (along with Office I guess). Giving developers the ability to create applications that will work equally well on Windows and OSs other than Windows will CLEARLY threaten that core-business, and thus they will eventually have to do something to make sure this does not happen. It’s as simple as that.
On a side note, why do people worry about full “Java” compliancy when they wonder if Java is portable. A JVM like Kaffe(http://www.kaffe.org) may not fully comply with Sun’s specifications, but it itself is very cross-platform and portable (even has an alpha version that runs on BeOS). If you like Java and its APIs AND are an open source advocate, don’t write Java code, write Kaffe code.
.NET isn’t going to be cross platform. It’s going to be a Windows only technology period. What about Mono you say? Mono will be its own implimentation, and although there may be some initial compatibility, I doubt there will be any more chance of a .NET application from windows running on Mono (unmodified) than a fish breathing out of water.
Id be willing to bet you could find a .Net app from Windows that could run on Mono today, though it definitely wouldn’t be very complicated (because although Mono has come a long way, they still have a lot to do).
As for .Net being cross-platform, I love watching people ignore the BSD port. Of course, only the standardized portion is implemented, but that does allow for cross-platform development if you stick to the standard (much like working with C/C++, or even Java).
I was putting forth (1), (2), and (3) above as reasons why some people prefer dotNET or Java, not necessarily reasons why I prefer it.
If you bothered to read the rest of what I wrote, I’m a dotNET guy, freshly out of the Java world. (Well, not completely. I still think client-side applets are useful. But I can deploy those as part of a dotNET solution.)
By the way, my big “dilemma” now is that my favorite development platform is dotNET, specifically ASP.NET, by my favorite OS is Mac OS X. (I’m writing this right now on my flat-panel iMac.) Will there ever be an OS that I’ll completely like? Not likely. I hope dotNET ends up on the Mac, but I’m not holding my breath.
It may not make much sense for Java shops to migrate to .NET, but a more compelling case can be made for Microsoft developers to move from the old Active Server Pages (which definitely needed overhauling) and COM (which probably didn’t, but will face increasingly diminished support from Microsoft). New versions of Windows and Visual Studio will increasingly focus on .NET. As for platform compatibility, Microsoft’s track record with COM was not impressive – they licensed a European company (Software AG) to port COM to Unix, then never rolled it out. Also, Microsoft is infamous for jerking both its customers and ISVs around from one release of its products to the next, forcing upgrades and code rewrites. I predict Mono will eventually be abandoned in disgust as Microsoft repeatedly changes directions and adds patent-protected APIs to lose their “tail”.
The main issue I have with .Net is that Microsoft’s security is a joke. Security has been important to almost every other computer company for a long time. But MS apparently didn’t wake up to the importance of security until just lately. You think I’m wrong? Then why is Bill G. and Steve Ballmer suddenly talking about their _NEW_ security initiative?
“As for .Net being cross-platform, I love watching people ignore the BSD port.”
The BSD port cannot be used for commercial purposes, so while it is capable of running .NET code, it’s of no use to businesses.
Bill: What does the “_NEW_” security initiative have to do with .NET or Java? Absolutely nothing. So how about next time instead of just using this as a medium to bash Microsoft (and for no good reason, as it was turely, literally pointless), how about you actually contribute something to the discussion.
Just curious.
apple, so because someone supports a technology from MS, that automatically makes them an MS junky?
Get real. Wheather you want to believe it or not (I think you do believe it, but are too feeble minded to admit it), .NET is a great piece of technology.
Java represents more than just cross platform or portable code. It is a billion dollar infrastructure saving device for our industry.
A silver bullet for 21st century business logic.
Something .Net isn’t. You write code in .Net, and your companies business logic is trapped forever on a PC.
If your company is sold, or acquired, and the merger requires business logic to run on Sun, As400, PARISC or any other processor infrastructure out there, your screwed. Time to rewrite your entire business logic or face billions in charges our industry faces everyday running sixteen different computing hardware infrastructures to make a buck.
Java for the first time releases us from doing this. Business can build and deploy business logic and be confident it will run on many different platforms as technology advances march forward in hardware.
That means business software becomes a strategic investment, not a risky expense to be written off if your company needs to change hardware platforms.
Protocols don’t cut it either. To be truly useful, business logic needs to be run on a target machine. Not simply trasnferring business data around the network to be processed. .Net and its entire premise is designed not too solve a business expense problem, but to make Microsoft more money and it shows in the entire API of .Net.
Thats not good enough if you want a scalable solution.
The Data and protocols not only have to be open, but so does the language api’s and algorithms that process the business logic.
Java accomplishes all this.
I can’t think of one customer I have replaced thier MS solution or other proprietary solution, that have not asked me why our industry hasn’t done this whole concept of portable virtual machines like Java, a whole lot sooner.
I think the biggest problem is the processing muscle to do this effectively, which I think with the P4’s, makes this practical and cheap enough to do.
Microsoft’s whole .Net solution is nothing more than a marketing piece designed to insure you have to buy more Microsoft products STILL, if you build anything with it.
So don’t do it.
Spend the money on bonuses, better health care and decent salaries for your employees instead of sending it all to Redmond.
Hack
.NET does sound like good technology. I have heard lots of positive things about it. While I am not a developer, I have also heard many people say that MS makes pretty damn good development tools.
I think the real problem is MS’s business plan is so dependent on “lock in” Bottom line, they make billions because you have to buy Windows, you have to buy office, you have to do this, you have to do that. You have to sign up for Software Assurance or pay full upgrade price, and on and on.
Look, this is not evil. It’s good business for MS. But it sucks for MS’s customers. MS’s customers would be better off with multiple competing office suites with a standard file format. MS’s customers would be better off being able to choose between Linux and Windows, because MS would have to provide lower prices, more features or both.
If I was Steve Ballmer, no way in hell would I make .NET truly crossplatform. I would adopt a strategy of promising to be crossplatform to defuse opposition and then make it not crossplatform. That is the smart thing to do business wise for MS. Even if I cannot prove that, I just am not willing to assume that a company with MS’s aggressive history would just get the “cross platform” religion, esp. when I can’t see how that would be anything but real bad for them.
No matter how good something from MS is technically (and LOTS of their stuff is NOT GOOD, it’s BAD), it always has that huge negative: MS’s financial interests lie perpetuating the windows monopoly.
Why do people say .NET WILL BE crossplatfrom and think that answers Java. Java ALREADY IS crossplatform. I am sure the mono folks are well intentioned, but they need cooperation from MS to bring it to market timely and to keep it abreast of changes.
The greatest advantage Windows has over Linux currently is all the windows apps. Why in hell would MS EVER allow all those apps to run equally well on Linux. I just cannot see this.
I went there and it states that one of their objectives is to “enable Unix developers to build and deploy cross-platform .NET Applications.” I did not see any statement that Mono would allow Windows apps to run on Linux.
Is this a one-way “crossplatform” development tool?
Don’t you think that .Net is about buying and selling and “securing the internet”? Which IS part of the “new initiative.” So this fits in perfectly and isn’t pointless.
“.NET does sound like good technology. I have heard lots of positive things about it. While I am not a developer, I have also heard many people say that MS makes pretty damn good development tools.”
MS is very good at development tools and their documentation, even apple developers admit that. http://daringfireball.net/2002/08/interview_pepper_author_maarten_h…
“I think the real problem is MS’s business plan is so dependent on “lock in” Bottom line, they make billions because you have to buy Windows, you have to buy office, you have to do this, you have to do that. You have to sign up for Software Assurance or pay full upgrade price, and on and on. ”
I couldn’t understand what you are saying? How do you relate .net with office. What’s the logic there? Of course Microsoft wants you to buy your products? Apple wants you to buy their products. No company exist that doesn’t want you to buy their products. You get itools for free originally and now you have to pay for it. For Oracle you have to buy everytime you use the database, realtime’s server has a fee per stream served, on and on. Every company has interesting licensing issues. I mean what you are saying is not much different from saying “hey look Microsoft is selling stuff for a fee, oh my god it is not acceptable. Microsoft is evil”. For the lock in issue consider apple first. WHen you buy apple that’s a true lock in in terms of both hardware and software. Also where is the lock in there? There is nothing in your statement, other than bunch of Microsoft bashing.
“Look, this is not evil. It’s good business for MS. But it sucks for MS’s customers.”
:)) Hmmm what does suck for customers? Software Assurance, the so called lock in issue. Microsoft doesn’t create a lock-in, it is the customers who create that effect. If MS does a very good product, and millions of people select that product, later on it becomes harder to choose another one, because almost anybody you know would be using it. This is true with Apple and Linux. If almost 97% people select one of these alternative platforms, will you accuse each of them having a lock in plan? Especially once you buy Apple, you don’t have much choice not only in software, but also in hardware. That’s a true lock-in.
“MS’s customers would be better off with multiple competing office suites with a standard file format. MS’s customers would be better off being able to choose between Linux and Windows, because MS would have to provide lower prices, more features or both.”
I think MS is really competitive, considering that Mac OS X which is partially based on free labor, is charged for 129$, whereas an upgrade for MS Windows XP costs far less. So I think MS charges Windows XP quite competitively. Furthermore if you buy XP with a new PC it costs far less than the retail price. So overall XP supports more hardware and more software than Mac OS X, but still Mac OS X is almost as expensive as Windows XP. I think Apple should charge less than Windows XP, considering the technical superiority of Windows XP compared to Mac OS X.
“If I was Steve Ballmer, no way in hell would I make .NET truly crossplatform. I would adopt a strategy of promising to be crossplatform to defuse opposition and then make it not crossplatform. That is the smart thing to do business wise for MS. Even if I cannot prove that, I just am not willing to assume that a company with MS’s aggressive history would just get the “cross platform” religion, esp. when I can’t see how that would be anything but real bad for them.”
Speciculation is a nice tool to provoke people’s ideas against a company, but we don’t know exactly what MS will do. I believe that if customers demand MS to support other platforms for .net, MS will do it.
Besides these MS bashing, logically I believe that MS should support .net in more than one platform, since .net is aiming for the server side mostly. If I am an IT consultant I wouldn’t recommend .net to my customers unless there is support for unix. Mono is trying to do that, but it is way behind for qualification with lost of bugs. MS should actively support Mono if they want to win customers. Windows lock-in is not that important, because I have faith in windows, that is it will be a very good OS in the future and considering a lock-in into any OS I would lock in to Windows rather than any other OS (ie. Mac OS X), but if your business gets bigger and bigger and you decide to switch to sun servers, you will have a problem with your software. That is hardware lock-in is a more important issue for me. For that purpose linux is much better. You can start with PCs, x86 servers, but still can switch to bigger servers later on.
Issue 6.
“Id be willing to bet you could find a .Net app from Windows that could run on Mono today, though it definitely wouldn’t be very complicated (because although Mono has come a long way, they still have a lot to do).
As for .Net being cross-platform, I love watching people ignore the BSD port. Of course, only the standardized portion is implemented, but that does allow for cross-platform development if you stick to the standard (much like working with C/C++, or even Java).”
You’re talking about at the present time. Microsoft isn’t going to leave things as is. It is going to chang, and when it does MS isn’t going to give everyone the new specs. I wouldn’t count on Mono and .NET being compatible for long.
I also wouldn’t count on MS keeping the BSD port current either.
I don’t think anyone doubts that Microsoft only wants .NET to be on Windows.
.net thats a funny one two of the guys from my office went to a MS conf to hear about .net and came back telling us that all that was discussed was AD and a few other tidbits that have all been around since W2K.
Truth is .net is nothing more than all the old programming languages with a middle layer to join them (well never mind that the middle layer is already turning out to be buggy and have NO security at all. so basically it is MS going one more step closer to all languages should be like VB (yse the middle layer does passing–as text like object making it even slower than Java (hey I like Java but you have to admit compared to C Java is slower–but not any more compared to .Net implementations Java is a speed demon)
.Net i my book is nothing more than a marketing campaign to try to get people to go all MS and increase the MS monopoly. The middle layer which is the only thing new in .NET is terriblly buggy, slow and insecure and the c# language is a joke! I have started considering MS as a major problem to the worlds educational systems. We are not becoming like the Jetsons where Elroy can do Quantum Physics at the age of 8–rather we make the computers easier to use and turn our kids into mindless simians. I would rather have the kids have to work a little and actually get a real education (compare the computing skills of VB to C/C++&Java programmers and you will generally find that the C/C++&Java programmers think through the problem and get a real solution where the VB solution is closed solution and non-extensiable–In general the C/C++&Java programmers seem to think more before commiting the idea to code and get better more efficient solutions.
It is no longer Java vs .NET or Linux vs MS. It is becomming MS vs education-for me let me just say you can keep your .Net away from me
The value of MS as a business, I think anyone on Wall Street would say, is that windows has near total dominance on the desktop and that people for the most part “have to buy it.” The same is true for Office for business users. Everyone is using Word files and nothing will open them glitch-free. All the non-MS business apps are written for windows, all the games, essentially ALL the software. No other OS will run all those apps.
Let’s call this “windows everywhere”. That is how MS makes its billions. If they want to continue making those billions, they have to either (1) maintain their current “windows everywhere” business plan or (2) develop an alternative plan that is as profitable. I would suggest they will try for #1 until it becomes clear it won’t work.
Your points about Apple are just a distraction. So let’s say you’re right and Apple is trying to achieve lock-in. Who cares? MS is still wedded to the “windows everywhere” business plan which depends on the lack of effective competing platforms. That is why I don’t think Ballmer will make .NET such that all windows apps run on Linux.
The only exception to this would be as follows. Maybe MS is trying to shift the windows OS monopoly to a .NET application development monopoly — one standard core API that is owned and controlled by MS that everybody has to use. So that everybody developing for these APIs have to pay MS (and then these costs are recouped from consumers in the price of the software). I am not sure how this would work though, since I assume there would continue to be alternative development tools for the other platforms.
Sergio you are mistaken that I have a problem with MS making money. I don’t have a problem with anything. I am merely stating the facts as I see them. Here are those facts:
Normally, monopolies are not good for consumers. Why? Because there is no competition. Competition leads to better products, lower prices. I think history is pretty clear on this.
Monopolies are great for the companies that hold them. This seems pretty obvious. You own the market for the product, you continue to rake in money as long as there is demand for the product. So it makes sense that a profit-seeking company would try to obtain and maintain a monopoly. Usually, this is very difficult. In the case of OS’s for open x86 hardware, a monopoly happened because “compatibility” was very important and continues to be. IBM PCs burst on the scene, MS had written the OS and early on achieved market dominance and then everything else was “not compatible.”
I don’t want to say MS did not deserve this (although an argument could be made to this effect). I would prefer to say MS did deserve it, earned billions and was rewarded.
But these rewards do not need to continue on forever. Yes, MS has the right to make money. But consumers also have the right to desire competition for windows. I mean, who likes being in a bargaining position with a monopoly? It’s kinda hard to get a good deal, no?
I think the desire for competition with Windows, and the boosting of Linux by commercial entities that make money from Linux (ie IBM, Oracle), will likely result in Linux achieving status as real competition for MS. This is not a certainty however. So the only smart thing for MS to do is fight it (behind the scenes of course, since customers like competition).
It is no longer Java vs .NET or Linux vs MS. It is becomming MS vs education-for me let me just say you can keep your .Net away from me
Amazing deduction coming from someone lacking said education. Spend some time enlightening yourself before you pretend to come here and enlighten us. Your mates from the office obviously spent more time at the bar than at the conference.
In the PC programming language wars it’s down to Java (Sun’s own proprietary stuff) vs. Microsoft (their own proprietary stuff) vs. Borland (and their own proprietary stuff).
I’d rather use Sun’s proprietary stuff, but then be able to run on a client and server platform that is not proprietary to MS and run and office suite that is not proprietary to MS.
as compared to,
Using MS’s proprietary PC programing language on its proprietary OS (server and client), and using its proprietary office suite and its proprietary media files and god knows what else into the future leveraged off of these.
why do we need to give the whole shebang to one frickin’ company? how can that possibly be good?