Microsoft and its allies have quietly expanded an effort to gain acceptance for C#, the software giant’s competitor to Java and a foundation for its next-generation Internet services. Read the report at CNet.
Microsoft and its allies have quietly expanded an effort to gain acceptance for C#, the software giant’s competitor to Java and a foundation for its next-generation Internet services. Read the report at CNet.
“Sun had pledged to make Java a standard, first through an ISO subcommittee and then through ECMA, but reversed course in 1999, saying it wasn’t willing to hand off control of the technology. Instead, it formed the Java Community Process, which lets other companies help control Java but still gives Sun a position of power.”
“Sun’s reluctance to let go of Java, which peeved allies as powerful as IBM, was not an act of mere egotism. Microsoft had licensed Java for its own use but had modified it in a way that undermined its promise of working identically on different computer types. The issue was at the heart of a four-year legal battle between Sun and Microsoft.”
Isn’t it interesting that for as evil as Microsoft is supposed to be, they keep doing all the righ things with .NET? It is becoming clear that Sun is not an underdog worth cheering.
Facts: Microsoft’s C# is better than Java as a language. The Microsoft CLI is faster than the JVM. Multiple languages *does* make a difference (i.e. VB.NET, C#, Java, Delphi soon). Standardization is good. ECMA and ISO certification and standardization *does* allow for competition.
It is becoming clear that the question is not between Java and .NET, but .NET and Mono (and other competitors in the future). As soon as someone creates a Java byte to .NET CLI converter (and vice-versa) it is over for Java.
Now, Java will always exist and you can make money programming in it forever. But as the sun has set on COBOL and others, it is late afternoon for Java.
That is my take.
My take:
As long as Microsoft fails to support more platforms, the .NET CLI cannot really compared with Java’s JVM.
Sun always had JVMs, even JDKs for more than one platform.
Currently they have JREs for Solaris, Linux, Windows, MacOS, several handhelds, smart phones, etc.
Sun’s idea ws to create a cross platform environment and to show that they succedded, implemented the necesary runtime on several platforms.
Microsoft tells us that are up to something similar, or even superior, but one cannot evalute their success because there is no support from Microsoft’s side for platform where Java already succeded.
therandthem wrote that the .NET CLI is faster than the java VM.
Where? on Windows? How are the stats on Sun’s homeland, Solaris?
How does the CLI compare to an IBM JVM when running on AIX?
Currently the crossplatform capabilities of .NET are pure vaporware.
Cheers,
kevin
therandthem wrote that the .NET CLI is faster than the java VM.
Where? on Windows? How are the stats on Sun’s homeland, Solaris?
How does the CLI compare to an IBM JVM when running on AIX?
How about just testing the FreeBSD port and getting back to us, or wait for Mono. I don’t care about cross-platform capabilities (and if I did, I’d simply use standard C++ and hand-port it) for the majority of what I do, or I might spend some time checking it out myself.
It is becoming clear that the question is not between Java and .NET, but .NET and Mono (and other competitors in the future).
First either Java or .NET has to win popular acceptance over native code.
In my experiences as an end user and a system administrator, I find that, especially in the case of Java, the applications are a pain and a hassle to use. They’re slow, require more setup and more configuration, and seem much more finnickey. GUI applications are not cohesive with the rest of the environment and have great trouble interfacing with other services on the OS (i.e. printing)
In the case of .NET, speed was the primary issue. We recently gave the users around here a .NET application which was intended to replace a similar utility for Solaris. Between the hassle of copying the files they needed to process to their Windows workstations and the overall slowness of the application, users around here decided the added features of the .NET application just weren’t worth it, and chose the somewhat buggy and feature barren native Solaris application instead.
(quick hardware specs: the PCs are 2.0GHz P4s running Windows XP, and the Sparcs are Blade 1000s with dual 900MHz processors)
C# is the only language to use if you are going to use the .net framework. C++ is crippled, as is every other language that gets programmed to the framework….I am no sure about VB.NET though.
Well, I could test with Mono.
I want to test with a CLI provided by Microsoft.
I am not testing Java speed with Blackdown’s either.
You’re right that crossplatform applications can be achieved by using C++ too.
I am working in a company that compiles the same soruce tree on servera platform every night.
We’re using Qt to achive this.
This way we can support more platforms that would be possible with .NET
And faster too.
But that is far off my original point.
I just meant that you cannot compare a crossplatform enironment like Java with an environment that is said to become crossplatform in the future.
If they ever achieve it, you can then compare how good they do it.
Right now, .NET is more a Proof-of-concept implementation.
Cheers,
Kevin
I think C# is an incredibly fast and powerful language as it draws from all of its predecessors in terms of functionality and design.
The only thing that is of concern to me is the ease of de-compilation of C# compiled source. Apart from that, I think the .Net IDE is excellent, and the advances in Everett are strong ones.
I hope the mono project succeeds as .Net has a lot going for it…
My £0.02GBP
Come on, C# is not going to take over the world. It is compiled to something similar to java’s bytecodes.
Ah, ok, you want to install its runtime environment as well as all the other necessary things, like MDAC, good luck.
Oh, you want to build webapps using asp.net ? good luck as well, cause it’s far from perfect.
You think .Net is great ? show us your sharewares, your webapps…
And last but not least, tell me something that you can do with .Net that you can’t with all the other technologies.
C#’s OO is bullshit when you are coding inside VS.Net. What you say ? Hm. Let us say that the majority of the people that use VS.Net won’t go further away from its generated code.
Java sucks it is slow and annoying to install(ESPECIALLY ON NON-WINDOWS PLATFORMS). Personally as a user I hate java programs and do not use them unless they are all that is available! and yes, I don’t really like any of the .Net programs I have seen either.
No, it isn’t vapourware. Microsoft paid Corel to implement CLI and C# on FreeBSD, remember?
Microsoft might not make a CLI implementation on Mac OS because they are giving Apple a choice whether to adopt it ala Java or to snub it. So far, they are snubbing it. They certainly won’t make an implementation on Linux because all that FUD marketing would go to waste.
$ time clix ./hello.exe
Hello World!
real 0m2.204s
user 0m1.130s
sys 0m0.060s
Yup. Really usable.
$ time clix ./helloxml.exe
<?xml version=”1.0″ encoding=”utf-16″?>
<!–a simple test–>
<message project=”Rotor”>Hello world!</message>
real 0m20.382s
user 0m18.930s
sys 0m0.270s
Hehehehe.
$ time mint ./hello.exe
Hello World!
real 0m0.074s
user 0m0.020s
sys 0m0.020s
Much better, wouldn’t you say?
$ time mint ./helloxml.exe
<?xml version=”1.0″ encoding=”utf-16″?><!–a simple test–>
<message project=”Rotor”>Hello world!</message>
real 0m0.087s
user 0m0.050s
sys 0m0.010s
Mono is 2000x faster than Rotor.
I’d like to see the speeds of those applications on a windows box.
Anyway, obviously, by those speeds, Rotor is just a token ‘cross-platform’ implementation. No one will use it.
Java sucks it is slow and annoying to install(ESPECIALLY ON NON-WINDOWS PLATFORMS).
Java installs exactly like all other Windows programs on Windows. How can it be any more annoying to install than any other Windows application?
On other platforms such as Linux, for example, to install Java you just type ./<name of the executable>. I don’t find that annoying.
Personally as a user I hate java programs and do not use them unless they are all that is available! and yes, I don’t really like any of the .Net programs I have seen either.
Actually, most implementations of Java are completely invisible to the user. Most likely, you use Java every time you access the internet and just haven’t realized it.
I don’t know how many times people say Java is slow. Or .NET is slow. Or one is slower than another. How about some desktop app benchmark, heh? Cause Java apps on Blackdown is very fast for me…
No, it isn’t vapourware. Microsoft paid Corel to implement CLI and C# on FreeBSD, remember?
Ah, I didn’t know that. This is not that Rotor thing, but a full functional implementation with a complete class library?
And this FreeBSD implementation is also running on a different architecture, otehr than x86?
In this case I have to reconsider my point of vaporware.
It’s just that the last time I read of a Unix implemenation, it didn’t have a full class library.
Can you give me an URL to that sponsored FreeBSD implementation?
thanks,
Kevin
Bob the Monkey: Uhm .NET is a JITed language, you’ll always have slow start up times. Some stupid hello world app isn’t really a reference.
Isn’t it kinda weird that UNIX apps have been nearly 100% cross platform for about a decade now (since POSIX caught on) and the Windows world is just now figuring out how to be cross-platform? And using a resource-intensive, JIT’ed language to do it? I’m not saying that these languages don’t have their purposes. They’re very useful in custom-programming situations where the power of a low-ish level language is needed, but the development speedup thanks to the huge class library is also important. But, C/C++ will still reign at the system programming level (as it has for decades) and *real* high-level languages like Perl, Python, Ruby, etc, will take over for non-performance intensive purposes.
Although I like what Java can do on the server end, I am inclined to agree with you.
When you think about it, what are most people trying to do with programming languages like C#? Usually they are gathering, manipulate, storing, and regurgitating strings and other data. Why use C# or Java for that when you can get the same work done with 1/10th the code in languages like Python and Perl?
did we hear that microsoft will opens .NET platform specs as open standards ? …. NO
C# is just one language runs on .NET platform, C# is not a whole platform.
i’ll surprise only if ms really makes .NET as a real open platform.
Actually, most implementations of Java are completely invisible to the user. Most likely, you use Java every time you access the internet and just haven’t realized it.
ummm unless you have a REALLY slow connection, there’s no way in hell you could access a page using Java and not realize it. Javascript, maybe, but that’s not even remotely the same thing.
did we hear that microsoft will opens .NET platform specs as open standards ? …. NO
C# is just one language runs on .NET platform, C# is not a whole platform.
C# runs on the CLI, which is one of the ECMA standards referenced in the article that’s on the fast track to ISO.
That being said, there are parts of the .Net framework that are not included in the standard, such as Windows Forms and ASP.Net (iirc).
ummm unless you have a REALLY slow connection, there’s no way in hell you could access a page using Java and not realize it. Javascript, maybe, but that’s not even remotely the same thing.
What the hello is wrong with you, do you even know the first thing about the subject? Yu are talking about Java applets executed on the client side – and we’re not talking about that, obviously!!
OK, I’m calm, now. Listen, Java is indeed very widely used on the Internet (for example), but on the “server side”, in the business logic, content presentation, data access etc. You don’t see Java running “in front of your eyes”. But you do see the result of it, displayed by your browser, for example.
– application for hotel room reservations
– path finder: displays a map and timetables of bus/tram/metro combination to get from point A to point B in a city
– e-mail: the business logic of an e-mail provider is done in Java
– tons of mobile phone applications use Java logic in the backend. Even picture messaging uses Java, but you don’t see it, do you? You see the picture, delivered to someone’s mobile or e-mail.
Java is very well suited for scalability. In fact, you can develop most Java applications on a dinky P III 500 laptop and then test it on a BFC (that’s Big F* Computer).
Java as a user interface is much less popular because it’s less useful.
As for Javascript: javascript has nothing to do with Java, it’s an entirely different technology, but that’s another story…
ummm unless you have a REALLY slow connection, there’s no way in hell you could access a page using Java and not realize it. Javascript, maybe, but that’s not even remotely the same thing.
Huh?
I’m not talking about Java applets, which use AWT or Swing. It it is those graphic toolkits that everyone considers slow (which isn’t really true anymore, but many people are too smart to let facts get in the way of their opinions).
I’m talking about server side Java programming, which you will never see regardless of the kind of machine or connection you are accessing the web with.
I wouldn’t use C# if they gave it away… Oh, they are?
java has two things, involvement with community(community can submit changes) and older maturity of involvement than C# does.
the C|net article comes from C|net, owned by msft, didn’t you know that? I call that a “propaganda engine”. Sun don’t try to own everything, they own what they own, and they are satisfied with that to obtain market share with. There is platforms that you can get java for, that you will never ever be able to get C# on, basically because it’s a way to circumvent control of C/++ and Java, where it’s just a choice to develop with certian specifications “not at all owned by msft or controlled by them”, java is a propietary but changable lanugage, any thing with “shared source” doesn’t allow any changes to come from users or coders.
To me that’s instant stagnation, anticompetitiveness, and counterintuitive/counterproductive.
Would I use C#? Never, no more than I would design an OS interface with pervasive XML. 🙂
They are doing their best to make ISO compliance mean nothing for you and me. Of course they would build a backdoor in it so that they can root your system. Would it pass ISO, maybe!, as I expect they really must think we’re dumb and don’t see they are trying mix up business, politics and engineering.
ISO means something, don’t make it worthless.
It is a copy of Java with couple of not-so-important improvements.
Java is WORA. C# is NOT.
Ask to any MS employee if .NET will be cross platform. I did.
🙂
Part of the $139 million bailout on Corel is that Corel is required to port .NET to FreeBSD (Microsoft didn’t want it on Linux because of philosophical differences).
You know, sometimes google.com isn’t that far away…
http://bsdvault.net/article.php?sid=333
http://www.microsoft.com/licensing/sharedsource/jscript.asp
Rayiner, apples and oranges. Windows NT is already portable, like UNIX. .NET CLI is completely different from UNIX portablity (which requires a recompile, most of the time, more than that, to switch platforms). A better thing to compare .NET with is Java, NOT Unix.
Plus, comparing C# with C++/C and Perl/Python/Ruby is laughable – it is so different. JITed applications may start up slowly (like high level languages like Python), but is quite fast after startup. A lot of people have this idea that JITed applications is slow because of Swing and Java.