Microsoft wins Annulment of Sun's Java injunction
Will in Seattle writes "A new InfoWorld story on a court annullment of the Sun injunction against Microsoft over Java. Arr, matey, the seas be choppy right now, first to port, than starboard, then port, then starboard. Abandon ship, all ye Java geeks!"
Seems that a contract "dispute," as admitted by MS, and which is about the central contractual issue and which goes to the survivability of the corpus of the alleged contract, should also open the door for the irreparable harm argument required for an injunction.
1. Generic programming is NOT necessary, but it is a really nice feature. Templates are overglorified macros. 2. OO -geared programming is not a problem. It is useful for managing large projects- if you are going to write a ten line perl script then why the hell should you even bring up the subject? Just write the ten damn lines, and be done. Perl is perfect for this. C++ is muliparadigm, but also is rather low-level and has had a very long, painful, corporate-driven evolution to that point. It merges object-oriented ideas onto a procedural language, and does it badly. Not saying Java is the perfect OO language, but that C++ DEFINATELY isn't. 3. Access to system programming is a benefit. There is a distinct line between system-level programming and application programming. And java is meant more for applications, not hard disk defragmenters. How are you supposed to give access to low-level system features in a platform independant way? That makes no sense. You can use JNI to link in native code to do whatever tortures you want to your system, but you lose the platform independance. 4. If your goal is a one line perl script, then again, why the hell even bring the subject up? I agree, perl is better for a ONE LINE program. Now, when you get to about 150,000 lines, tell me again how much you like perl.
sorry.. i hadn't read the infoworld article when i started typing this post, and there werne't any other posts yet. i'd just read a much less clear article at the "nando times" and had come away with the impression that the suspension of the injuction was permanent.. didn't realize it was just a temporary request for elaboration by the original judge. i feel dumb. :P well, my point remains the same, since why else would MS still even be in the case.. :P
:P
p.s. to the AC: you know what i meant by "working"
Irritable, left-wing and possibly humorous bumper stickers and t-shirts
Java already has a native interface built into the specification, and mechanisms for increasing performance, including JITs and dynamic natively compiling virtual machines. What Microsoft has done is to break compatibility on it's OS by NOT using the native interface in the spec, but its own native interface...effectively breaking those apps for all other OSes. Contrary to popular opinion, the world DOESN'T revolve around Microsoft. Java is a boon on the server side, and it's effectively transparent portability allows distribution to arbitrary and unknown clients. That's the point. Nobody is using Java for its GUI speed. They're using it for portability. Once you break that it becomes pointless. Why not just use VC or VB or Delphi or some other native dev tool??
It's 10 PM. Do you know if you're un-American?
- The part-time hack who just wants to "get things done quickly" and who cares if it's butt-ass ugly or not
- The "efficiency nut" who was raised to believe that perl programs longer than three lines are a sin, and will lead to an enternity of coding VB in the afterlife
Either or both of these mindsets are fine for short little sysadmin hacks, but as perl matures into a Real Programming Language, complete with OO functionality, a massive wealth of libraries, bindings, and GUI toolkits, and, very soon, even threading (!) both of these sorts of people are increasingly out of their element. Rest assured that there are those of us out there who take the time to code cleanly in Perl (use strict, scope all variables, comment stuff, use descriptive identifiers, etc-- spend enough time coding for mod_perl and you'll learn to scope your damn variables right quick!). And, most importantly, that writing good, clean maintainable, readable code in Perl is fully possible. It's just not FORCED upon you.So, back to the ivory tower with those who believe that if you can't malloc(), you can't program. Perl is bringing code to the masses, whether they like it or not, and if you care to, you can learn to do it the right way.
And as for "Perl is slower than Java," all I can say is WTF??? Shrug. Some people...
There is no K5 cabal.
I am not the real rusty.
Check out GJ:
- -
http://www.cs.bell-labs.com/~wadler/pizza/gj/
Xenu loves you!
Rewritten the code? The code has been continually evolving over that time. The number of deprecation warnings I get when I compile everything under 1.2.2 is very minor, and easy to fix stuff. I can't move off of the deprecated stuff yet because I still want to support compiling and running the code under 1.1.x., but if someone held a gun to my head and forced me to clean up all deprecation warnings under 1.2.2 it wouldn't take me more than a day or so to fix...
Language flux really hasn't been an issue. Since we began, inner classes were maybe introduced, but that's about it for language changes. Class libraries have changed quite a lot.. I started developing Ganymede before Swing, and so I spent a month or so developing a tree component and a month or so developing a table component, which is sort of time lost, but no one is forcing me to rip out that code now. Generally speaking, the libraries have just gotten more robust and correctly functional over time. There were some bumps when they introduced the new security model in 1.2, but the folks at Sun were very responsive to the bug reports I submitted, and everything's working fine now.
The reason to do it in Java is that Java provides so many great pieces of technology that makes the whole thing work.. a robust thread system with language-level support, portable GUI, RMI network-translucent method call support. This would have been (at least) a 300,000 line project in C++, even assuming I was able to start off with Qt or GTK back when I started. It just wouldn't have been doable.
And I had no idea it was going to get this big, anyway. ;-)
- jon
Ganymede, a GPL'ed metadirectory for UNIX
Freudian slip? :)
"so late and can't even match the current Communicator, much less the vastly superior IE5"
In what aspects can it not beat Communicator and IE? Would it be that it has yet to support proprietary, fractionated versions of the actual standards?
"So...why aren't they coding it in Java?"
Um...there is an effort to code it in Java. It's called Jazilla. There is also an independent effort Jozilla. Grendel has been resurrected and is also being worked on. Am I to assume you are being sarcastic or just brain dead by asking why the actual Mozilla is not being written in Java? The obvious answer is that Java is not yet fast enough, and HTML/CSS/whatever layout is highly cpu intensive and complicated. On the other hand, the Gecko component has been abstracted and could very well be plugged into a Java shell for pure performance matters. There are already some kick ass pure Java HTML renderers out there anyway, just not a homemade Jazilla one. If Mozilla *were* to be written in Java you would see things like NSPR, XPCOM, XUL and other portability layers disappear. IE was written for one platform so it can be easily optimized for that platform. By using their brains a bit, the Mozilla team has made a pretty darn good browser for many platforms, which, seeing its optimized component embedded in other applications already, seems like it will knock the pants of IE. (oh, yeah, you do realize that the Mozilla builds are DEBUG builds? I guess you didn't compare against a DEBUG build of IE?)
"If they did, they could stop people from wasting time on portability issues and have them working on the core browser."
What you call wasting time, some call innovation. BTW, don't worry, there are plenty of people working on the "core browser"
"Wow, right now I'm sitting at a Win2K box running an X Server providing me terms from both my Linux box and my Sparc, so I guess I'm better than you, right?"
How does that make you "better" than somebody? If I said I was sitting on at Win3K box with terminals to an SGI, Solaris, and AIX box would that make me "better" than you?
It's 10 PM. Do you know if you're un-American?
You're an idiot.
1: That's not saying much. If you take shrink-wrap licenses as signatures, the majority of America has signed a contract with M$.
2: You don't have to sign a contract with M$ to be screwed by them. They're an equal-opportunity fiend.
Sun's mistake was to attempt to defy Microsoft with something as small as a multiplatform language. You don't bring that weak stuff around Microsoft. We may, repeat may be having an effect on them with the combined weight of the government (personified by the DoJ) and a software development model most companies can't even grok, much less fight (that is, OSS).
Any attempt to remove Microsoft's hammerlock on the software licensing industry has failed, plain and simple. The only reason that Linux is actually winning these days is that it is avoiding that industry entirely.
While MS has its hammerlock on the software license industry, Linux and other projects are creating a new industry of software service. Microsoft can have their licensing monopoly. The open source movement is attemptint to do nothing less than marginalize the software licensing industry. Since Microsoft owns that industry, they are simply suffering collateral damage.
They can use every last trick in the book to keep a monopoly on sailing vessels. We're selling steamships. We aren't trying to render Microsoft obsolete; we are trying to render software licensing obsolete.
--The basis of all love is respect
Java is very mature for its age. The multi-threaded server for my app is extremely robust.. even when there are bugs in my code, the server just keeps going. An individual thread may throw an exception, but the overall system keeps going no matter what. No segfaults, ever.
And I haven't seen any major speed issues.. it helps that I developed my server code on a 60mhz multiproc Sparc system and the client on a p133.. algorithms win over linear code execution speed, like they say.
With HotJava, Java is actually really good for server code. It would still be nice to be able to tell the compiler that I wanted to continually re-use a memory buffer for some purpose, but in almost all other respects Java and its class libraries are perfectly suited for robust programming in the large. The changes from 1.0 to 1.1 to 1.2 have indeed been somewhat jarring, but each change was noticeably for the better, and the workarounds I wrote for things that were missing in earlier versions of Java don't break under the new, so what's the problem?
- jon
Ganymede, a GPL'ed metadirectory for UNIX
And... it's a great thing being able to take a complex server and install it on a new UNIX system without having to compile anything. It's a great thing being able to take the client and run it on any UNIX system, any 32 bit Windows system, and even on a PowerMac without having to so much as compile anything.
- jon
Ganymede, a GPL'ed metadirectory for UNIX
RE:"Of course, I guess that's what I get for using IE5 on windoze, where you can't turn the sound off easily... "
.conf file...
I suppose Tools/Options and clicking the "Advanced" tab is way too difficult. I'm sure you'd rather be editing a
I can see why a Linux user would be startled however, as a functional sound card in Linux is rather unusual...
Perl wouldn't be bad if it were a little less permissive, but it's a definite nightmare in the hands of the "STUDY programming?!" crowd. About 75% of the Perl code out there makes me wince, it's like listening to an anime freak from Chicago string together his ten words of Japanese into a "sentence."
But hey, brain-damaged or not, it runs! There's More Than One Way to Do It! Feetch, feetch!
You know, I don't get why so many slashdotters take such glee in "bad" news about Java. I also spend a fair amount of time at the Java Lobby site, and I can tell you that the hostility is not shared.
Every post I see at Java Lobby regarding Linux expresses enthusiasm and praise. Those who use Linux as a platform for Java development (including me) are very happy with it. They want to see Sun loosen their control and they want to see both platforms succeed.
But now, Will in Seattle comes along with a court ruling that says that the original injunction against Microsoft was wrong, but that the case itself has merit. His cute comment? "Abandon ship, all ye Java geeks."
I would love to send Will an email asking him what he has against Java, but I can't. The e-mail link gives me "we.are.lost.at.sea@sun.com". That's cute, but it basically turns him into an Anonymous Coward, just like me. I guess he doesn't have the courage to handle the flames he knows he will incite. Maybe a better solution is to just leave out flamebait comments.
What is the point? The fact that I use Microsoft's development environment does not mean I *like* their development environment (when I'm not at work, I use XEmacs and JDE). J-- is actually bastardized enough that it pretty much is the exact same thing as ATL and C++. Java interfaces mapped into COM objects, Java types mapped into variants. They basically took all the disadvantages of C++ (pointers, non-automatic memory deallocation) and made something like Visual Basic speed-wise. IF Microsoft manages to make a future version of J++ Not use pointers, Not use multi-inheiritance, and perhaps allow it to compile to native code (or at least allow redistibution of the @#$@# JVM, they required IE4 to be distributed last time I checked.. why use a hammer when a steamroller can do the same job?) then my employers and myself might consider it- but it would as a stepping-stone for a _pure_ java program later on.
I spent a good chunk of my summer writing perl code and making good money at it. You know what? I don't miss the money one bit.. cause I don't have to look at perl ever again if I don't want to. More time for python/c/c++ :)
I use SimpTerm. It's completely free. Closed source, but freeware.
I was beginning to take this seriously until a couple of things caught my attention.
:)
:)" - Hmm, the author lost all remaining credibility with me on this one. Obviously this was writen by a 'fan', and not someone serious about choosing the best language.
1.) Date: Wed, 3 Apr 1996 23:06:36 -0800 (PST) - A little dated, no?
2.) "Trust goes hand-in-hand with security, and i don't trust java or the monolithic mentality that has come with it." - So there's no 'real' reason to distrust Java?
3.) "...i don't like Netscape on principle." - Gee, that's a kind of immature stance. What ever happened to taking something on merit?
4.) "...but it is an extensible language and fork() forks, so there's no reason a 'thread class' couldn't be written that does what java does." - I'm not sure what the author intended by writing this. Suggests to me that Java is a more robust language, if anything.
5.) "...but tcl-Tk is available for Mac and Windoze/95/NT, so it is a conceivable that the ports could be done creating a standard platform-independent GUI API." - Again, same as comment 4 above.
6.) "Now i'm just gonna 'go off' on java in general..." - Hmm, once again the predetermined dislike of Java. Could this hapless programmer have been fearful of losing his job? Or is there something else at work here?
7.) "Penguin is grass roots. that is a big plus for any project that wants to earn wide-spread acceptance and trust. java is anything but grass roots." - Who cares where it came from so long as it works? Seems like yet another example of juvenile dislike.
8.) "I DON'T TRUST A LANGUAGE THAT HASN'T HAD TIME TO MATURE!" - Fair enough. Well, that was early 1996, it's now late 1999. I know it's not a long time, and the language isn't mature yet by any stretch, but it seems to be coming along nicely.
9.) "...so i guess i'm saying that java is like 'BASIC' for the internet. java will be supplanted by the better big brother, and java will go away." - This prophecy hasn't ocurred yet, and on account of Java's robustness I can't really see that happening yet. Of course better languages will come along to replace Java for what it's best at.
10.) "i don't like bandwagons, java or penguin, but in this case i'm rooting for the underdog." - Again, senseless biases. Use what works.
11.) "more likely, java will get the shit kicked out of it by perl
I don't really know how anyone could use this correspondence as a lever for Perl (or any language). It was poorly disguised Perl-fandom. Perl has merits, and Java has merits. Use what works for your task. Incidentally, I don't know any Perl and am relatively proficient in Java. This post is not meant to be mindless advocacy, just some clear thinking.
Regards,
--
as
peanut butter is to water
I.e., Microsoft is doing their usual thing of taking a competing technology which supports multiplatform use and using their market clout to either a) take over the market with thier own competing product and/or b) simply trashing the technology's reputation by getting their fingers into it and making it only work in their favor.
We've seen this in many technologies (browsers, Jscript, J++, streaming video, etc.), not to mention direct competing products where the target company was either out-right bought out, squashed by illegal business tactics, or the technology 'fudged with' to make it only work reliably in Microsoft's favor. It's funny to see the lawsuits for Win3.1 apps finally be making it out of the courts, but it doesn't matter since nobody uses Win3.1 anymore...
Microsoft is pure EVIL. Their inability to innovate while at the same time squashing other companies' innovation has brought OS and app development to a stand-still for about a decade now. Many former, present, and even future M$ employees admit this. It's no wonder that open-source projects have kept moving (and caught up!) while commercial products have been mysteriously stagnant for a decade or so. That's a very, very long time to see this little innovation (besides Internet related which M$ has had little to do with).
--Phil
I use Putty, all the bang for nary a buck (ssh etc)
I'm the installer wrangler for my company, and I'm fairly impressed with InstallAnywhere, by ZeroG Software. It provides many of the features you describe. I use it to install on both Windows and Solaris; it's been fairly hitch-free, and their tech support (for the questions i did have) was responsive.
mahlen
Envy is the beginning of all true greatness.
--The Master, "Doctor Who: Logopolis"
Not HotJava..
Sun's HotSpot JVM on Sparc is actually really sweet.. they finally have a memory management system that can scale really well for server applications.
- jon
Ganymede, a GPL'ed metadirectory for UNIX
Thank you, I stand corrected. Unfortunately, my client needs some network configuration parameters set, so I can't just distribute a pre-made exectuable client jar file for direct download and execution.
I already have a good deal of perl scaffolding that gets involved in the install process, though.. maybe I can set it up so that the installClient script can build a customized jar file with a customized properties resource that the user could then just run from the desktop.
In practice, requiring people to visit a web page to run my app isn't a bad thing, as it lets me make sure they always get the latest version of the client code, but I do like the idea of a simple way of running the client free-standing from the Windows desktop.
- jon
Ganymede, a GPL'ed metadirectory for UNIX
Perl
Don't jump yet. This doesn't have any bearing on the final outcome of the lawsuit. As the article stated
.... the appeals court allowed that Sun has amassed 'significant evidence' in its case against Microsoft, and basically upheld the lower court's opinion that Sun is likely to prevail in the case based on the merits.
I totally disagree that memory allocation is an unnessecary complication. If you are writing Perl code, how can you guarantee that it will run regardless of the amount of memory on the machine running it?
Perl automatically allocates memory for the data you declare, and will automatically increase or decrease allocation for aggregate structures such as arrays and hashes as you add or remove data from them. And it releases that memory for temporary varaiables efficiently if you make good use of the scoping rules, since they can be de-allocated at end of scope (which is one of the main reasons for using Perl 5 properly). It will do this until all of your virtual memory is exhausted.
By default, Perl uses its own malloc, which maintains a pool of memory that is a little larger than what you need for speed. If you want, you can compile the interpreter to use the built-in malloc for stingy memory allocation. But after years of developing Perl on major projects, I have never had to use the stingy malloc option, and have never had an out-of-memory error that wasn't caused by my own bug -- and these have been extremely rare, and have always been found before code went into production.
Even if it does gracefully exit from the code, can you control the execution? What happens if it is some security critical application (e.g. credit card transaction) and you have no idea where the transaction was terminated?
If you get an out-of-memoty error, execution terminates at the point where Perl couldn't get enough memory. If you want, you can force error messages to print a complete backtrace of the calling stack, so you can see exactly where it happened. How you recover depends on what you're implementing. If I'm programming against an Oracle database, for example, I can tell it not to commit transactions until I explicitly say so. With MySQL I can't do that, so I have to come up with some ither precaution.
But frankly, none of this has much to do with the language or even with memory allocation. You need to program critical transations robustly in any language, against any potential failure. How do you expect this to be any better with malloc() and free()? If you write it in C, you better trap the SEGV signal, and your signal handler better do something fast -- and you can define a signal handler in Perl, too.
If you cannot decide where a memory allocation failed then you have not programmed for all eventualities. I see this is the main weakness of Perl.
I couldn't disagree with you more. malloc and free are a major source of bugs and headaches, and they are almost completely superfluous. The fact that Perl makes them invisible is one of its greatest strengths.
Always keep a sapphire in your mind
"1. No adequate generic programming support. Having everything derived from Object doesn't count - in the process of casting to the appropriate type, you lose valuable static type checking. C++ is far ahead in this respect - templates are great and the STL is heavenly. I think the STL is so good that its worth using C++ over Java just for this reason."
If you weren't aware of it (you're apparently not), there is a proposol for adding genericity to Java which is being taken very seriously and is going to be added to Java real soon now (actually some of it is already in, AFAIK, but just not documented/being used).
"2. OO Obsession. The depth and breadth of the standard class tree in Java is absurd and really gets in the way of accomplishing simple tasks. Also, the insistence that users adhere to OO as a paradigm really stinks. C++ does not force this on the developer - it is truly a multi-paradigm language."
Well "absurd" is really subjective. In some places OO is taken a bit far. But OO isn't OO unless it is taken as far as that. Java isn't even pure OO. If you don't like adhering to OO don't use Java. You don't hear me complaining about assembly! If your goal is to be able to program in multiple paradigms in the same language, then great, use C++. Don't complain about Java then.
"3. No access to system programming."
If you want "system programming" you are *obviously* using the wrong tool!
"4. Crappy text handling abilities."
Actually Java has some pretty nice text handling abilities, but it is still not PERL!! Use the right tool for the right job. Will you complain that cubes don't roll as well as you're spheres and thus are worse? Or perhaps you can't stack spheres like you can cubes, so then spheres must be worse?
Your arguments are totally orthogonal to the issue. Java isn't a multipurpose tool. It isn't a system programming language, or a practical extraction and reporting language. You are saying "Java is being strangled by Sun"...do you actually WANT it too turn into the multipurpose Frankenstein you describe? egads.
It's 10 PM. Do you know if you're un-American?
I couldn't read the whole story. Some 'banner' ad started talking to me. Thats one of my biggest pet peeves.. sound on a web page you can't shut off, and aren't prompted to start or not. Of course, I guess that's what I get for using IE5 on windoze, where you can't turn the sound off easily...
Am I the only one that fears the ad patrol? I have no problem with people making money by selling advertising space.. I have a problem when its as intrusive as possible. Hell, if they could they'd probably make it tap you on the shoulder. Advertising is not evil to me, as it is to some. But, if you make your web ads annoying, not only will I try not to ever give you money, but I'll also stop going to the pages you advertise on. I hope that some advertisers are reading this.
JAVA could have been the "wave of the future", but like most things with power and no marketing it will gradually fade into nothing more than a memory.
*Grizzeled 1840's prospector voice*"Shucks, I remember when all the browser plug-ins were coded in JAVA, then there was that COBOL revival and, well you know the rest"
crazy dynamite monkey
You miss a critical element. Microsoft's basic strategy whenever they have needed to 'take out' someone is to roll it into the operating system. If not prevented from doing so, Microsoft will simply place their _incompatible_ "Java" interpreter (not the compiler - just the runtime note) on every new shipped windows OS. Developers will then be _forced_ into writing for it since it will be the most widely spread "Java" interpreter. And Microsoft will win again. It is that simple. Our only *real* long term hope is that the Justice Department anti-trust suit succeeds and obtains a remedy of at least the level of forcing Microsoft to keep their applications and OS development *seperate*.
- Networking
- Database access
- multitreading
In addition, the speed of the Java language on a server application is good enough. With SUN's HotSpot compiler Java is only 30% slower than native C++.I was once a very strong advocate of JAVA, and developed a number of programs at work using the JDK under Solaris and, later, Linux. All of these programs have since been rewritten in C++. JAVA may not be dead, but it is sorely wounded and has squandered its window of opportunity.
:-) There was a brief time when JAVA really appeared to be the best hope against the Wintel hegemony and many flocked to its cause, a unique window of opportunity wherein if the core product had been open source, it would have been able to leverage a much stronger position as an industry standard, with or without MS and the ISO.
Sun made a serious error in not releasing the core JDK under a (L)GPL-like license. If they had:
* they could have very effectively prevented Microsoft from doing what they did, as the license would have required MS to release the source code to their incompatible hacks. Had Microsoft not done so, a lawsuit similar to the one now under way could have been filed.
* In fact, the GPL or a similar license would have prevented anyone from hijacking their work and turning it into a _proprietary_ competing product
* they could have harnessed the immense goodwill they enjoyed, and the product would have been improved much more rapidly. Even the date/time classes would probably have been fixed properly.
* the JDK would have been available much earlier on many more platforms, avoiding the disillusionment of the broken promise "write once, run everywhere"
* they could have still sold a value added GUI development front end, additional object libraries (such as swing enhancements or whatever) and made a tidy profit
* many more developers would have embraced JAVA, as it would have been perceived as a truly open product, whose very openness would have meant a much less ambiguous future.
Instead, it was an interesting fad that, while it probably won't die anytime soon, certainly will be marginalized and will almost certainly never live up to its potential, much less it promises. Suns ambivelence with respect to Linux shows that much of their uppoer management still doesn't really understand why the Open Source/Free Software paradigm works so well, or how they could leverage it to enhance their business. Alas, the learning curve appears to have been to steep for them, and JAVA just one casualty of their lack of vision. At some point Sun will need to let go of their old "embrace and extend" and "maintain proprietary control" strategies, if they are to prosper in an Open World.
The Future of Human Evolution: Autonomy
As others have said, this decision seems much more a procedural and technical thing rather than anything presaging a specific result that would be injurious to Sun.
In general, I think Sun has passed the point with Java where they would be very vulnerable to Microsoft's predations. When Sun initially licensed Java to Microsoft, Java was honestly rather weak in many areas, but Java 2 (aka 1.2), with Swing and all the many other enhancements and APIs make it much less necessary to need to drop down to an operating system to be able to develop a rich application.
It's unclear whether Sun still dreams of kicking Microsoft off the desktop to any extent, but if they do, I'd say they need to work on a rich and portable way to package and distribute Java programs.. it would be great to be able to distribute a single archive and to have an executable script activate to unpack and install the software, much like with rpm's and and with InstallSheild on Windows. It would be especially great if it was written in Java and allowed local administrators to write their own Java methods to configure the local software install logic so that they could take an operating system-generic package and install it in accordance with local practices.
- jon
Ganymede, a GPL'ed metadirectory for UNIX
That's the problem - Sun has pointed it at so many problem spaces that they're not sure WHAT they want it to be. Currently, they appear to be moving it towards VB space, which is a shame.
"We think that in the future Sun will win based on the evidence. However, there was also that preliminary ruling, which was prior to the presentation of evidence. Unfortunately, we don't think there was enough evidence present yet(!), so we're overturning the first decision. But when the whole shebang is over with, it looks like the first decision will be the right one."
Lawyers.
P.S. Java rocks.
Then what is it????
I love the Java language. It's easy to learn (especially with a C background), in demand for jobs, and efficient for doing business programming.
The downside? The big companies (most especially Sun) are killing off innovation. There's lots of Java component companies around, but not nearly as many as there would have been if Sun didn't keep taking all the really cool ideas and APIs and bundling them with the enterprise APIs.
I know--there are good development projects, exciting development projects with free software that are going on. But I can't help but feel like Sun is really trying to be the Microsoft of the Java industry. I remember all the neat widgets that came out because AWT 1.0 sucked so bad. And I remember how a lot of those seem to have dried up since Swing.
Personally, I foresee Java becoming marginalized into two pockets of development--big pockets, but pockets nonetheless. We'll see Java development in the enterprise, side by side with the VB-heads, and we'll also see Java in the embedded, consumer, and "pocket" markets. Developers in other development areas have been so burned by the actions of Microsoft and Sun in trying to take over Java that there won't be the desire to create the next cool thing in Java. Instead, expect it (like we've been seeing over the past year) in Perl, Python, Tcl, or the like.
Blech. Congrats soulless corporations. I code Java nine hours a day at work, and I don't see a lot of future for it outside the enterprise. Torvalds was right--much as I don't want to admit it.
Chris
I think you're right on the money. Java wants to be C++, Visual Basic, Perl and (choose your language) all rolled into one, as a result, it ends up being tolerable for many things, and not really excelling at anything.
If Sun really believed in Java, they should have let it go. They can't, and so, they'll relegate it to a niche market.
Not really an AC. I just can't seem to remember my password.
Charles Egan cega@DON'T_SPAM_MEoklahoma.net
For small tasks you and Stepanov are probably correct about OO (given the available tools). On large projects OO can be a win. If done correctly and with the right tools, a large OO system ideally will be easier to maintain because intrasystem dependencies will be reduced. In other words, in a properly designed and implemented OO system, the effects of changes are more likely to be localized, and won't ripple catastrophically though the system. The big "gotcha" is that a very large fraction of the people using OO languages are not using them correctly, and are designing and coding in a procedural style only slightly better than classic Fortran or C.
And the omission of generic programming is unforgivable.
I really don't agree. I've spent the last 4 years (almost) developing a large, multi-user client/server, multithreaded application in Java (see my .sig).. 170,000 lines of code so far.
This just wouldn't have been possible in C++, with the limited developer resources I have (me and a student working on the code). Java is great in many, many ways when it comes to developing robust large-scale code. There are certainly things for which Java is not the best tool, but for a lot of things, Java is a great tool.
- jon
Ganymede, a GPL'ed metadirectory for UNIX
Are you psychic or just making shit up? He didn't mention Linux, Unix, or in fact any OS other than Windoze - a name many who use it frequently or even exclusively apply to it based on performance.
I'm not clear what Chris is saying here. You mean Sun shouldn't make the product better? I'm sure they weren't very happy with AWT 1.0, so i think it's kind of a lot to ask of the developers at Sun to say, "Well, a lot of the last release sucked wind, but there's now an industry built around fixing that, so we can't change a thing, no matter how many great ideas you have."
As a developer, i appreciate the opportunity to learn from my mistakes/oversights/running out of time, and then have a chance to redeem myself (and make my customers happier) by fixing them. Plus, if i had to write Java code but not know which patches/fixes/3rd party packages they have installed, i'd be wondering what the point of cross-platform code is.
A corporation that learns from it's mistakes is not a bad thing.
mahlen
You have to panic--I'm thinking.
PPl that make the duh decisions are upper/middle level managers. What software do they need? Word processing (not that they write documents, they just need to read and print them), transmission of the documents (e-mail attachments), spreadsheets (not that they generate spreadsheets, they just want to read em), and finally, viewgraphs (not that they, well you get the point).
The upper level managers that I deal with are technically clueless. They don't want their secretaries figuring out different formats. I swear that they are the first to upgrade to the next incompatible version of Word or PowerPoint thereby forcing the others to upgrade. No, No, just save this document with the previous format version. Sorry, too hard to comprehend. The ironic part is that they don't need or use the new features. I/we just got another PowerPoint "template" to fill out. Except the format was not a template except for how the final viewgraphs should look like.
Why am I rambling about all of this? Is there a java based program(s) that provides all of this upper management functionality? All most of these bozos need is java script capabilities so that their web browser works okay.
Back on subject. Sun will probable win this round. MS will put their normal spin on this. Sorry for this off-topic rant but obviously I'm kind of pissed off at this time.
BTW, I work for THE MAN who is part of THE MAN that blindly uses PHB friendly software. (Geez, I really had a bad day at work today.:))
Don't get me wrong, commercial unices were no shangri la, but windows didn't really do all that much of what you're talking about.
Plenty of windows programs don't work accross windows version (though they are in the minority, granted).
As for the UI choices, you are right. There's just one and frankly it's mediocre. Why is choice such so abhorrent to corporate types? Why are you people so god damn scared of someone having their kill-window button in a different place than yours? Hint: pop up an xterm and you can do everything that you could have done before just as efficicnetly for the most part. Hell, telnet into the box, you'll never have to know what the UI on the box looks like. heaven forbid that users actually read a bit of the documentation or take a look at the tooltips.
God, so much time in an office is wasted chatting, walking to the bathroom, coffee room, etc. that the hour spent on learning the keybindings for a particular application is very minor. You people talk like you're dealing with robots, for God's sake! They'r epeople. They're inefficient by design. You're never going to get maximal productivity out of them, they won't give it.
And please don't talk about libraries. Yes, in unix you have to figure out which to use. The windows way is much worse - they decide for you then tie you to a particular version, overwriting your current verision if they possibly can.
What windows did, more than anything else, was to introduce the paradigm of the crash into computers. Sure, things were buggy before, but windows dies ona fairly regular basis, at least if you tend to install and remove programs from it (though installing is usually enough on its own). That or crash.
Windows did set back the computing industry in many ways. They substituted glitz for quality, not unpredictably, and moved the computer industry in that direction.
Oh, and do you code for win32, MFC, VB, J++, or what? Don't give me this bullshit that there's one and only one way of doing things in windows. Windows is as much of a pain in the ass as anything else (if you really use it), it just works less and is a closed box, so you can't fix it when it breaks. Frankly, it's a black mark on human history that I just wish would be erased. Profit and greed don't have to go together, merciless immoral bloodsucking doesn't have to have anything to do with profit at all. I want to be rich. Very rich. I just also want the world to be better off for me having existed, too. Microsoft seems to have completely disregarded that second one.
"For what does it profit a man if he gains the whole world but loses his soul?"
Less prfound, what does it gain a man if he gains the whole world but destroys it in the process?
They laughed at Einstein. They laughed at the Wright Brothers. But they also laughed at Bozo the Clown. -- C. Sagan
I every now and then over hear the math heads in our uni mumble something about it. They seem to think its good for doing some math things with nth dimension or sumfin.
Go figure. They must be crazy.
The lifting of the injunction means that Microsoft can use Sun's trademarks on all sorts of crap. Further muddying the already murky waters of Java development, particularly on the Pointy-Haired Boss level.
Also, while the judge said that Sun was likely to win the breach of contract case, he said he didn't see any copyright infringement case there. If Sun wins the breach of contract case, all that happens is some cash changes hands from Microsoft to Sun, big whoop. For it to mean anything to people outside of Sun, the court needs to be ruling on the copyright infringement part of the case. Such a ruling has the potential to have much stiffer penalties, and more effect on how Microsoft does business.
----
----
Open mind, insert foot.
MS trolls perhaps?
-----
".sig,
Hmmm....quick and easy to use? No nasty memory allocation to worry about? This makes Perl sound like the Mac of the programming world. B]
It's coming, but hasn't been implemented in the language yet. But I do hope they manage to do alot better than what Stroustrup did for C++. Hopefully they will do it similar to Eiffel's implementation.
People are interested in java _want_ the program to be crossplatform and will test it... so if MS makes it hard to ship crossplatform java then people won't use their tools. Obviously a few people will be caught out .. but not serious developers.
Your not forced to use MS products, they just make it easy for you to choose to. If they upped the stakes such that they blocked other peoples JVM's working on their systems then, yes this would be a problem - but also a nobrainer court case - even for the Appeal court.
And as I pointed out - most people don't want to do serious server side development on NT - now there are good development tools for UNIX - ie java, there is no need. Obviously these people don't give a toss about MS's irrelavent posturing
In my view the court case is about breach of contract pure and simple.
Gab
I suppose you couldn't figure out the e-trade page either...
click the speaker icon in the toolbar and check the "mute" box. Is it just me, or does that seem pretty simple?
The folks MS hired to write HyperTerminal have an updated version that does TCP and such. There's no charge for personal use, but naturally no source
Review your C++ history. It has been multi-paradigm from the start. That is one of it's strengths and one of Java's shortcomings.
Do a somewhat more objective comparative analysis of C++ and Java. You'll find that their OO features are roughly equivalent. C++ is actually slightly more mature than Java in this respect.
Before dismissing generic programming, try it. Templates are much, much more than glorified macros.
Now, before you think I'm a rabid C++ fan, I'll have you know that I use C, C++, JavaScript, Visual Basic, and Perl on a fairly regular basis, and think they each are good at what they do best. I also use a few other more arcane languages when one of them fits the job at hand.
On the author's third pont, you completely miss the boat. I believe he is suggesting using the right tool for the right job. Java could have a place, but Sun wants it to be everything to everyone. Come on, embedded devices, killer GUIs, cross platform and easy to use. Sun needs to figure what they want Java to be when it grows up and concentrate on that. Don't get me wrong, I'd love to see something for building cross-platform, killer GUIs that blend harmoniously with their environment. But, I'd also like to win the lottery.
I don't recall the author suggesting that you use Perl for a 150,000 LOC program. For that matter though, I've yet to see any very large systems coded in Java either. I can however point to a multitude of 150,000 - 30,000,000 LOC projects written in a mixture of C/C++. Linux/KDE/NT/(Name your *NIX).
In closing, relax, grow up, and remember screws aren't meant to be hit with a hammer.
Charles Egan cega@DONT_SPAM_MEoklahoma.net
PYTHON
Their mistake was to sign a contract with M$. M$ has screwed everybody else they signed a contract with too.
War is necrophilia.
I agree with most of what you say. Sun don't need MS to screw Java up, they're doing OK at that on their own. The ISO fiasco and split with IBM on the OS two cases in point.
I disagree with MassacrE's statements about OO. OO's good for a small to medium multideveloper project. The paradigm starts to run out of gas when you're talking about really big and complex systems, e.g. a telco billing system: they tend to collapse under the weight of the management and documentation overhead that strict OO projects require.
If I was to stick my neck out and say that OO is nothing more than the enforcement by software of what should be good development practices, but with a reduction in the flexibility which is sometimes necessary, I'd probably get flamed - so I won't.
I became disillusioned with Java when the two projects I wanted to use it for landed me in a few of the Java object heirarchy's holes - one required using nonblocking socket I/O, which in Java requires a horrid kludge using socket timeouts which has to be seen to be believed, the other landed me square in the middle of the DMZ between COM and CORBA and would have required me to use visual J++ (which is godawful), buy the overpriced Linar software, or start fiddling with low level COM for which I could have used C or Delphi anyway.
And this for Java, a language which is supposedly BUILT for network applications!
I wrote my Windows versions in Delphi, my Unix versions in Perl. Both work, even if they're not Java.
Eagles may soar, but weasels don't get sucked into jet engines.
> 1. No adequate generic programming support.
;)
I can write you containers with static type checking. Easy peasy! What else are you using templates for?
> 2. OO Obsession.
I would not call it obsession, but clarity. Anyway, if you don't like classes, just put everything in static methods and you got your "good" old structured programming. Really don't know why you want this. 8-/
> 3. No access to system programming.
Use JNI and do whatever you want. Java is meant to be cross-platform, remember!
> 4. Crappy text handling abilities.
Use ORO. ORO is your friend!
I don't expect this discussion to go anywhere anyway.
MCC,
I'd hate to say it, but you seem to have a rather tenuous grasp of what this case is about. It really is rather simple and has nothing to do with the points that were raised.
Microsoft licensed Java from Sun. They licensed it before the addition of certain components was required for the 'Java' logo. Sun added new components to the standard and changed the license to include the new components. Microsoft says they don't have to ship their version of Java with those components to use the 'Java' logo. Sun says they do.
The whole case is about finding out whether Microsoft can legally use the Java logo or not. You seem to have some sort of advance knowledge if you can claim either that "MS is using Sun's name and logo without permission" or that "They are commiting (sic) fraud".
The FACT is that Microsoft may be using Java entirely with Sun's permission according to the original license and that they are within their legal rights to do so. This seems to be what the appeals court is currently saying. It may also turn out that they went beyond their legal rights. It is up to the courts to decide and is not a foregone conclusion anymore.
You may NOT use the Windows logo from any precedent in this case no matter which way it comes out unless you happen to have a copy of a license between yourself and Microsoft that says so. You are bound by any license you agree to, as is Microsoft and Sun. The case is about finding what that license actually said.
You may not claim Wine is 100% compatible with Windows because it isn't. Microsoft is claiming that their product is "Java" based on the license they signed initially, before Sun added new things to it.
The FACT also is that MS's Java works very well and is MORE compatible than most other VMs out there. I'm sure you never really tried it though and just rely on rhetoric and FUD for most of your opinions.
Now, from the way I see it, your post is more FUD than the average MS marketing slide. Hope you turn from your ways lest you fall down the same slippery slide.
John Wiltshire
Fear: When you see B8 00 4C CD 21 and know what it means
Sorry, but your rant doesn't have much to do with reality. I'm sure every OS-maker out there would _love_ it if Java apps both looked to the end user exactly like a native app as well as had the performance of a native app. The reason why all the OS vendors don't come up with their own Java implementations fine-tuned to use their specific system extensions isn't altruistic -- it's because there isn't a big enough market for Java apps tuned to those OSes. How many companies out there are going to make, for example, a Java app targeted at BeOS, when they can make it non-native and grab a much huger potential audience?
Here's where the difference is. If you code for Windows-specific extensions, you're not going to be able to get at 100% of the potential audience, but you will be able to get at 90% of it, which is still a huge number of people. So it comes down to a decision for developers: is it worth dumbing down our app to the lowest common denominator just to reach that extra 10% of the audience, or is it more important to make our app as appealing as it can be to the 90%? With all the different Windows apps out there, it's an important decision -- if we decide to use 100% pure Java, how much is our look-and-feel and performance going to suffer compared to all our competitors who are using C++ or Java with WFC or other Windows extensions? If it does suffer, it's quite possible that we threw away 90% of our target audience just to have a chance at the 10% we didn't have before.
This doesn't have anything to do with any evil monopoly rabblerousing. It has to do with each ISV's free choice as to whether or not they feel that 90% of the market is enough of a potential audience, or if they want to reduce their app to a lowest common denominator status that might end up appealling to no one in a highly competitive market.
Cheers,
ZicoKnows@hotmail.com
Sun does not want any variants of Java. By releasing the code under the GPL or LGPL, they would allow others to make variations of Java that are not compatible with Sun's spec. This would completely defeat the purpose of Java! Sun wants only one version of Java, and they want to make sure it's the right version. After all, they created the language.
I think Sun could being a much worse job with Java. I think they're goal of ensuring that all versions of Java are compatible is the right one.
If you want to write Windows code with the Java language, you can use J++. Microsoft doesn't need Sun's permission to make their own implementation of a Java compiler. But, if you want to make a cross-platform app, then you need Sun to take a strong-arm approach to JVM implementations. Otherwise, you'll never get around to debugging your app on all these platforms.
News for Linux Evangelists. Stuff that matters to them.
just a thought
http://www.freebsd.org
Then what is it????
A general programming language? Just like C, or C++, or Eiffel, or Smalltalk, or Ada, or Pascal, are. And a whole bunch of other languages -- my apologies to the fans of those GP languages whose favorite I forgot.
your solution does ensure that the right type of object is held in the container, but it does so at runtime. hence what you have is **dynamic** type checking. note that when you retrieve items from the container, the client will have to cast them to the appropriate type. of course, java will dynamically verify that the conversion is safe. but in c++, you wouldn't need the cast, and the checking would be done at compile time.
Grab cygwin and compile gnu telnet. Why is it that nobody seems to acknowledge cygwin when discussing windows?
Technically savvy people are supposed to be in demand. Unfortunately, we are not in demand enough to bring to extinction the PHB. Why is this? I can't wait for you kids to grow up and change the friggin world already, instead of putting up with this crap.
Just for the hilarity factor! I agree with the above poster's sentiments (C for CGI and Java for the Rest), but he expressed it much more.... succintly than I ever could. :)
And, yes, I have used PERL and made some very functional works out of it--the language simply doesn't fit my mindset. I just genuinely like C better for CGIs (execution time, anyone?) and Java for things that need much user-interaction. PERL just seems to have all the code-beauty of AWK with all the functionality of BASIC (including the exponential code-bloat).
I mean, come on, if you must use an interpreted language, at least use LISP or Guile, something that has a little more style to it and isn't a write-only language.
"Have lunch, or be lunch."
Pining for the days when The Glorious MEEPT!!! graced SlapDash with his wisdom.
Generics are good for static type safety, and Gosling wants to add them when he can do it right simply, but there's nothing impractically difficult about doing without them. IMHO they pale next to real (inheritable) preconditions and invariants, which only Eiffel gets right.
Non Object-Oriented perl gets kinda messy. However, OO perl is one of the better language environments I've worked in.
This would mean, rather than relying on MS and Netscape to release huge, 20+ megabyte browsers, that the user could download the java 'framework' once, and get incremental feature updates as they were deployed.
So, when the browser maker wants to add support for CSS, or upgrade the DOM, or whatever, these changes could be made on the central server, and the clients could download the changed modules as they appeared.
Obviously a robust distribution and caching system would be implemented.
This would be a great way to get support for the latest standards in the browser, without having to fsck around with IE or Netscape's non-standard and differing implementations.
Users could add, remove and update features on the fly, so if all you need is a text-only browser like lynx, you can have that. if you want all the bells and whistles, you can have that too.
Currently i use the Java ICQ client on both my Linux and my Windoze box, and notice no major difference in functionality between Win32 ICQ and the Java version (the Java version isn't quite so slick at handling where windows pop up on screen, but hey, its an alpha release.
The OOness of Java and its comparatively slow speed aren't major issues for me, and all of these issues will become pretty irrelevant as JVMs improve and become integral parts of OSes.
gjcc and modern JIT JVMs should be able to solve most peoples speed problems if thats what they lust after.
Chips that execute Java natively will also be pretty neat.
I can't think of a better language to base a large, heterogeneous network of computers on, and other languages are free to implement bindings for Java. Personally i code most of my stuff in Perl because Perl is so useful for what i need to do, but i can see that Java is the future. Jini and related technologies are also going to be necessary at some point.
I think one of the primary reasons there are so many bugs in software today is the C/C++ that is used to code them. Its just so easy to overlook things in C/C++ that lead to memory leaks, buffer overflows and the like that it seems insane to use these tools in favour of Java, especially when gjcc (GNU Java-C Compiler, i think) becomes available.
Hey! Hold your horses. All right, Sun could add something to Java, that I don't know. However, Microsoft modified some of classes' code to run faster on their Windoze JVM, so that classes compiled on Win32 box won't work on other boxes. Yeah, they could create their own class tree and call it "ms" but they didn't and left its name "java"
That was my interpretation of the posting also. We've seen examples of what happens when MS controls a programming language -- it becomes virtually unusable for any real work. Hence VB and its derivatives. Not that MS even being fully acquitted of infringement in the Java case would lead directly to MS controlling Java; more likely they'd just be free to pollute Java and try to emasculate it in favor of stuff that doesn't work cross-platform. Which would be unfortunate, because Java is a fairly neat bunch of things which haven't been done together in a while.
For me, that's the main problem with Java, there are many bugs which are in the libraries or even in the GC.
:-(
And if you don't believe me, look at the bug parade at the Sun site, the "first" bug has been there for more that a year (!!!) and it is still not corrected in the latest release of the JDK...
Java the language is quite good, but it is just yet another language, not superior to Eiffel for example.
Java the platform which promises portability is a very good concept but it's implementation sucks IMHO: AWT was a really bad design, Swing has a good design but it is very slow and buggy!
To summarize my point: Microsoft is not the biggest problem with Java, you can choose if you want to use their tools or not.
But on the other hand there are too many bugs in Sun's JDK which makes Java a nice toy to do small things but not something I would use to build "real" applications...
Too bad, at first I thought that Java was a really good idea
Thanx for ur support and the good arguments u serve.
This one has all the buzzwords (Java, applet, client, server, GPL, WWW, browser integration). Not to mention it works. http://www.first.gmd.de/persons/le o/java/Telnet/ BTW I use it on Sun's own Javastations ;)
Having written one myself, it is not possible to do a complete implementation of a Telnet client in Java. The main reason - standard Java sockets don't support OOB messages. A number of features of the Telnet protocol rely on OOBM to provide control constructs that Java does not allow you to hook into. You could provide your own socket implementation, but that means using native code and then you don't get the portability....
Life is complete only for brief intervals in between toys or projects -- John Dalton
Is it me, or is this the kind of attitude programmers really shouldn't have. I agree, for quick solutions to simple problems Perl is perfect.
But not all programs are simple, and I've seen the Dante-esque code written for complicated web applications. Not only is the syntax unreadable, but because of the loose scoping and typing rules, its faulty and a nightmare to reverse-engineer.
True, its good that you don't have to worry about memory allocation, exception, etc.. But these constructs are there for a very good reason: what happens when your Perl code runs out of memory. It will probably crash irrecovarably. Whereas, with low-level languages such as C++ you can program to deal with such eventualities. And you say this is a bad thing?
Finally, as CS student I spent many years studying algorithms, languages, etc., not to have some graphic designer take up a job he is not even properly trained for. Am I alone on this one?
I did. I hear this argument all the time, but have these people
actually written a lot of Java or just heard and understood the
arguments. I don't know anyone who has tried to use java in an
industrial strength application and not become VERY annyed with
java. The language is fine, but the libraries are buggy pieces of shit,
and the garbage collection DOESN'T $@#!ing WORK. C++ has definite
flaws but the lack of elegance is made up for by the fact that you
can do anything, and IT WORKS.
1. Generic programming is NOT necessary, but it is a really nice feature.
True, but you could say that about anything. Human readable programming
languages are not necessary, but they are a really nice feature.
> Templates are overglorified macros
True in the same way that programmers are just overglorified
VDU operators (ie plausible, but basically bullshit).
They are the mechanism for generic programming in C++
and the main reason why for algorithmic code the C++ version
will take 1000 lines compared to 4000 lines for java, while
still being faster and more type safe.
> Not saying Java is the perfect OO language, but that C++ DEFINATELY isn't.
True, C++ is not a perfect OO langauge, but OO is not a perfect
programming paradigm. C++ lets you chose the paradigm
appropriate for the task.
After 10 years of C++ and 4 years of Java I am certain:
object orientation is best kept to a minimum. Object-based
(there is a difference) programming is the way to write robust maintainable code.
Deep class hierachy's end up increasing interdependence
between separate areas, and are mostly generated by
mediocre programmers.
http://rareformnewmedia.com/
I did. I hear this argument all the time, but have these people
actually written a lot of Java or just heard and understood the
arguments. I don't know anyone who has tried to use java in an
industrial strength application and not become VERY annyed with
java. The language is fine, but the libraries are buggy pieces of shit,
and the garbage collection DOESN'T $@#!ing WORK. C++ has definite
flaws but the lack of elegance is made up for by the fact that you
can do anything, and IT WORKS.
1. Generic programming is NOT necessary, but it is a really nice feature.
True, but you could say that about anything. Human readable programming
languages are not necessary, but they are a really nice feature.
> Templates are overglorified macros
True in the same way that programmers are just overglorified
VDU operators (ie plausible, but basically bullshit).
They are the mechanism for generic programming in C++
and the main reason why for algorithmic code the C++ version
will take 1000 lines compared to 4000 lines for java, while
still being faster and more type safe.
> Not saying Java is the perfect OO language, but that C++ DEFINATELY isn't.
True, C++ is not a perfect OO langauge, but OO is not a perfect
programming paradigm. C++ lets you chose the paradigm
appropriate for the task.
After 10 years of C++ and 4 years of Java I am certain:
object orientation is best kept to a minimum. Object-based
(there is a difference) programming is the way to write robust maintainable code.
Deep class hierachy's end up increasing interdependence
between separate areas, and are mostly generated by
mediocre programmers.
Perl - it's a great script language, so what, we're talking about
programming here.
http://rareformnewmedia.com/
yep it's called Tera Term pro.. and it's free. html
url: http://www.vector.co.jp.authors/VA002416/teraterm
found it on tucows
Java as a "system" programming language is stillborn. Java is an interpreted language, try writing an O/S with it. Java was designed to prevent mucking around with system O/S. C/C++ is a system programming language. Java is an application programming language; something slightly more powerful than scripting. That's it.
A lot of OO veterens are hailing the advent of Java interfaces as very important to language evolution. C++ does support them through multiple-inheritance + pure virtual classes, but it's not explicit enough.
-Stu
This is very much some misunderstanding of how Java has evolved since 1995. Java the language hasn't changed very much since 1.0. The core libraries available in 1.0 haven't really changed, either. The major changes involved the GUI - the switch to the 1.1 event model, and then the addition of Swing. Neither of these "break" 1.0 event model code. Typically what has happened is that more libraries have been ADDED, with none really removed.
-Stu
Hmmm. Questions you have, yes? Wish to use sound card in Linux box, no? Forgot to put UPS order in before lightning strike, yes?
Seriously, I don't have a sound card enabled in my browser at work, and I tend to page down past the annoying ads, so I had no idea about that.
Will in Seattle
It's called sarcasm.
sigh
My point is, if we pay too much attention to the waves (courts), we lose sight of the fact that this last wave (MSFT appeal) is meaningless pap.
If this had happened six months ago, I'd worry. Right now, MSFT already SHIPPED W2K and O2K, so they've missed the Christmas deadline. Which means they have to do it as a dis\\\service pack.
Which means most people won't install it.
The Java boat is too far out in the channel to be worried at this point and the market forces are pushing it with too much momentum to worry about this minor setback. Since the main anti-trust case is not in remedy stage, MSFT is forced to sit on its hands, so as to avoid worse penalties as a reaction.
Woo Hoo!
(to quote Sabrina)
Will in Seattle
OK, well, server-side Java. We use it here. It's nifty. We don't use the MSFT version.
... ... you guys need to lighten up.
And if I gave you my email, I'd get more than my usual 40 emails a day. And no, that's not spam.
Last time I try to be humorous around here
nah, just kidding
Will in Seattle
Mozilla is not the real JavaGator: (1) It's not a Java app, like the real JavaGator was supposed to be. (2) It's not Write-Once-Run-Anywhere in the least. If it were, you wouldn't need separate Win32, Mac, Linux, etc. teams. It's laughable for you to say that Mozilla's going to take over the world when it's already so late and can't even match the current Communicator, much less the vastly superior IE5. And yes, I've tried Mozilla lately -- one of last week's builds, as a matter of fact. So...why aren't they coding it in Java? If they did, they could stop people from wasting time on portability issues and have them working on the core browser. Do you know something that they don't?
Wow, right now I'm sitting at a Win2K box running an X Server providing me terms from both my Linux box and my Sparc, so I guess I'm better than you, right?
Cheers,
ZicoKnows@hotmail.com
a man or bunch of people can be evil.
thus company can be evil.
and i think MS acts like evil (which means MS is evil).
hany
I'd like to see. How would you for example implement a "generic" linked list class (where the element can be of any type), but which is still statically typechecked (the list class ensures that no elements of different types are mixed).
A decent telnet client in Java would be nice too. Just put it on a Web page on your server, and you'll be able to telnet in from everywhere (work, cybercafe, conferences, ...), no matter what crappy OS they are running.
it sucks.
/. community would be just tripping over itself because of the GPL religion you find at /.
h tml
/. is a lair for vocal GNU/Linux users. Not 'nerds'...just vocal GNU/Linux users.
As soon as any BSDer pokes up his/her head, it gets shot off. In the Java case, if Sun said 'Here is a GLPed version of the Java sourcecode', the
The only problem I've noted is there doesn't seem to be any alternative to this site...there is a blending of tech here that is unique. And, the filters keep out 'articles' like this gem:
http://www.macoszone.com/applepie/articles/new.
"r foresaw the impact of the internet by funding an upstart company named Quantum to make internet software (with Apple's help) for world-wide internet service -- only to set what is now AOL free to become the huge machine it is today."
It could be worse..../. could be filled with people like that author.
"And YES it is way slower than java (and just about any other language i can think of right now), it all around sucks." What a hoot. Perl shines for tasks such as file i/o and text parsing. Somewere I came a across a paper of performance comparison of Perl, C, C++, Tcl, Java and others for various tasks. If anyone has the link please educate the above misinformed above poster.
Hi Hany, I haven't been able to post replies to all of your posts, so I'll try to combine all of them into this post.
i heard that GNU tools are much better than company specific ones.
Well, it depends which ones you're talking about, and in what aspects. I think many would agree that the VC++ compiler and debugger are better than the GNU offerings, as far as use and performance (but not portability) go.
so i'm curious if you have them on your solaris.
gcc, gdb, and emacs come to mind. I've got other Open Source software on it, but I can't recall if any of it is something that's specifically from GNU itself.
As for your comments about the different CLI's I'm using (an xterm from Solaris, nxterms from Linux, and yes there's not much difference between them), I think you're misunderstanding my point. See, there aren't really any look-and-feel issues with all the software you listed, because they're all just character-based apps. Plus, they're not in bytecode for JVMs, they're all compiled for your specific platform. So, the things you bring up don't really change my point about Java.
In other words, leaving aside the look-and-feel arguments, why isn't there any push for GNU to quit wasting time with C source code portability, and just rewrite all their tools in Java? (I'm sure that someone out there is doing just that.) It sure would be easier, just having one .java/.class file out there for everyone, whether they're running Unix, Windows, BeOS, OS/2, or Macs, right? Are you ready to trade in the speed of your natively-compiled GNU tools for their WORA Java equivalents? I'm not.
In an earlier reply from you, you asked me if it was all right that those "only 10%" of users (the non-Windows ones) are hurt by not having access to some of the same software. I think it would be great if everyone could use every piece of software out there on every platform, but it's just not realistic as long as software companies are in the business of making money.
Cheers,
ZicoKnows@hotmail.com
You've totally missed the point. 'Abandon ship', at least as I see it, means "if Micro$haft are going to get their greedy evil paws on sun's Java, then we purists had better switch to using something else".
Fine by me - it saves me bothering with learning the language properly. Back to C, C++, Perl and new things: gtk+ and Haskell (thought I'd go mad for a bit).
~Tim
--
~Tim
--
Rushing on down to the circle of the turn
You just don't know what generic programming means do you.
/math library
> what else are you using templates for ?
All sorts of stuff, check out STL or blitz (matrix
with fortran performance). Shit, if you're really sick you can
write sin functions with templates [that are evaluated during
compile time]
float x =sin and have it replaced with
float x = 0.39073... at compile time
http://rareformnewmedia.com/
"Microsoft correctly contends that under California law an injunction must be based on the prospect of future conduct.
If that's the case, then given both the evidence in the case so far (and the court's admission that Sun is likely to win the case), and, frankly, substantial and continuing evidence of M$'s dirty tricks, I can't see how the injunction was considered not necessary. Do these judges know anything about common sense?
I find it amazing that people are willing to write tons of important code in a language that is still obviously immature. For all that hype, Java is still a system programming language with the speed of a scripting language. OK so it's got objects designed in. But so does Python. If you want maturity (nice modules, stable, actually works but plenty of ugly warts, wrinkles and all) go for Perl. Both these "off the shelf" can typically do in one line what would take 3-5 lines in Java (given the right Java classes etc etc). As it currently is, Java is very good for devices (smartcards) and so on, but that's what it was designed for from the start, when it was Oak. To be really useful in a less painful way we probably have to wait for Java 3.1/4.0 or something. Coz Java is bound to change drastically during the current early stages. Look at the differences between 1.0, 1.1, 1.2. Ick. Nice to play with, but not nice if you want to do real work. For those who point to the examples of Hot Java, Corel etc. Well yeah HotJava works, but it's dog slow, and behaves strangely from time to time (stops responding for 20+ seconds). And the other objection to Java. Virtually every step of the way you are asked to spend money. Want to talk to a database (and do it well)? Spend money. Want to do XXXXX. Spend more money. I've no objections to spending money, but doh, if you can do it easily for free in other languages why spend money for all that Java aggro? Yeah you can build a house out of fancy toothpicks where each new batch of toothpicks is different! Some of you may like or even thrive with such a challenge, but I've got better things to do. I'll wait till those toothpicks change into planks, or even prefab stuff. I'll use other stuff till then. Cheerio, Link.
I find it amazing that people are willing to write tons of important code in a language that is still obviously immature.
For all that hype, Java is still a system programming language with the speed of a scripting language.
OK so it's got objects designed in. But so does Python. If you want maturity (nice modules, stable, actually works but plenty of ugly warts, wrinkles and all) go for Perl.
Both these "off the shelf" can typically do in one line what would take 3-5 lines in Java (given the right Java classes etc etc).
As it currently is, Java is very good for devices (smartcards) and so on, but that's what it was designed for from the start, when it was Oak.
To be really useful in a less painful way we probably have to wait for Java 3.1/4.0 or something. Coz Java is bound to change drastically during the current early stages. Look at the differences between 1.0, 1.1, 1.2. Ick. Nice to play with, but not nice if you want to do real work.
For those who point to the examples of Hot Java, Corel etc. Well yeah HotJava works, but it's dog slow, and behaves strangely from time to time (stops responding for 20+ seconds).
And the other objection to Java. Virtually every step of the way you are asked to spend money.
Want to talk to a database (and do it well)? Spend money. Want to do XXXXX. Spend more money.
I've no objections to spending money, but doh, if you can do it easily for free in other languages why spend money for all that Java aggro?
Yeah you can build a house out of fancy toothpicks where each new batch of toothpicks is different!
Some of you may like or even thrive with such a challenge, but I've got better things to do. I'll wait till those toothpicks change into planks, or even prefab stuff. I'll use other stuff till then.
Cheerio,
Link.
Java is fantastic for the enterprise - multi-tier, multithreaded, multiplatform distributed code.
It's great with CORBA and XML. Most of java's problems are in the multiplatform UI's (not an easy problem to solve) and these are not as bad as most people seem to think.
Unix is a natural host for these types of enterprise applications - again making Microsofts position irrelavent.
Java for complicated distributed heterogenous information systems.
linux for standard file, printer and web services and large scale number crunching.
NT for ??? - that's microsofts problem - NT tries to be everything to everyone -
Jack of all trades, master of none.
Gab (Desktop? - let users choose their own - if it doesn't support X or java or a webbrowser then serves them right :-))
If you read the whole story, the 9th District asked Judge Whyte to reconsider the injunction. If the judge says "here's why I did it" then there isn't even an effect on the injunction. If the judge declines to renew the injunction then MS is still left either with its obsolete and defective (yes, extending Java with pointers makes it _less_ reliable or desirable) or with some clone that will chase the Sun standard version (hmmm...like the shoe is on the other foot now? :^) ).
Python Baby!!
I assume you are talking about delegates? In that case, you have an option when you create something using the MS compiler - either making something for the MS JVM only, or making a general version.
Personally I think this is a good thing because all my targets are using the MS JVM, I use the AFC class libraries and COM support because they are really useful on Win32 machines, why shouldn't I be allowed to use platform specific optimisations in that case?
Java is only a programming language, not a way of life. Geez.
John Wiltshire
Fear: When you see B8 00 4C CD 21 and know what it means
Aim for their masts, men!
;-)
Will in Seattle
in the it-is-neccicary-to-destroy-all-human-life-to-save- it tradition of the people claiming the USCITA is "good for open source", let's look at the benifits of MS possibly winning this case against Sun.
1. MS is using Sun's name and logo without permission. They did not pass the compatibility tests required to gain a liscense to the java name.
2. MS is claiming their products are compliant with "official java". This is in fact a lie, since it is not compatible. Therefore they're commiting fraud, or truth in advertising violations, or something.
The appeals court sees nothing wrong with either of these things.
Therefore, if MS wins against Sun in claiming that these two things are legal, people will be able to use this precedent to:
1. Violate the MS liscense agreements that require hardware makers to do things in order to sell computers iwth windows, or claim they are compliant with MS windows, or use the MS widows logo. Since MS was not required to follow Sun's liscense agreements to distribute the Java code or logo, neither would anyone be bound by the restrictions MS places on products it sells.
2. Take redhat linux, put Wine on top of it, and say it is 100% compatible with Microsoft Windows. Even though Wine is not 100% compatible with Windows, they would not be required to disclose this information to people buying their products, since Microsoft was allowed to tell their customers that their java was 100% compatible with 'official' java. Hell, you could maybe even go so far as to claim that Wine IS 'official microsoft windows'; that's what MS did with their bastardised java VMs.
all this could be done with the precedent from the microsoft-sun case. it's exactly the same thing; java is not under any different rules from windows simply because one API is more widely used and more expensive than the other.
Of course, this will not happen. what happened today was simply a desision that microsoft would not be bound by any injunctions stopping them from selling java until the actual court case has happened. And, of course, when the case happens, microsoft will lose, as they expect to. Winning is not the point; the point is to delay losing. This is microsoft's normal strategy, to delay losing until the other side dies or gives up. See also the case involving the stolen source code from Quicktime, or a billion other examples. And it works very well. And it may work here.
Note that microsoft never incorporated a working java into things-- they simply shipped new computers with the VM on the windows 98 cd broken, and then an extra CD containing the fixed VM, which you had to install seperately. This is at least how it was with all the brand new Gateway2000s i wound up setting up a network for this summer at a computer camp.
The point of this of course is that MS knows that with practically every customer the Blinking 12:00 Effect will prevail and the customer won't be bothered to figure out how to install a working VM. Now that they're [for now] no longer required to ship a working VM, this CD will just cease to be shipped..
Irritable, left-wing and possibly humorous bumper stickers and t-shirts
i'm the original AC that started out the One Word: barf thread, and got the response i pretty much expected. A few real coders ready to chime in because thank god _finally_ somebody is openly talking shit about this stupid language on /., some of you were a little nice saying there is room for perl in certain areas, you are forgiven;-). And a bunch of i am in/(just finished) hischool, don't really know anything, look now i can update the hitcounter on my webpage, perl rules! people.
Good christ, there are just so many more interesting things out there besides making some jackass webpage--i hope some of you perl fanatics that "don't know nuthin 'bout this computer stuff-don't want to know cuz i got web pages to make" open your eyes someday.
Actually, J++ and the WFCs is a lot better than C++ and AFCs. J++ does manage to extend the ideas of easy instantiation and GC to all the pain-in-the-rear aspects of COM and makes COM coding worlds better. The VC++ packages that try to do "references" in C++ are too easily subverted to make C++ coding more reliable. In other words, Microsoft succeeded in porting a lot of Java productivity to Windows COM coding. It ain't perfect (Read the Java COM mail list to see that one does not escape the bad things in COM entirely), but it is the best way to write Windows code out there. Hmmm, if Sun wins, maybe I'll have to try Delphi.
I wrote parts of this stuff
Java doesn't do non-blocking I/O.
Yes it does, it's just a LOT more difficult than it should be for an alleged "network programming language".
If you want to do something while waiting on a socket, you start another thread.
Not if the server you're trying to connect to exposes a non blocking socket as it's only interface. The thread approach is for blocking sockets.
If you are trying to do otherwise you have a paradigm/language mismatch.
So if I want to use a missing piece of Java (the language which Sun say will replace everything else) it's MY fault? If there's a language/paradigm mismatch, its between "Java" and "programming in the real world".
Traditional Unix style socket-centric programming is impossible in Java. Thats not necessarily a bad thing, and you can get the functionality in other (more OO) ways.
It's NOT impossible!!! I've done it!!!
It's just more difficult than a better designed set of Socket objects should make it. You're trying to defend Java's poor design in this area IMHO, for no good reason.
Eagles may soar, but weasels don't get sucked into jet engines.
how will ISV choice looks like in such situation?
in present situation (90% market share - as you write it) ISV "chooses" to ignore 10% just to satisfy 90% (which IMO furthers MS dominance) - you write us why.
it clearly demonstrates, that in OS market for PC (which are dominant platform on earth), there is no competition and that this monopoly is hurting customers.
it is maybe hurting just 10% of them but even when "only" 10% are hurted it's enought to do something to avoid such damage.
that's why i think we have to fight to keep java cross-platform because otherwise it will be just another programming language.
with cross-platform java we CAN satisfy 100% of customers. it just requires some knowlege and some courage.
you have to design and then implement core functionality properly and than think about how it "feels". but if you want just make your customers to "oah-it's-cute. wow-it's-animated! uhhh-it-is-popping-up." than you happily use any library which provides you with such tricks no matter which disadvantages it has.
who's interested in animated menus when aplication clearly can't perform task it was designed for?
a lot of people.
but it's just temporarily status (like mode). soon, computers will be comodity and then majority will seek functionality, not look-and-feel. by that time "designed-exclusively-for-MS-windows" wont be important anymore. and java is one of things which help to bring such times here soon.
hany
I'm curious. You've written 170,000 lines of code in Java over 4 years. Have you gone back and rewritten that code with each new release of Java? I mean, after all, Java has changed radically and deprecated many features (including entire input models). It's very likely that some of those old features will start disappearing from Java in future versions. Why would you undertake writing such a huge project with only two people when you know that the language is in major flux and will likely make much of your old code obsolete and require reporgramming?
You know, if I was moderating at the moment, I'd really want to mark RobLimo's comment down to "-1: Troll"... It's a sad day when the headline summaries are more imflammatory than the discussion that follows...
"You know you want me baby!" - Crow T Robot
Python isn't as cross platform as Perl is.
It also has that nasty "Level of indentation effects program flow" thing, but...
-- The act of censorship is always worse than whatever is being censored. Always.
Chill and try to keep a grip. I would be willing to bet you have not spent any time investigating Perl. If you are working with text there is just no replacement for Perl. Perl is to text like MATLAB is to numbers. Why Perl: + Hashes + Taint + Reg Exp + Symbolic references. There is a lot of power in $$var = (expression) + Implicit loop functions (grep, map, split ..) + eval + Tie - persistant data. + Hundreds (thousands ??) of modules for just about every problem you might face. Grap the book "Advance Perl" and be enlightened.
if so, isn't it prove that application designed for lover denominator (this time GNU utils designed for POSIX compliant UNIX systems) are successfull and usefull too?
also i want ask how much similar (or diferent) are those two Xterms (one from linux, one from solaris) to you? and how diferent they are in comparison to cmd.exe?
isn't this similarity of xterms just another example (IMHO good example) that lower denominator is good and isn't this diferency example (IMHO good example) of disadvantages of mainaining incomatibility without usefull purpose?
hany
Yes, I would rather be editing a .conf file. I bet I can set up a linux box faster with Vi than you a windows box by pointing and clicking (not even *really* knowing what you are changing.) There are few sound cards that don't work under linux, if you read the readme's. O, I forgot, you learned how to use windows within your first 15 minutes of using Word. What a lamer... read a book.
Interesting comments..
IMHO Perl increases productivity several fold by not having to worry about things that a computer should take of in the first place, such as allocating memory for an arrays, strings, etc. And in spite of this Perl is amazingly fast.
Ive seen my fair share of languages. And in my opinion your choice of language is usually determined by the job you need to achieve (if you know more than one that is). I use C for when you want some power for an app. For graphical interfaces I use Java, for parallel processing I liked OCCAM cos of its features for replicating worker code, even if TDS was a total bastard to use. And assembler for controlers for lego buggies etc. Perl in my opinion is good for creating sys admin utilities/system utilities etc and as someone mentioned earlier, text parsing. I persoanlly wouldnt want an WHOLE app coded in perl however, BUT a prototype in Perl is perfectly acceptable as it will prove a project will work without the slower development of say a C counterpart. Is Fortran still tops for mathematical stuff these days? Or did it die completely? I try not to tighten nuts with a screwdriver or break walnuts with sledgehammers. Brad
Well, it has to be done somewhere. If your doing work on an operating system, its a rather pressing issue. Memory management isn't "magical". The reason PERL doesnt do it is that the OS below it coded by someone else is doing it for you and PERL just grabs memory when needed. To say you dont care about things like sorting routines and number operations is a bit sad. You may find some little gems of information that you can make use of in all that shit. Everyone who codes anything has room for improvement (yeah check out a couple of shaky routines I've written late at night). You might just make your life easier at work with some better practices learnt from somewhere else. And you stuff may run faster at the end of the day. Dont close your mind man. Brad
Yes, dammit, I am a snob. Why shouldn't I be: I've spent a year on GCSE Computer Science, 2 years doing CS A-level, and four years at university studying CS. Now I work fulltime, developing with ASP, Perl, Java, C++, etc.
I'm not saying that you need all that education and experience to be a good programmer. Plenty of the best never even opened a book on programming. I'm not saying that Perl doesn't have its place in web development, either. But the reason there is so much bad code around is simply because there are so many poorly trained (or not trained at all) programmers out there.
I tried out Visual J++ after acquiring Visual Studio 6. After about an hour of trying to figure out how to build Java apps that would run on non-Windows platforms (you can't), I gave up, cursed whatever moron came up with the idea of building a non-portable Java mutation, and bought Borland JBuilder 3 Professional (*infinitely* better, be sure you have 128megs RAM). I hadn't bought a Borland product since BC++ 5. Maybe this is all a secret plot to rescue Borland?
Don't underestimate the size of Microsoft's development influence, a *LOT* of people use Microsoft's development tools (VC++) and other products.
If Microsoft were able to leverage this huge development base, they COULD fragment the Java market very quickly. Remember, they tried to stick stuff into the language that wasn't compatible, adn then trick developers to use the proprietary extensions without knowing they were doing so.
If even 1 in 10 popular Java applications were hamstrung this way, a *LOT* of people would feel pressure to move to a Microsoft-compliant JVM (such as by switching to IE from Netscape). This would in turn motivate Java platform developers to move toward Microsoft compliance--
This injunction stops all of this nonsense, so it's important. Every day that it stays in force is another day where the size of Microsoft's development community becomes proportionally less of the Java community--
Duh!
Is here. Kinda short, but basically echo's the "This isn't to big a deal, well just get the injuction re-written" thread.
Ah, perl, you slicer and dicer of text!!!
Unfortunately, Sun hasn't ported the JDK to enough platforms to make this viable just yet.
They want it to be universally portable, but they're unwilling to work on official ports for anything but NT and Solaris.
1. OO has three features, inheritance, encapsulation and polymorphism. You can (and should) encapsulate data types in any language. The other two are clumsy and/or unsafe to try to do in any non-OO strongly typed language.
2. Java doesn't do non-blocking I/O. If you want to do something while waiting on a socket, you start another thread. If you are trying to do otherwise you have a paradigm/language mismatch. Traditional Unix style socket-centric programming is impossible in Java. Thats not necessarily a bad thing, and you can get the functionality in other (more OO) ways.
In what way do you find them confusing? IO-streams which wrap nicely. Swing using MVC to separate the data models from the presentation. Networking and threading in the blink of an eye. Much simpler than in most other languages.
Unless all you do is shell programming and text manipulation, of course, but for that, too, there are libraries.
while a lot of people sees java's speed (slowness) as problem, there are projects based on compiling java source into native binary (if i'm right egcs got something like that). thus we have advantages of java (quick and untrobled development, platform independent) and advantages of native binary (quick, optimised for specific OS) at the same time.
with such solutions i'm not trading any speed but i'm taking adtvantages of both speed of native binary and java's portability.
that's why i'm now that content with UNIX systems: source for a lot of applications are portable without a lot of trouble (+ i'm not fully dependent on manufacturer). :)
java moves that just slightly further.
business of making money: like with democracy: it tooks us time to achieve democracy from stone age. it also takes us another time to achieve bussines where making money is not equal to hurting anybody. it just requires some tolerance and good will. ...))
i'm maybe too optimistic but i think it'll be like that some time.
(problem lays mostly in companies using very bad practises: like MS destroying anything (even good) which competes with them, Sun acting almost exactly like MS in some situations (java,
p.s.: i think that even character-based apps got look-and-feel issue
hany
it isnt gpl but it is opensource
There really should be a decent *free* telnet client for windows. Anybody know of one?
Java easily performs worse in this regard than other languages.
Its so mired in ridiculous class hierarchies that it is confusing how to get simple things done.
I agree with A. Stepanov (creator of the STL) - all this OO garbage is simply confusing and really doesn't get to the heart of the matter - making it easy to solve common problems and fairly easy to extned the tools to solve harder ones.
...have you ever noticed how often Microsoft takes a good idea and does the wrong thing with it?
As a multiplatform developer, I understand the value of a useful, portable class library. On the other hand, though, it has also made me appreciate the extra cost that it can add - especially when you're only targeting a single platform.
If I want to write a Windows-only app (say what you will, but that's what most users want) what do I use? I have no interest in writing in (ugh!) C++. AWT is useless. Swing has most of the functionality, but at a terrible performance hit. User-draw widgets are slower, don't always have the expected behavior, and aren't forward compatible. (Luke, use the native widgets Luke.)
If MS had released a library of windows-specific Java libraries (com.ms.whatever) with JNI compliant natives, then Joe-the-Java-developer could write code to fully leverage windows functionality and look-and-feel. Some clever hacker could have even taken a subset of the native methods and written implementations for [insert your favorite GUI toolkit].
Instead, they use the idea to try and crush the competition by corrupting or stealing the language.
*SIGH*
Drinking will help us plan!
Folks,
It doesn't matter that the injunction was lifted. If you program in any language, you spend weeks, months or even years before you can produce high quality code. Learning a computer language is a major investment, that you wouldn't make if you know this computer language will likely not exist in the near future.
Regardless of Microsofts marketing muscle, if their incompatible version of Java is likely to disappear in the near future (even if that means a year or two), they won't get anyone outside Redmont to write decent applications with it. I'm not worried about some throw away applets for some lame web pages that will only work under IE5. Remember that Windows doesn't dominate the desktop because of ActiveX but because of the "Big Applications" like Office, Photoshop, AutoCad and all these Games. Notice that only some of these are made by Microsoft!
If SUN is eventually going to win this case (and that's what the article suggests), MS Java is finished. Not in two years, but for all practical purposes now.
1. No adequate generic programming support. Having everything derived from Object doesn't count - in the process of casting to the appropriate type, you lose valuable static type checking. C++ is far ahead in this respect - templates are great and the STL is heavenly. I think the STL is so good that its worth using C++ over Java just for this reason.
2. OO Obsession. The depth and breadth of the standard class tree in Java is absurd and really gets in the way of accomplishing simple tasks. Also, the insistence that users adhere to OO as a paradigm really stinks. C++ does not force this on the developer - it is truly a multi-paradigm language.
3. No access to system programming. System programming is GOOD. Anyone who has every used unix knows the advantage of good 'ol system programming. Sun's sandbox is no fun and once again gets in the way of real work. I want to be able to use pipes, forks, system calls through exec(), etc. Why not stand on the shoulders of giants? The tool based approach of unix encourages reuse of tools - Java only encourages reuse of objects. Sun's model works against the unix tools-based approach.
4. Crappy text handling abilities. I can do more with one line of perl than twenty lines of Java. The web is made out of text folks!