“It’s one of those rare situations where Microsoft is David, not Goliath; .NET is a displacement ploy targeted squarely against Java and J2EE, which has gained significant momentum amongst customers since its debut. As in J2EE, .NET applications go through a number of stages between source code and application. These stages are designed to liberate the source code from dependencies on the underlying software platform, although in .NET’s case there are many operating system hooks available when necessary.” Read the article at ZDNews.
“After all, both .NET and J2EE ultimately provide a standards-based architecture for deploying distributed, online, enterprise applications to any device, anywhere. And both Microsoft and Sun recognise that this time, it will be the developers who will be making technology recommendations to their business associates.”
Pardon? Can you show me .NET based one application server apart from MS’s on any platfotm? Can you show me .NET based web application server on any platform apart from Windows? Even, can you show me MS’s .NET based application server which is proven to work in a robust, reliable way?
““The developer community has embraced and loves .NET. It’s not painful; you can just go out and develop. We’ll have to [win developers by] focusing on productivity: you can get apps done faster because you’ll have to write fewer lines of code.””
Bwaaaa hahahahahaha! Which developer community? Australian? Should be. I don’t see any in Europe. –: )
““It’s currently easier in Visual Studio.NET to build a Web service than it is under Java,” says Andy Cooper, brand manager for information management solutions with Computer Associates Australia. “But that’s now as opposed to three months down the track. By the time Web services become really used, a year from now, both will probably have similar ease of use.””
A complete lie. Andy Cooper, the infamous lier throws from his ass again. Certainly doesn’t know about Glue (http://www.themindelectric.com/glue/index.html) or Wasp (http://www.systinet.com).
Uffff. I am bored. Another completely useless ZD article. Will continue later. Now, I have to prepare my desk for tonight.
Nuff said.
I was amazed at how well written and fair this article was to both sides, despite being run on ZDnet. It was rather humorous to see Gosling’s quote “J2EE . . . is more feature-complete, more mature, and what .NET has going for it is a marketing budget only God can dream of” right underneath a “1 Degree Of Separation – That’s Business With .NET” advertisement.
It was nice to see Gosling acknowledge the superority of .NET’s development tools. The main message of this article seemed to be that we’ll continue to see a heated race between Java and .NET, with no clear winner in sight for the forseeable future.
The article makes some very good points about the advantages of .NET, such as being able to port legacy codebases, often in the form of several languages, to Windows/.NET.
The article touches upon service level separation being the next step in the evolution of programming beyond OOP, which I really see as being important. Services are the next step in MVC separation, with the GUI view/controller components communicating with a service-based backend model.
I found this portion of the article funny:
It’s not just about Web services . . .
Many people assume J2EE and .NET have to involve Web services. But both platforms can be used to build applications that have nothing to do with Web services. Don’t be intimidated assuming that you have to go from zero to Web giant overnight.
.NET is very important to Microsoft for reasons other than web services, due to the ISA independent nature of MSIL. Because of this, .NET applications can be compiled from MSIL to any underlying ISA, and take advantage of the native instruction set.
This comes at a time when Microsoft is about to release x86-64 and IA64 versions of Windows. .NET will allow for seamless interoperability of applications on IA32, IA64, and x86-64 platforms.
I don’t see how Java can possibly compete with .NET. For starters, .NET is backed by the world’s largest software company, one which controls an unimaginable portion of the market. But that aside, .NET has technological and design superiority. .NET looked at all the mistakes Java made, and learned from them. Just look at all these bizarre design problems with Java:
* Primitive types… are they objects that exist outside the Object heirarchy, or just a weird hack left in place due to an absence of operator overloading for easy use of numerical objects.
* Primitive type wrappers, immutable? Each time a numerical value needs to be stored in a data structure, you must instantiate a new object? Wasteful… and non-sensical. Why not simply make the numerical types objects and allow operator overloading. This is exactly what C# does, and it’s far more sane.
* The Object class… were they on crack when they designed it? Why is the hashCode method in the root of the object heirarchy?! Wouldn’t it have made much, much more sense to create a Hashable interface, or if Java had allowed multiple inheritance, a Hashable abstract class?
* Operator overloading… Java has it, but in one special case hack only! That’s right folks, you can combine anything with a StringBuffer using the + operator. Apparently everything Sun said about using method calls instead of operators got thrown out of the window when they thought up this. Here’s a hint sun… make operator overloading part of your language? Ever use the BigInteger class? It’s abominable. Using method calls for mathematical operations is not an ideal situation.
* Type handling, it just doesn’t work the way I’d like it to for a language like Java… in fact, C++ made things easier and more readable. In C++, code readability could be greatly improved by using templates to handle casting on general purpose data structures.
That’s just a small list of my frustrations with Java… I certainly have several more, like this:
% time javac
Usage: javac <options> <source files>
…
0.357u 0.070s 0:03:02 13.9%
This system is a dual 1.53GHz Athlon MP, and it still takes 3 seconds for javac to display usage. That’s… pathetic.
So, keep up the good work Microsoft, I’m sure we’re both looking forward to the day when Java finally dies.
So, keep up the good work Microsoft, I’m sure we’re both looking forward to the day when Java finally dies.
Too bad the server that first publishes the news about Ballmers suicide due to MS’s lost market share will be running Tomcat on Linux.
“Too bad the server that first publishes the news about Ballmers suicide due to MS’s lost market share will be running Tomcat on Linux.”
Oh, touche sir. You’ve systematically destroyed my entire belief system with you well reasoned and poignant response.
belief system? someones laying it on a little thick.
Does that make .Net a religion or a cult?
Oh, touche sir. You’ve systematically destroyed my entire belief system with you well reasoned and poignant response.
See, that’s the difference between you and me: you believe, I merely foresee. And oneliners are supposed to be short.
Pardon? Can you show me .NET based one application server apart from MS’s on any platfotm? Can you show me .NET based web application server on any platform apart from Windows? Even, can you show me MS’s .NET based application server which is proven to work in a robust, reliable way?
Heck, can you show me a .NET based application server written by someone BESIDES MS on ANY platform?
The benefit of .NET is that if I’m unhappy with C#, I can, I reckon, jump over to other languages. But I’m still stuck with MSs implementation of the app server …on Windows… on Intel, regardless of what language I write it in.
With J2EE, I’m stuck with Java, but I can get an app server from a truly insane number of sources that can run on a truly insane number of platforms. (Well, I can use Jython or Kava I suppose…)
With J2EE I can write applications for $0 out of pocket for software or pay $$$$ to enlist the aid of commercial enterprises and global support networks. I can deploy on cheap white box hardware or vast gazillion CPU mainframes.
I think it’s prety nice working on a platform being advanced by several companies, all looking for their competetive best interests rather than just a single company. With several companies working on it, there’s a lot more focus on interoperability which benefits everyone.
Wouldn’t the best place to start be:
It only runs on the Win platform with any degree of usability.
That one whopper can balance out whatever programming design elements you state to be a pro–when every language has its pros and cons and their own methodologies of working around them.
–how Java can possibly compete with .NET. For starters, .NET –is backed by the world’s largest software company.
Do not be a condition-decided supportor.Please remember IBM about 20 years ago.
–.NET looked at all the mistakes Java made,
It does not mean MS will not create or invent more mistakes.
Just remember MS continue giving SPs for SPs for their illy products.
–and learned from them
Learning is a process, and it is hard for MS to learn well.
isn’t it?
Any chance we could put both of these ‘technology’ out of their misery ?
For starters, .NET is backed by the world’s largest software company, one which controls an unimaginable portion of the market.
Whilst Java is backed by everone else. Microsofts dominance is on the desktop only; whilst they have a large portion of the server market, it’s not anything like a monopoly, nor is it particularly high level.
Primitive types… are they objects that exist outside the Object heirarchy, or just a weird hack left in place due to an absence of operator overloading for easy use of numerical objects.
Autoboxing in Tiger will alleviate this to a large exent.
Primitive type wrappers, immutable? Each time a numerical value needs to be stored in a data structure, you must instantiate a new object? Wasteful… and non-sensical.
Use your own lightweight wrappers or the primitive directly.
Type handling, it just doesn’t work the way I’d like it to for a language like Java… in fact, C++ made things easier and more readable. In C++, code readability could be greatly improved by using templates to handle casting on general purpose data structures.
Generics. Tiger. Yum Yum.
Your biggest, reocurring complaint appears to be about operator overloading, especially in connection with the numeric types. Perhaps you should find a different language for numeric computing? Like Fortran?
% time javac
Usage: javac <options> <source files>
…
0.357u 0.070s 0:03:02 13.9%
Well, your system sucks somewhere. You’re not running under Linux emulation, are you?
[phil@thor phil]$ time /usr/java/j2sdk1.4.1/bin/javac
…
real 0m0.654s
user 0m0.880s
sys 0m0.040s
That is on a 1Ghz Mobile P3 with a nasty 4200RPM drive.
.NET is nice; it has some features that Java lacks and avoids some design flaws in same. It’s not perfect by any stretch of the imagination and Java isn’t standing still. It’s also hindered by cloudy IP issues, a pathetically anaemic standard definition (ie. no GUI or DB functionality in the ECMA spec) and poor crossplatform support.
It’ll be a tough fight, but I don’t expect either platform to become an outright winner. We’ll probably find that .NET will come to dominate on Windows servers and Java will continue to dominate on *nix servers.
Can a Java/.NET plataform run in a 64 bits architecture and access to the 64 bits adressing? Unlike C they have an standard y types´ size, so references/ponters should be of 32 bits. Am I wrong? Do you need to recompile for 64 bits architectures?
“Whilst Java is backed by everone else. Microsofts dominance is on the desktop only; whilst they have a large portion of the server market, it’s not anything like a monopoly, nor is it particularly high level.”
So should I interpret this statement as a tacet ceding of the p-code application domain to .NET? Or perhaps it’s something you’re not concerned with…
And phil, your replies echo your responses regarding Linux. Everything will magically be fixed in Tiger, eh? Just like everything will be fixed in Linux 2.6.
Well here’s a question phil, will Tiger have unsigned types? Doesn’t look like it…
(re: primitive type wrappers) “Use your own lightweight wrappers or the primitive directly.”
That’s what I’ve ended up doing… my question is why Java has no classes for storing numeric variables…
Java seems to be lacking in mutable classes in general.
The problem with using primitive types is when it becomes necessary to store numeric values in a data structures… there’s a terrible amount of code where primitive type/object interaction takes place.
“Your biggest, reocurring complaint appears to be about operator overloading, especially in connection with the numeric types.
No, my biggest complaint is about the horrible design of the class heirarchy. It’s an incredibly poorly engineered product, especially coming from a company like Sun. The high level design is wonderful, to be sure, coming from great minds like James Gosling, however Java completely falls apart in the details.
Perhaps you should find a different language for numeric computing? Like Fortran?”
In a perfect world I would have a choice of what programming language I use, but here in the real world where people above me are making the decisions that just isn’t the case.
I suppose we have a somewhat legitimate reason for using Java… a Swing application for processing model output which has to run on both Solaris and Windows systems. Yet the entire thing could just as easily have been written in C++/Qt. Why are we using Java? Prevalence of Java programmers, as opposed to the relative dearth of C++ programmers. The language is watered down enough that it lets people who shouldn’t be programming in the first place become useful programmers. I’ll give that to Java… an application written by a bad programmer in Java usually works significantly better than an application written by a bad programmer in C++.
“Well, your system sucks somewhere. You’re not running under Linux emulation, are you?”
This is Sun’s JDK 1.4, running on a Linux 2.4.20 system. The root filesystem is a RAID-5 of 7200RPM drives. That was also cached speed. I find that sort of performance utterly inexcusable.
It would be a non issue on .NET with the GAC, where after an application has been installed/executed once and traslated from MSIL to native code the startup times are akin to that of an ordinary unbound dynamically linked application.
Of course, as many people have said, .NET should be discounted because it is evil because it only runs on one platform.
Any chance we could put both of these ‘technology’ out of their misery ?
Why would you want to do that? They are both very useful technologies.
Both Java and .NET provide developers with an incredible set of tools. Globalized software is also easier and less coslty using Java or .NET. For companies trying to get something shipped to an international market, this is very important.
I’ve said it before, and I imagine I’ll say it again. These are both tools, like a phillips and regular screw driver. They both have their uses, their design and their purpose. Why anyone would want to toss out two excellent screwdrivers (Java and .NET) and force pound everything into place with the sledgehammer that is C++, or limp-wrist things together using the creampuff that is VB, is beyond me.
So should I interpret this statement as a tacet ceding of the p-code application domain to .NET?
Not at all. You suggested that Microsofts size and market domination would result in a defacto win for .NET, without qualifying within which domains this win would take place ie. a generalisation.
Given the above, it would only be safe to say that .NET will be far more prevelant than Java for Windows only GUI applications.
Or perhaps it’s something you’re not concerned with…
I’ve worked on/written a number of sophisticated (million line codebases) Java GUI applications in the course of my career. We shipped the latest one just a few weeks ago.
And phil, your replies echo your responses regarding Linux. Everything will magically be fixed in Tiger, eh? Just like everything will be fixed in Linux 2.6.
I never said that, and I’d appreciate it if you’d contain your zealotry and not put words into my mouth.
The point I was making with references to Tiger is that the entities involved in the JCP are well aware of the shortcomings and problems in Java and work is on going to address them. Just like Linux, in that respect.
There’s nothing wrong with admitting a product has flaws and there is most definitely nothing wrong with mentioning ongoing work to correct these flaws.
You of all people should know that.
Well here’s a question phil, will Tiger have unsigned types?
No.
No, my biggest complaint is about the horrible design of the class heirarchy. It’s an incredibly poorly engineered product
I disagree completely. On the issue of design, I’m interested to hear your ramblings on SWING.
In a perfect world I would have a choice of what programming language I use, but here in the real world where people above me are making the decisions that just isn’t the case.
Ah, so you’re blaming the language and platform for the decisions made by your superiors? Real smooth, hotshot.
This is Sun’s JDK 1.4, running on a Linux 2.4.20 system. The root filesystem is a RAID-5 of 7200RPM drives. That was also cached speed. I find that sort of performance utterly inexcusable.
You’ve got a serious problem. I can’t understand how a machine with those specs takes 3 seconds to launch javac, whilst this laptop can do it in less than a third of that from disk. On the 2.53Ghz P4 I tried it on, it took slighly more than 0.3 seconds – almost a tenth of the time it took for you.
I was going to include this in my last post, but I couldn’t remember it exactly. Here it is:
“When your only tool is a hammer, everything looks like a nail.
When that hammer is C++, everything looks like a thumb.”
I’d give proper credit to whoever made this up, but I have no idea who it was.
In my opinion, both Java and .NET are more elegant that that (unless you are using C++ to do .NET programming with).
Why would you want to do that [get rid of both Java and .NET]? They are both very useful technologies.
But the question us, useful to who ….
Both Java and .NET provide developers …
Useful for developers is exactly right. But what about the end users? Is it worth it (in the case of Java), for those of us who actually have to use this crap to have something that’s cross platform when a) Most of us use only one OS full time anyway and b)the bloody things run slower than snot on a doorknob? Hell, I look at Java on the web and mostly all I see are crappy web applets like dorky animations, tic tac toe, and ‘button rollovers’ that really shouldn’t be. It’s just like Flash – whatever merits that the technology has is completely overshadowed by its blatant misuse. Now everyone (at least Java pundets) wants it in Windows so that the rest of us can suffer in order for them to be able develop apps easier, I guess. And though I haven’t even seen anything of .NET as of yet, I can imagine it’ll be the same way, and it’s not even cross platform!
It seems like Java is all about fighting a perceived threat (ie – the MS monopoly), but using Java as a ‘weapon’ reminds me of the movie Independence Day when they try to use a nuclear bomb to get rid of the aliens. In both cases, I can only wonder if the problem is actually as bad as the proposed solution.
This is the first intelligent .NET vs Java discussion I’ve yet seen.
I have a lot of respect for Java, but I get a lot more accomplished with .NET. I’d have no problem using Java if the apps I wrote needed to be cross-platform. They don’t.
Many Java zealots believe that all apps should be cross-platform. This is rubbish.
Hilarious, there’s always got to be some dumbass who has to bring up some language zealotry completely unrelated to the discussion: That’s you Iconclast.
Now, to sum up my own view which is probably somewhere between Bascule and Phil’s:
* Yup, C# and .NET is somewhat better designed than the Java/J2EE solution. But not far and away fundamentally. Where MS may get (and already has in some areas) big advantages are with their tools and implementations. The .NET architecture in general is more amenable to performance and doesn’t carry some artifacts of history with it, but they also don’t have first-movers advantage.
* Yup, Java has defects and Tiger adds some cool language features. Funny how it seems to indicate a convergence in language development between C#, C++ and Java.
* I have a hard time seeing MS/.NET being as successful as Java on non-MS platforms. And to advance the platform they’d have to deliberately sacrifice some home-field advantage, so I doubt they’ll do that. That they have Rotor for FreeBSD is kind of a funny strategic political ploy to avoid Linux and I don’t see anyone interested in working with their “shared source” vision.
* My litmus test for .NET/C# success will be when I start seeing them seep into CS curriculums.
Hey Bascule, here are a few thinks for your mind.
Tiger might add boxing/unboxing but are you truly saying that boxing is good???? Come on easy to use for the programmer but not really memory/cpu efficient at all.
Microsoft dominates the client platform but in the the server platform they don’t really have much of a presence.
.Net is really too new and there are as yet not a single enterprise class .Net applications written and the reason is purely that it is not yet mature enough.
.Net app server is only available for windows and will hence lock you in to Windows. There will be no .Net app server for other platforms ever!!! Big statement you say but I don’t see who is going to build one and don’t tell me mono.
Also this article overplays the fact that you old legacy code written in other languages can be used with .Net. WRONG!!! .NET only supports a subset of non-MS languages and not the whole. Most large legacy apps will need to be re-written to be usable under .NET.
I think you mentioned the hashCode method. Hey having it in the Object class was the best place to put it and was one of the best design decisions that Sun made. You obviously don’t know the use of the hashcode else you would not have mentioned this.
What MS has going for it is a very good Tool set in Visual Studio. J2EE IDE’s still have some way to go before they can catch up on that.
real 0m1.680s
user 0m0.646s
sys 0m0.027s
This is Sun’s 1.4.0 SDK on a “slow” 650Mhz Dell CPXJ laptop running RH8.0 (the “null” beta). Considering that it takes your machine (a dual 1.53GHz Athlon MP) ~3 secs, I must insist that you get your system fixed ’cause it’s obviously something wrong with it.
@Phuqker:
Many Java zealots believe that all apps should be cross-platform.
For my company, it’s enough that our main product is cross-platform as that’s one of our selling arguments (a LOT of customers have been moving from Win* to Linux recently – a sign of what’s coming, maybe?). They can choose appserver from BEA, Oracle, SUN, IBM, Macromedia, …, (or use JBOSS/JoNAS), and they can choose among an array of databases as well. Maybe it’s just as much about vendor indepenence as platform independence? And please remind me: how many .NET vendors are there?
@Bigizzy:
What MS has going for it is a very good Tool set in Visual Studio. J2EE IDE’s still have some way to go before they can catch up on that.
Sure it’s not the other way around? http://www.geocities.com/ceperez/EclipseMainRouter.html
[Drascea-G3:~] jpowers% time javac
Usage: javac <options> <source files>
…
0.620u 0.100s 0:01.60 45.0% 0+0k 0+1io 0pf+0w
1.6 Seconds; but you have to under stand that this is Mac OS X 1.2.4 and running on a slow G3-300Mhz. Dude, you need to get your computer fixed.
At work, my main computer is a 64 bit system and it supports Java, Apache, & JBoss or Websphere. I can write & test code on my PC and then move it to the big box for production with out having to recompile or change the code.
Until MS stops telling people to use the Windows API from .NET programs and starts the effort to port the system to other OSs. I don’t see any future for .NET in the enterpize.
~$ time javac
Usage: javac <options> <source files>
…
real 0m0.551s
user 0m0.440s
sys 0m0.020s
And that’s my old Duron750 on a crappy Seagate HD.
Until MS stops telling people to use the Windows API from .NET programs and starts the effort to port the system to other OSs. I don’t see any future for .NET in the enterprise.
Amen
This machine almost be thrown away.
Motherboard chipset: i430vx
Processor:Pentium pro 200
Memory: EDO RAM 32M*4 =128M
OS:mandrake 9 (without any upgrade)
Desktop:KDE 3.0 (solaris style)
JDK:sun j2se sdk 1.4.1_01 for linux
I login as a normal user, open a Kterm window,without any adjustment,run ‘time javac’,here is the result:
$time javac
Usage: javac <options> <source files>
where possible options include:
-g Generate all debugging info
-g:none Generate no debugging info
-g:{lines,vars,source} Generate only some debugging info
-nowarn Generate no warnings
-verbose Output messages about what the compiler is doing
-deprecation Output source locations where deprecated APIs are used
-classpath <path> Specify where to find user class files
-sourcepath <path> Specify where to find input source files
-bootclasspath <path> Override location of bootstrap class files
-extdirs <dirs> Override location of installed extensions
-d <directory> Specify where to place generated class files
-encoding <encoding> Specify character encoding used by source files
-source <release> Provide source compatibility with specified release
-target <release> Generate class files for specific VM version
-help Print a synopsis of standard options
Command exited with non-zero status 2
2.19user 0.08system 0:02.86elapsed 79%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (1693major+980minor)pagefaults 0swaps
With this machine, even i just login to the KDE enviroment without open any window, the CPU rate is always 30%, the mamory rate is always 60%.
To the java developers that use an IDE, which one do you use? I’ve heard good things about eclipse, does it work with jdk 1.4 or just 1.3? I’m looking to switch from c# to java, and need some input. And from my experience, VS.net is a dog, and I would like to let it lie.
I’ve been using Eclipse about 4 months now after having used JBuilder for several years. Eclipse’s refactoring capabilities are glorious, but the UI is a little slow (compared to JBuilder, and JBuilder uses Swing). Download Eclipse M5 and play around with it, if you don’t like it it didn’t cost you anything If you download the GTK2 build turn off anti-aliasing to help with performance.
And yes, Eclipse does work with JDK 1.4.
Jikes is a pretty fast compiler for java, I use it as an (almost) drop-in replacement for javac. It is usually several orders of time faster than javac, although it still doesn’t match MS’s jvc.exe on Windows (although jvc only does JDK 1.1.4)
http://www-124.ibm.com/developerworks/oss/jikes/
If you don’t like that, use an IDE that supports in-process compiling (if it is written in Java) and you’ll see your compile times shorten. Or you could use a build system tool like Ant that does in-process compiling for you and has a CLI interface if you are invoking javac several times.
As for IDEs, I use an array of text editors along with some full-featured IDEs. I prefer NetBeans over Eclipse, only because I find the project import procedure in Eclipse annoying. Both are pretty decent. JEdit is also pretty nice. All are written in java, though, so they tend to take up obscene amounts of RAM… but all three listed also have tons of features. As for comparison with .NET Studio, I haven’t used it so I couldn’t give an opinion.
I think Java’s raw performance (ie, after JITing has taken place) is OK. I can even live with the Swing GUI and extra memory requirements, but it bugs the heck out of me that Java doesn’t use a GAC like .NET. For christ’s sake, what is the problem with JIT’ing once at startup and using the already compiled version? It would eat a lot of that Java startup overhead…. I have tried the JET tool, it sped things up a ton, but had annoying limitations. Anyways, this kind of thing should be designed into a VM language from the start.
I have a 2.4Ghz with 512 megs of ram, and I can stand Eclipse and Netbeans (Eclipse seems to be slightly faster, UI-wise in some cases). I previously had a 450Mhz, neither of these ran at an acceptable rate for my tastes on this slower machine…
…. and waste the valuable thing called time.
Here is the list of J2EE products available:
http://www.javaskyline.com/serv.html
It has more than 50 bullets, containing open source, closed sourced implementations from all the big firms of IT apart from MS. Now, lets see .NET web application products: There is only one, surprisingly from MS, which is new and completely untrustable as every other product from MS. –: ))))
Here is the list of Web services related products based on Java:
http://www.javaskyline.com/webservices/
More than 50. Open sourced/ closed source. I had experiences with many, especially with Mind Electric’s Glue, and Systinet’s Wasp. Apache’s Axis is also nice.
I can’t understand why people are arguing if J2EE or .NET etc. Isn’t the choice obvious? –: ))))
….require cross platform compatibility, then I am 100 percent Java zealot.
Even Brittanica is a Java zealot:
http://java.sun.com/features/2003/02/britannica.html
And Swing rocks people. Face it please. –: ))))
For christ’s sake, what is the problem with JIT’ing once at startup and using the already compiled version?
The theory is that because JIT is a continual process, you can perform on-going optimisations which aren’t obvious at compile time. What you’ve described is delayed compilation, something which is different from JIT.
And Swing rocks people.
From a conceptual level, SWING is superb – it’s one of the few GUI toolkits which actually gets object orientation right. It’s performance left something to be desired until recently, but at this point it isn’t too bad.
Since this isn’t on the main page anymore, I doubt you’ll ever read it, but I’ll answer the same. Programming languages are GOOD for developers. None of them mean diddly to an end user.
Your views on Java and many other things are so myopic towards joe-windows user, it is impossible to have a more detailed discussion with you on the finer points of these technologies. Not everything in the world needs to be geared towards the desktop.