“What got me to this state of indignation is a dawning realization that Microsoft is about to win again in a part of the business where they have no business winning. I predict that Microsoft is about to beat the bejeezus out of Java.” Read the rest of the editorial at I,Cringely. Update: Read also the relevant article “The MSDN advantage” by Larry Seltzer on ZDNetTech.
C# To Crush Sun’s Java?
2001-11-02 Java 39 Comments
There’s nothing wrong at all with regular old C, I say. Java is resource hungry, and has an immature UI.
in the article Robert say that Java is slow, resource hungry and buggy, like five years ago. . . Windows and MS-whatever is slow, buggy and resource hungry since windows exist. . . ok, ok. . . but who wants to run windows 3.1 and word 2.0 in a 1.2ghz athlon with 512mb of ram???
I’m a Java programmer myself, and the statement of Java being slow is simply wrong!
Some aspects of Java are relatively slow(UI, particularly Swing) whilst other parts of Java is on par with C/C++ – sometimes even faster (Fast Fourier Transforms)!
As I see it he is simply talking about performance on the desktop, which traditionally are very UI intensitive.
Where Java really excels is on the Server side, and generally time-to-market.
How can Java be faster than C/C++? I guess it’s just a matter of optimization and assume that the Java Virtual Machine even has been coded in C++, which would make the statement contradictory.
C# runs on .NET, JAVA runs nearly everywhere (even on BeOS….at least a bit ). I would wonder if C# will run on an AS/400, a Nokia Communicator, a Palm, a CelluarPhone, JAVA does! Even the .NET-Technolog is not proof to be a winner.
I’m a JAVA-programmer and for me, Java is fast and stable….for some things C++ is faster then JAVA, but JAVA is close to C++
I have to agree with Brain and LoCal.
I think the performance of Java is perfectly suitable assuming it is used in the correct place. i.e. Server applications, web development (JSP).
Swing and general Java UI could do with a bit of a speed boost though, I have to admit, but using the built in Libraries is fast. I have coded complex JSP pages and beans in java using a LOT of database access and manipulation and they pop up the result pretty much instantly.
Let me respond as a Java developer:
Personally I’m getting sick of all comments about Java still being slow. Have you even tried running a Java program in Windows using the latest JDK? I’m involved in a open source project developing a graphical Java client for Direct Connect and our program feels just as fast as any Windows native program. Object oriented software is slower than C programs because of their dynamic nature, but in return they are more stable, quicker to develop and much easier to maintain. But object oriented programming requires good software design, which unfortunately many people new to OO and Java dont realize. Dont expect Java to be Visual Basic.
I agree that Java programs require a lot of memory, but I dont consider this a big problem with todays computers. There’s lots of work going on in this area, for example to let Java programs share the same JVM which would be a great improvement in memory requirement and program startup time.
I wouldnt call Swing an immature GUI, it’s just relatively new, besides it’s one of the best designed and powerful GUI API’s around. You cant compare it to Windows or GTK, it’s way more complex and powerful.
A Java program cannot be faster than C++ because the JVM is written in C++? Have you ever heard of just in time compilation? All modern JVM’s compile the Java code to native machine code optimized for the processor they run on. There’s even JVM’s written in Java that produce very fast code. To say that Java cannot be faster than the language the JVM is written in, is similar to saying that a C compiler written in Visual Basic cannot produce faster code than Visual Basic code.
I meant Brian not brain, sorry Brian!
I am truly hoping that REBOL will crush all others in the multi-platform GUI market – it is a lot easier to develp in than Java (RADwise) and does not have a clunky C/C++ language reliance (legacy). True, C/C++ or ASM for that matter are definitely faster but being faster in execution does not mean that you wont still be coding for 4 times as long. C# or Java are only marginally faster dev time than C/C++ (garbage collection and a few other housekeeping are done for you ) and both have Masters with dubious intent 😉
Another factor I like about REBOL as a reeplacement for C# or Java, is its LISPlike ability to dynamically modify itself as it runs – things such as learning systems are much more powerful and useful when a program can grow by itself (eg a web mining tool).
Just my $0.50
There is a problem with Rebol I can see from having had a good look at it.
I would have to pay $300 (IIRC) for Rebol/Command for database access to name but one function. Java is a free download.
And the Rebol libraries do not look particulary complete, Java has an incredible selection of libraries bundled with it and a vast amount of others available to buy or download. It truly is a complete language.
Rebol looks nice, but whether its capable of handling development on huge projects with millions of lines I doubt, so it can not therefore even be considered alongside Java/C/C++/C#.
> To say that Java cannot be faster than the language the JVM is written in, is > similar to saying that a C compiler written in Visual Basic cannot produce
> faster code than Visual Basic code.
Nope, it’s a little bit different, since a C-Compiler generates machine-code and a Java-Compiler produces JVM-Code, which, at least that is my assumption, will make calls to functions written in C. So even just in time compilation will come close to C, but not beat C in terms of speed, since you must not forget the additional overhead for JIT. And things like garbage collection just come to my mind …
But speed is not Java’s main aim. I have to agree, that Java makes it very easy to produce beautiful OO-Code, because it allows the programmer to forget about burdensome details like memory reservation, pointer syntax and alike and concentrate on higher level aspects of the problem domain.
One of the joys of REBOL is you don’t generally need millions of lines to do something.
Here’s an example you may find amusing – it downloads the entire html for the online NIV Bible version – about 1900 pages. a further 12 lines could be used to customize it to return in nicely formatted html just the body text – this is of course highly illegal to actually run this program as the NIV version is not free *grin*
Its wonderful what nice simple spiders can do .. watch out Britannica 😉
bible: to-block read %bibledata.txt
for c 1 198 3 [
fbookName: pick bible (c + 1)
fbookChapters: pick bible (c + 2)
for ch 1 fbookChapters 1 [
fname: join “http://bible.gospelcom.net/cgi-bin/bible?passage=“ [fbookName “+” ch “&language=english&version=NIV&showfn=on&showxref=on”]
file: join what-dir [“niv/” fbookname “+” ch “.html”]
write :file read to-url fname
I have used C# and it really isn’t all that bad. The API is great . If it was only developed by someone other than Micro$oft . I haven’t used Java, but I have also heard alot of good things about it. Just think in five years if Micro$oft has their way, it will be their languages and only theirs.
I don’t know much about Java or C# but isn’t Java free? Isn’t that a huge advantage on it’s own?
If java were not useful/successful, the kingdumb would not be on full fud trying to destroy IT (see also: browser wars).
<a href=http://www.scaredcity>ScaredCity to Crush Deceptive MiSleading ?pr? FudSpew
The ONLY real ?product? of the felonious fuddites.
sorry eugenia, the correct link is http://www.scaredcity.com>here here” rel=”nofollow”>http://www.linuxville.com>here.
Ah, to be able to acknowledge error(s), how refreshing.
Don’t forget to check out our http://www.opensourceworks.com>web giveaway. Includes a year’s free hosting, if you’re shrewd enough to follow some simple directions. There are rumours about, that the GNU age of open/honest communications/commerce may proceed, even without felonious father williams’ m$0k.
How is Microsoft going to force everyone to .NET?! Not everyone is a Windows user, you got your mix of Linux, BeOS, Mac OS, Windows and Amiga (its second coming) users and over half of those users will probably not want to get involve with the BS of MS… get my drift!!! I am not sure how .NET will enter my life, I wont let it unless it’s just there and I don’t know it! Microssoft can push C# all they want, but I doubt it will overcome Java anytime soon. Alot of your C/C++ programmers like Java and Java is usually part of the curriculum in computer science at most Universities!
Oh I do agree with Roger X Cringley’s article about companies not trying to take Microsoft head on… Sun Microsystems probably would have the best chance out of any, but I think their marketing strategy will need to change in the consumer market! I am almost tempted to buy one of their Sun Blade 100 workstations, a good price for good hardware!
Comparing computer languages is a waste of time. I know people that still think BASIC kicks ass! And, Mozilla is written in almost all C++ with a little C here and there, and people complain it is slow too? The Java HotSpot browser starts up about just as quickly. Anyway, who cares. Program in the language you enjoy programming in, or in the language your platform dictates is the preferred language. For all these reasons are why I primarily took theory courses in college, because a language, is a language, is language, which are all just means to the same end, creating a program!
I have use Microsoft products for year and NEVER they have totally pleased to me. I’m using Java for 3 years and I’m totally pleased with Java.
I’m tired of giving chances to Microsoft.
Call me stubbord, but definitely I’m not going to study a Microsoft product again.
Grim reminder of JLG not wanting to go head-to-head w/ M$.
It frankly doesn’t matter how good C# is. It could do all the coding for me, cook me breakfast, and do the dishes afterwards, and I still won’t use it, because history has shown that as soon as Microsoft gets you to make an investment in their technology, they will start using that to leverage themselves into your pocketbook and to deny competition. The day I’m forced to use a Microsoft-controlled language is the day I leave programming and take up poetry.
“I would have to pay $300 (IIRC) for Rebol/Command for database access to name but one function. ”
Depends which database. There is a free interfacing script for mySQL on the REBOL website, IIRC.
I like REBOL alot, however I haven’t done any Java or C# programming (yet).
I wouldn’t call Java slow (not on a modern machine anyways). It’s not as fast as C, C++, C#, or REBOL- but it’s not slow.
I like swing’s UI but it could use some speed enhancments, from what i’ve seen…
C# > Java is a pointless discussion. But I do agree with the idea of the article that most companies simply LET ms dominate. Java was a great technology to start with, but Sun never listened to the complaints about excessive bloat, speed (mainly swing) and deployability. They have had years since the introduction of the tech and done nothing about it (made it worse if anything).
Netscape is a similar story. They had 80% of the market, but suddenly they take a couple of years of with almost no progress. They LET ms take it all away from them.
C – the language with the speed and power of assembly language with the readability and maintainability of assembly language 😉
In retrospect, plain old C is the closest you can get to a cross platform assembly language (well, there is Tao’s VP but thats a different story).
I congratulate the writer on his (possibly intended) ignorance of the situation. He’s as wrong as the day is long, but at least he jumps in with both feet.
A few years ago, Sun file suit against MS regarding violations in useage of the term “Java Compatible.” MS has their own version of Java that is not 100% compatible with Sun Java. MS insisted on putting “Java Compatible” on the box, when in fact it wasn’t.
This confused the bejeezus out of people wanting to get their feet wet with Java, just as the language/environment/whatever was gaining traction in the market.
So, Sun files suit. They argued that as the orginators of Java and the Java standard, anything alleging to be compatible had to meet certain criteria. SUN LOST. The resulting confusion, including people who backed away from Java because they thought it was going to get co-opted by MS (when one of the reasons for going to Java was because it wasn’t MS) effectively relegated Java to second class status. BTW, isn’t Jini supposed to be the conceptual replacement for Java anyway?
PS. Eugenia, can’t you erase the spam output from those Discordian wannabes? Bob is no prophet, just a profit margin.
Why would I need anything else? I can do anything without limitation! Why Java, C#, or anything else?
Think about it!
Why should I have to deal with your substandard set of tools? Give me
– Common Lisp
Why would I need anything else? I can do anything without limitation! Why use Perl, Apache, PostgresQL, or PHP (bleh)?
Thank about it!
well down here in Oz i don’t know anyone who is using C#.
everyone that i know in the development circle here in Melbourne is using some sort of Java IDE and all the projects are Java-centric. This is both at an applciation development/deployment level as well as at an internet/intranet level.
The most commonly used flavour is BEA Weblogic with NetBeans and Visual Age not far behind.
C# will not be that successful down here. Maybe we should call it D flat?
Java, not slow, hehe…
err run a full Java app, say ohh Forte, wait, wait, wait still not loaded (on a pritty fast desktop).
Now I love Java, it’s a great language, but its slow.
 for GUI stuff, the remarks on it being good for server are very much true.
C# IMO is just a rip-off of Java. Since MS didn’t get their way with Java they needed to find another language. They realized VB is going nowhere and C++ is untouchable for them, so take Java some C++ mix and call it C#. The real challenge for them is to lock developers into their platform, not create a technically great language (Java, C++ are already great).
Cringley’s point isn’t about software elegance or philosophical purity, it’s about being a juggernaut. Java has inroads in places C# can’t go yet, sure, and it’ll certainly have a market in some places for the foreseeable future. But that’s not the scenario we’re talking about.
Think: as annoying as Visual Basic is to programming purists, it may well be the number one application development language for *in-house business programming.* For most businesses, rapid application development and modification has become more important than raw performance.
Now, when C# really gets off the ground, it’s going to have two advantages over Java *on the Windows platform*: it’s (duh) optimized expressly for Windows, and can run just about as fast as Visual C code, and it’s being designed to leverage all those Visual Basic programmers. When they switch to a “real” programming language, many of them are going to move toward C# (whether or not you think it’s “real,” the point still stands). The point of “.NET” is, ultimately, to make C# a “first class” development language for Windows alongside C/C++ (“the ease of VB with the performance of C!”), and Microsoft will throw all their considerable resources toward making that happen.
But unlike Visual Basic, C# is being developed for other platforms. It’ll show up on OS X, you can get. And Microsoft has already said they’re developing it for FreeBSD. (They’re probably going with BSD largely for anti-GNU political reasons, but it means they’re getting onto free software that powers world-class servers.) And, eventually, expect to see it on Solaris and Linux. It’ll probably always run better on Windows, and it’ll probably be unafraid of taking advantage of Windows-specific things–but it’ll be possible to create lowest common denominator cross-platform VM binaries, the C# equivalent to Java VM binaries.
The point is, if C# runs on 90% or more of the desktops out there (say just 32/64-bit Windows and OS X), and if–on 80% of those desktops–C# applications run with equivalent or better performance and more features–then Java never breaks out on the desktop. Period. It may even shrink. If a C# VM becomes available for Linux, too, then Windows-centric developers who don’t have a vested interest in either language for cross-platform work may well choose C# over Java–all Microsoft has to do is make sure it’ll run better than Java on Windows, and no *worse* than Java on anything else.
And, of course, C# *will* be available on servers, including Unix servers. That won’t take away the Java server market but it’ll start eating at it. Why? Because of all those VBScript programmers who know now C# as both a scripting language and application language.
And then C# will show up on embedded platforms.
Will that kill Java? Of course not. There are still jobs for HD64180 assembly language programmers, after all.
Just not many.
The sad thing is, Cringely’s right about the root cause of this, too. It’s not Microsoft being nasty and evil as much as it’s the failure of competitors to be serious about competing. The only guy who ever really wanted to seriously take on Microsoft was Ray Noorda at Novell, and he ultimately lost the support of his board of directors for doing so.
Microsoft will probably only be beaten if a new paradigm shift comes along and someone has the resources and will to drive it hard. The desktop UI was one such shift and network-centric computing was another, but in both cases the people who started their revolutions all but handed the reigns to Gates & Company.
Java is a nifty language, and it’s one I’m learning; for the time being it’ll certainly remain the most useful cross-platform development language, particularly on the server side. But I know if I stay in the industry I’ll have to keep a close eye on C#.
Incidentally, I know HD64180 assembly language. Anyone have any openings?
Lots of good and interesting posts here about C,C++,Java and many other laguages, but seems to be a complete lack of understand what C# is and more importantly what makes up .Net .
First there is no mention in the article about the CLR(Common Language Runtime), or the .Net Framework which is whats really important, C# is just one language that targets the CLR, so does VB.net,JScript, and Managed C++ extensions, for now and many others in the works. All the languages compile into MSIL(Microsoft Intermediate Language) which is equivalent in alot of ways to Java bytecode, with the exception being that it is always jitted to the target platform either as the program loads or when the program is first installed on the target platform, its up to you. All theses languages have nearly equivalent abilities and can interoperate as the CLR is what provides all the base datatypes and Classes that give you things like threading,IO,data access, even dynamic compilation, and much much more.
Also don’t forget that MS is releasing Jump to .Net or J# that is the Java language but using the CLR instead of the JVM , so instead of using Swing for a UI you can use Winforms, which is very powerful and very fast(on Windows at least).
The CLR is not necessarliy tied to Win32/x86 either, MS already has a compact CLR/Framework for WinCE and there are others underway not by MS to get a CLR running on Linux.
I have to say that .Net is probably one of the best things ever to come from MS, its comppletly usable,fast, and stable in its current Beta 2 form, and a total shift in philosophy for MS(see: no more DLL hell, registering components,xcopy install, and delete uninstall).
Just some info to help you guys decide, see msdn.microsoft.com or http://www.gotdotnet.com or join the discusion at discuss.develop.com for more details, because theres a bunch I didn’t even come close to covering.
Back when Novell ruled, Bill Gates tried to buy it. Ray Noorda basically called him a tantrum throwing pussy and wouldn’t sell to him.
It’s too bad that Novell’s board are filled with a bunch of retro-thinking idiots, and it’s too bad that Noorda isn’t in charge of Novell anymore.
“Java was a great technology to start with, but Sun never listened to the complaints about excessive bloat, speed (mainly swing) and deployability.”
What are you talking about? Haven’t you ever heard of the JCP (Java Community Process)? Sun not only listens to complaints, but allows people to participate in the future of Java. Java has made incredible advancements over what it used to be. Just look at JDK1.4.
Swing is fine if you use it right.
As far as deployment goes, I think Web Start, Applets, Servlets, EJB, et cetera are excellent ways to deploy Java.
actually I’m seeing that there are other kinds in the gardend…
think about Ruby…
Yea right! So you’re going to recode a web server and a database server? Let’s recode the Os too while at it!!
Common Lisp???? No thank you! I wish to remain sane and productive while using something (like Perl) that is VERY well supported, acepted and “gets the jobs done” all the time.
As for OpenBsd, it’s fair enough.
The problem here is not where Java is slow or faster than C++ (or if it performs best in very exception cases as Fast Fourier — everybody knows JIT can do miracles sometimes). The problem is not that “Microsoft is bad” or whatever. By the time Microsoft started there already were big players as IBM, HP and even Sun (maybe not as big as they are today but by that time there was Bill, Balmer and Allen). What the columnists of the linked material above are saying is that everybody had the chance thru all those 20 years, and nobody, nobody did one competent thing towards the real success Microsoft has competently achieved. I am not a M$ fan. I love Linux, use it everyday, and I also love the Java platform and Language. But let´s face it: it took me 2 days to master C# and Visual Studio.NET allowed me to build a complete application from scratch, with all the MSDN help in record time. I never could do it that fast and with so amazing results as I did this time. Microsoft do understands developers needs. I hate when I have to dig around trying to find tools that fulfills my needs. Waste several days making them work together to have some barely acceptable result. It´s frustrating. If no one cares about all thoses problems in todays development platforms as Java, Microsoft will still win. And it´s not their faults: it´s everybody elses faults that just know how to criticize but don´t know how to SOLVE the problems.
Java is a dog. At home I have an Ultra 10 — Java runs slower than shit on it. At work I have a Blade 1000 — Java runs better, but nothing compared to a real application. If Java is slow on $20,000 Sun machines, there is very little hope for it.