Java's Greatest Missed Opportunity?
jg21 writes "It looks like Bruce Eckel has hit the nail on the head again. No sooner did he finish stirring debate by writing about the 'departure of the Java hyper-enthusiasts,' previously discussed here on Slashdot, than he now rubs salt in the wound by highlighting in AJAXWorld Magazine how and why Java missed its golden opportunity to become the language undergirding Rich Internet Applications. He comments: 'We must ask why Java applets haven't become ubiquitous on the internet as the client-side standard for RIAs....This is an especially poignant question because Gosling and team justified rushing Java out the door (thus casting in stone many poorly-considered decisions) so that it could enable the internet revolution. That's why the AWT and Applets were thrown in at the last second, reportedly taking a month from conception to completion.'"
Java eventually found its niche in server side programming. At that point Java Applets died. They were a nice idea, but they're effectively dead now and the web is better for it. There was no missed opportunity, only an opportunity that didn't pan out. In exchange, however, Java gained new opportunities in consumer areas like Video Game Development. Commercial games are slowly starting to deploy Java technology. But since one OpenGL/DirectX game looks just like another, who can tell it's Java? And that's a beautiful situation to be in.
Oh, and guess what's driving many (most?) of the SOAP/XML/RPC interfaces that AJAX applications use? You guessed it.
I bet 10 bucks that Mr. Eckel's 3D card drivers are out of date or not installed. The application he linked to uses JOGL (Java OpenGL bindings), so if his computer is unable to run OpenGL, he will be unable to run the app. It's a rare issue, but it happens. The easy way of debugging the app is to either bring up the Java Console through the Coffee Cup in the system tray, or to go into the Java Web Start settings and enable the console (or logging!) there. Easy, peasy.
Oh, and Mr. Eckel? Web Technology has not yet begun to fight. At least if the WHATWG specs have anything to say about it.
Javascript + Nintendo DSi = DSiCade
TFA is too pop-uppy for mere mortals to read, so I'm just going to guess. Is the reason that Javascript-based stuff taking over the role Java was supposed to fill ten years ago that Microsoft no longer ships a Java engine but it does ship a Javascript interpreter?
We must ask why Java applets haven't become ubiquitous on the internet...
So it's not enough that most community colleges and universities have Java as the primary programming language? I'm fortunate that I'm taking two classes in C++ this semester since I'm sick of Java. The instructor was good enough to offer textbooks for both courses in either C++ or Java.
Java is stuck at the first generation rich client applets and the rest of the world has moved on. Flash and WPF/E are leaving it in the dust.
"God fights on the side with the best artillery." - Napoleon, Marshal of France - speaking truth to power
Honestly? I'm glad Java applets' popularity has died. I have always hated pages that make use of Java, primarily because the applets are traditionally slow and clunky, and cause all sorts of problems for the browser.
Flash usually loads fast, has good response, and have great interfaces. Java usually loads slow (and by slow I mean that in the time it takes the Flash applet to download and be ready to use, the JVM has just started) and has a poor interface with slow response. More "industrial" use of Javascript has also removed the need for many of these client-side applications.
Good riddance is my response.
"What do you despise? By this are you truly known." --Princess Irulan, Manual of Muad'Dib
/)
If you have firefox and web-dev tool bar you can get rind of the popups by disableing the CSS styles.
There are four sorts of people in the world: fools, lunatics, idiots and morons. - Umberto Eco, Foucaut's pendulum.
Java technology and library development may have been steered towards web-oriented selling points, but the language itself isn't inherently oriented towards helping web developers and the like. Specialist scripting languages can always be developed to make specialist tasks faster - and Java (the language)is far too purely object oriented to be as specialist-efficient as some of the less object-oriented languages, without really stretching things.
In fact, my favorite uses of Java (the language) aren't web-apps at all, they're applications like Azureus, and Eclipse. That's perhaps what Java (the language) is really best at so far from my perspective - cross-platform development of portable frameworks. It's because of that, that Java (the language) has a stronger future than Java (the technology), as a strongly object-oriented language developed to be portable.
Ryan Fenton
There's a bloomin' great ad for an Ajax Conference in the way! Oh the irony! Although I guess by now we'd have Java popup adverts messing up our pages....
There was a huge window for windows applications that Sun had missed. By the late nineties MFC was growing very tiresome to most and for most MS platform devs there was definitely an eagerness for something better. The company I was working with at the time did some work with Swing, including developing one of our major apps in it. The problems are infamous to this day: memory leaks, resource hog, ui issues, bugs, and more. It was a pattern I heard a lot from many others trying to use Swing. At this time though .NET was still years away. The desire for better programming environments was there and had Swing (and AWT) been delivered in better form it could have been a much different world today.
The last java applet I wrote geolocated you on the globe (by your IP address), and did an 'enemy-of-the-state' style zoom-in to your city. In retrospect, I wish I'd written it in flash - it's just annoying to see a grey box for a few seconds while the applet VM initialises itself. At least in Flash, you can put a "loading..." animation up quickly.
:-]
If you want to know more about the geolocation thang - details at my blog [no adverts
Simon.
Physicists get Hadrons!
Flash player has most of the needed capabilities (ok, blinking lights and such), and starting its VM doesn't hose the machine like Java does.
how long until
The problem with Java was not an implementation or technology one. All first generation implementations are flakey (think Mosaic). The problem was that Sun controled it too much, so it was pre-destined to never become ubiquitous. If they GPL'd it from the get go, it would have been a shoe-in, game over, touchdown, and go home. Now they have, but by now it's probably a day late and a dollar short.
Java's virtual machine, for the first several revisions, sucked ass and ran extremely slowly, cutting the general user experience on a Pentium I 100Mhz machine down to that of Windows 2.0 on a 80286 runing at 14 Mhz. If it wasn't for that, I would have probably been a lot more serious persuing Java as a "language I should learn".
SJW: a person who perceives an injustice, and while correcting it, commits a greater injustice.
Not much of a solution for me, I refuse to run script or bytecode. Quick, someone adapt the FUSS boilerplate for this clown.
M$ removed java from their os and browser. They also tried to change the Java language by adding the "delegate" keyword. They also created a far faster java compiler and vm, that weren't compatible with sun's. I rember wearing sunglasses at Microsoft with the "SUN" logo, and I didn't hear the end of it. All this is what I call chickenshit.
Look at the cell phone market. Java is everywhere, your blackberry, nokia, and even many windows mobile devices run midlets (Java applets for phones). It is a huge market, much bigger than the internet. More people have cell phones than have computers.
---- aut viam inveniam aut faciam
What killed Java as a standard for rich apps are a number of reasons.
.NET met success in a a lot of places because programmers don't have to change the language they are used to, and it wasn't as big a step to move from VC++ to Managed VC++ code.
1. Apps/applets have to be coded for multiple JVMs. Is the applet running on Sun's, and what features does it support, is it on MS's, or is it on IBM's? Other solutions like Flash have one and only one executable, so programmers don't have to guess what is running their code.
2. Java is slow and ponderous. I can tell when a website uses Java when my web browsers (multiple) freeze for a number of seconds while it loads the JVM.
3. Java's language and bytecode are pretty much married to each other.
Java has a strange history. It was supposed to be a lightweight semi-interpreted language for use in web browsers. It ended up being the replacement for COBOL as a business application language, something nobody expected.
What seems to have gone wrong in applet land is that, early on, Sun produced a huge collection of mediocre libraries. This, coupled with a linkage system that brought in the whole library if you needed any part of it, bloated applets to excessive size. Remember, at the time, most users were on dialup. So that just couldn't work.
Also, as an aesthetic issue, Java's early fonts and visible objects were ugly. That was enough to turn off web designers.
On the server, none of this mattered. A memory-safe language with decent execution speed was a huge win. When a Java servlet fails, you get a reasonable error message, not corrupted memory. That was enough to make it a success on servers.
Java bloat continues to be a problem. There seems to be an excess of "packaging" associated with the language. Not clear why.
The problem was, the programmers they hired were not good designers or architects. I was forced to sit on the sidelines and watch as my predictions of poor requirements, poor design, and poor process turned into schedule nightmares, budget balloons, and gargantuan maintenance efforts proved to be true.
Afterwards, those administrators blamed the programmers, of course, but they also blamed Java itself. It was incorrect and unfair, but true nonetheless.
Looking back, the tech bubble attracted a lot of novice programmers who got hired at inordinate salaries to produce a level of quality they could not meet. As the bubble ended, many of these poor performers left but unfortunately some remain. My greatest fear is taking over for someone who "knows" Java because chances are they know how to write Java but they don't know how Java works.
I am doing my part. I am teaching Java at a local community college where I make a point of teaching my students how Java works. I also explain basic but good coding practices and design practices. I hope it makes a difference in the long run. Arguing with the administrators sure didn't.
@HbFyo0$k8 tH!$
If I see something neat and cool done in HTML, JS, and CSS, I can very easily rip it and change it and stick something like it on my web page. Back in the old days of the web nearly all design was done like this.
You can't do this (easily) with a Java Applet (unless the author makes the java source available) or a Flash application. If you want to figure out how something was done you have to dig into programming and work it out for yourself from the ground up. The openness and readability of HTML, JS and CSS make it really easy to get in above the ground floor level. Sure, you can still design horrendous web sites, but you can also design great web sites.
HTML spread because it was easy to write and didn't require learning or using some hypertext authoring application. Perhaps Java applets failed because people took a look at the Hello World applet and thought, "WTF?".
The numbers disagree.
It's scary being a Flash and Flex developer on Slashdot. You guys are unnaturally rabid.
We must ask why Java applets haven't become ubiquitous on the internet as the client-side standard for RIAs
It's simple. Because someone will always come out with something different and call it better. People will then learn it, update their resumes, and get paid more money because they know the "latest" in the technology. Then it will repeat itself again. There will always be an alphabet of options and acronyms for creating application, on the web or workstation. People just love re-inventing the wheel.
When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
Try disabling script if adverts annoy you, also Java and flash.
Ms canceled support for java in IE and of course IE is the golden standard. ITs wrong for webmasters to direct users to download software. If you do then they wont use your site and go elsewhere. Infact I know one Mac user who needs WMV support and will not do quicktime because users will go to another site if they have to use a pluggin.
Also early in it had obscene system requirements. Why in 1996 with a system with 32 megs of ram would I want to run a bloated java app vs a nice activeX control?
Awt is double buffered because it had to be in order to be compatible with many platforms. Java is difficult to program in for newbies with no object oriented programming experience. I really had to learn C and C++ in order to understand the syntax. Many programmers back then found it difficult to use.
Those 3 things killed it on the client side. If IE was not so domminant it may have a rebirth
http://saveie6.com/
because thats what it is, a website full of spam banners, pseudo whitepapers and event marketing
ive seen less adverts and more content on a domain squatters site
not to mention the site has NO AJAX technology on it at all, they must be desperate if it takes that many adverts to make a living as a writer
shame on them, or shame on slashdot for linking such leeching crap
Sun was unable to convince or force Microsoft to continue updating Java, and Sun is notoriously clueless when it comes to producing client-side software. The few places that use Java web applications probably won't be in 2 years, when the MS JVM is finally gone forever and IT organizations find it impossible to conduct all of the testing required to keep Java patched against security threats and working with applications.
Conformity is the jailer of freedom and enemy of growth. -JFK
American industry is not academia. Many managers are driven by money and usually put tremendous pressure on good slaves to produce a product -- any product, regardless of quality -- to sell in the marketplace.
Careful, thoughtful design did not go into the final stages of developing Java.
By contrast, monopolistic behemoths, like Microsoft (and many Japanese companies), have the financial luxury of carefully developing a product. C# is an example of such development. It is nearly flawless and is superior to Java.
Wait, the guy who has been hired by Adobe to be the tech evangelist for Flex doesn't like Java? (Click on his profile in the article)
What's this you say, he is writing an article which bashes Java for writing web applets and uses a series of questionable logic approaches to advocate Flex for web applets?
Sheesh, if I was writing the summary for this article, it would have been "Java's Greatest Missed Opportunity WAS NOT BEING THIS AWESOME PRODUCT CALLED FLEX WHICH ADOBE MAKES! BUY FLEX!"
Congratulations all of you who are arguing about the merits of Java - you've been astroturfed!
It's probably too late, though. Even if it works now.
Consider VRML. Remember VRML, 3D worlds on the desktop.? Too slow, too much bandwidth, lousy framerates back in 1997. Load up an old VRML browser today. With modern GPUs, it looks great and works smoothly. Nobody cares.
The web is never going to be a proprietary, Adobe or Microsoft owned format. A stupid article by a stupid author published by a stupid publisher. Sys-Con (who also own a malicious PR blog called "linux insider") make Forbes look like commies.
Java is very good at what it does but far too often it's shoehorned into things it's not good at doing. If Eckel thinks flash makes a better UI I'm inclined to at least take a look at it. Though personally I tend to despise flash web pages -- seems like most of the ones on the Internet are designed to just annoy me.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
Adobe Flash Player Download Center
We are unable to locate a Web player that matches your platform and browser.
Please visit our table of recommended Web players .
There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
... where another one will end. Seriously, Java's greatest strength is server-side dev. Have you looked around recently in popular commercial sites? See those URLs ending with .jsp or .do? Hint: that's Java.
Applets are a perfect example. They're slow, brutally slow, and they take up oodles of ram sometimes even after a page has been closed. Oh, if it doesn't crash the browser first. "Hello world!". And I want this running server side because... ?
Someone always talks about how fast java is except for startup times. Yeah, and my house would smell good if it weren't for the elephant pooping in the living room.
A webserver (or whatever the java name for it is) shouldn't take 10 minutes to start. And eclipse is wonderful if you don't mind sacrificing most of your system ram for it. That's called bad coding. Nothing should take 20 trillion instructions to boot. Yeah, I'm sure those problem have been solved somewhere too.
The problem is you don't need a ton of negative exposure to apply the "sucks" label to something, and java has earned it in spades.
- The bloat that came in with swing and its successors.
- The lawsuit vs Microsoft, which stopped me migrating my ActiveX-based applications to it. What were Sun thinking?
- Obnoxious zealots with their "thin client" bullshit. I remember one embarrassing retard arguing that "Java is a religion". Yeah, right, we all want to work alongside guys like that.
Why did you do it, Sun, why? Oh well, back to AJAX, where the "J" should have been short for "Java".Reduce, reuse, cycle
I'm not gonna enumerate all the things that are wrong with Java. Instead, I'm just going to point out that I think Javascript 2.0 looks like it's going to be the future for many applications: it's easy to program, there are open source implementations of it, its default "GUI" (HTML) is cross-platform and widely used and understood, and by incorporating optional static type declarations, JavaScript 2.0 can be used for high performance computations as well. Oh, and it's going to ship with Firefox.
Here's a challenge if Java's so slow. See if you can write the SQEMA algorithm in any way you prefer in any language you want, and make it faster than my Java implementation. http://dimiter.dyndns.org/ . Mind you that's not only a server-side app. You can download the Swing version too, source code and all.
Um, he wrote Thinking in Java, one of the best Java books out there, and he fully admits in the article (which you obviously didn't read) that he now works for Adobe to promote Flex.
Mod parent down, please.
Quidquid latine dictum sit, altum sonatur.
I read a blog recently about someone slimming down Java. I think reports of Javas demise have been greatly exaggerated, I'm looking forward to full GPL release next month and I haven't run a JVM this century. Be sure of this; interesting things are going to happen ;-)
Well of course he hates java. It directly competes with flash and coldfusion.
http://saveie6.com/
In a lot of things, there's just no real alternative to Java. You can say "oh flash beats java" but that's not true. Flash is, at it's heart, designed for interactive animations. You can't really do 3D in it, you can't really do networking with it, and you can't share classes between server and client (there is something to be said about being able to write both sides of a client server app, along with the website code, in one language)
"Programming" in Flash is just graphics scripting. You can do alot with it, but it's always going to be a problem.
You also can't develop reasonable flash for free- you can with Java.
There isn't, at this point, a real free semi-common development language for embedding into a webpage other than Java. If they would only make the VM load faster, and make it install easier in different browsers, sun would be laughing...
ADVENTURERS! - ANTIHERO FOR HIRE - CARDMASTER CONFLICT
Here's a challenge for you: take 10 years and make an applet system which doesn't hose the browser it runs in, and runs fast. Oh! You did it! Wait, that's flash, not java.
I can only speak for myself and from a few friends that I have talked with about the subject, but the biggest problem I have with java applets is the fact that its very confusing finding what you need to install just for applets, the always updating program that is just annoying, and the 120+ meg install and 300-400 megs worth of files that seem to be collected over a few months time.
For my self, its just not worth having another program sucking up memory, bandwidth, and disk space just to use it for a few random applects.
Yes its too bad that it seems to be going down the crapper, but maybe it should. Maybe once it hits rock bottom there will be life put into it again and it will be done right this time.
TruePunk | Games
Good point. But as I said in another post, that's not Java's strength, and it has never been. Sun marketing droids made the stupid mistake of marketing Java for the browser and lost. If you compare the startup time of a large desktop project, like OOorg or MS Office, Java GUI's startup time on a modern machine is almost the same. Sure, Eclipse takes ages to load, and Tomcat is not a fast starter either, but that's another story.
I thank Mr. Eckels for his contributions to programming literature. I've read Thinking in Java, Thinking in C, Thinking in C++, and Thinking in Python. Overall they're very informative about the particular ins and outs of the language they cover--- as well as insightful and informative about other programming concepts. The recent 'revelations' he's pointing out about Java, however, have been well known by the Java community for years. It wasn't an opportunity missed, but an opportunity seized, and taken away. Nobody would argue that the programming model for applets is inferior in any way to what we're left with concerning AJAX, or even Flash (And Flex2 which he is now promoting). Nor are they larger, or bulkier by any extent. In fact, GWT which he's citing as a 'temporary' patch allowing AJAX to expand and become more widely used and less complicated, is simply an attempt to paste the Java programming language on top of already existing Javascript interpreters. Making a considerably large, or complicated, Javascript application was nearly impossible without the advent of AJAX, to prevent such scripts from having to be reloaded with each page refresh. Flash is not as ubiquitous, or cross-browser compliant as Adobe, or Mr. Eckels, would like people to believe. Beyond simple tasks such as playing movies, or presenting simple media, it will fail on the majority of browsers. Only two of the Flex2 examples were completely usable on my Ubuntu Linux machine, running Flash Player 9.
What we're seeing instead is what technologies could fly underneath Microsoft's radar, and become 'more' prevalent and compatible on various
browsers than Java, gaining momentum, and use. The reasons Applets failed are widely known, and obvious--- the weren't Microsoft Approved, and Java
wasn't open source. When Java first started gaining momentum, applets were widely used, due to the vast majority of Desktop users using Microsoft Windows, and Internet Explorer. As sun continued updating Java, Microsoft embraced the JVM, and included it in their browsers. They then started adding ActiveX extensions to Java, and promoting hybridization (although Microsoft Windows specific hybridization with ActiveX) through their Visual J++ development platform. Technically, they tried to gain control of Java, by completely tying it down to their platform through hybridization, and the fact that the majority of the developer market would be using their Visual J++ product[http://en.wikipedia.org/wiki/Visual_J%2B%2 B] (See litigation), unwittingly making applets that would work only with the Windows platform. Sun, then took Microsoft to court, pointing out that they were in violation of the virtual machine licensing agreement. The result was, a large period of time of political conflict between Sun, and Microsoft--- and a freeze in development and adoption of advances in the Java language in Internet Explorer as Java itself advanced leaps and bounds as a language. By the time the political turmoil settled, another technology, Macromedia Flash, had managed to squeak by unnoticed by Microsoft, and unadulterated (and considerably more controlled and proprietary than Java). On the Linux side of the spectrum, the explanation is much simpler, in the fact that Java was just open, but just closed enough, to rub open-source developers the wrong way. There has been considerable reluctance to buy into the Sun controlled Java community process, by the open source community, and to include Java components into open source platforms. Flash, on the other hand, provided absolutely no developer tools for Linux (Until now with the Flex compiler), and only a single proprietary plugin. In reality, it has been much more closed, controlled, and unavailable as a technology useful for open source development--- but has been less likely to embed into and pollute open-source code.
And now, that Java is open sourced--- applets have gained a fairly bad reputation, due to users perceptions of the lack of pro
From the article...
"The future can only affect the present if there is room to write its influence off as a mistake." - Yakir Aharonov
It's not astroturf if someone is open about who they work for.
Anyway, Adobe still has Java products. ColdFusion runs on Java, and they still sell JRun.
I don't think there's anyone disputing the fact that Java applets failed on the web. When was the last time you went to a site with a Java applet?
I'll give you that for applets, they're a true bane in my eyes. In fact, I've only ever seen one that I can think of break that mold.
However with a general "Java is slow" statement, I'm obligated by experience to disagree. Glassfish, the open source application server blessed by Sun is quite snappy. However to call an application server just a web server would be doing it a great disservice, an application server is much more than that. It's doing significantly more than just serving static and dynamic pages. There are a lot of things starting to provide me with the tools to make my job faster and easier than it would be in a LAMP environment.
My Glassfish running on my laptop (with all the other shit I'm running) takes about 20 seconds to start up with my enterprise application deployed. I find this time trivial, and once that 20 seconds is over and done with, the response is just as quick as I would expect from a LAMP application. Meanwhile the language and platform provides me significant benefits and few downsides.
I've been coding professionally for about 4 years, on my own personal projects for many years before that. In that time I've had the opportunity to fully explore Perl, PHP, and Java for development and I've found that each has it's place. I generally use Perl when I want to write command line or system tools, PHP for simple web apps, and Java when I want to write a serious web/client/server application.
As to your complaints about client-side applications running slowly.. I think you're expecting applications which have a lot to them, an IDE, to load up instantly. In my experience that's never really been the case. Just as complex video games have a loading time, so too do other complex applications.
I find an initial startup time of ~30 seconds trivial when I'm going to leave an application running hours at a time, let alone indefinitely.
It's clear to me that your experience with Java is limited, and will probably remain so. But you should know that many of your assumptions and assertions are incorrect. To expand on your limited experience might sway your opinions.
Yes, I am a smart ass; it's better than the alternative.
So if it took them 6 months to do Applets and AWT then they would have been better??? I don't think that's always the case. I think if it took 6 months, they would have looked almost exactly the same since they were founded on GUI design principles and plugin designs that came before them.
The Java runtime that Microsoft distributed with Internet Explorer was non-standard. Microsoft used that lack of standards compliance to make it appear as if client-side Java did not work correctly, effectively slowing down Java's acceptance in favor of Microsoft's Active-X technology.
I've found that C handles tree-based problems quite well if you do a little manual tail-recursion-elimination optimization. Hoisting a few statements up from the next level of recursion can sometimes make a huge difference. At the very least, it usually closes the gap enough that profiling, compiler choice, and -O9 lets C pull ahead a bit.
I agree. This guy found a proprietary solution that fits his purpose...and he's promoting it. This is a fluff piece for Flex.
He also said "We do see relatively amazing Ajax-based tools like GMail and the other Google tools which are slowly seducing me (but I repeat: it took Google to create those, not Joe garage-programmer)."
Look, Google did not invent AJAX. They were just the large company that had the balls to launch a major application using the technology. Joe gargage-programmer had been developing "AJAX" application for years. However, they did so on smaller custom apps. Also, many programmers were forced to support legacy browsers which severely limited the role of AJAX and its ease of implementation.
Google wasn't the first company with the technology to launch an AJAX app...they were the first ones with the balls to launch it. They basically drew the line in the sand on browser compatibility (with the help of Mozilla.) Microsoft could have done this years earlier...but chose not to. They basically decided to pursue and promote web standards and protocols...and brought javascript back to the forefront.
I don't know how Flex fits into this, but didn't Adobe hand over the code to Flash to Mozilla? I believe soon, REALLY SOON, you will be seeing more Actionscript/Javascript interaction natively in the browser. When that happens maybe you could return that license of Flex you paid so much for.
Also, the writer of the article states this in his article...
Yes I know he wrote (and supported) Java books in the past, but his current career focus is somewhere else, and I would ask all of you to consider that it may be coloring how he looks at Java currently.
"The future can only affect the present if there is room to write its influence off as a mistake." - Yakir Aharonov
Java bloat continues to be a problem. There seems to be an excess of "packaging" associated with the language. Not clear why.
Nominally, it's because Java wants to give you complete platform independence, so they need to produce their own libraries for every single piece of functionality you might want.
In practice, it's because Java and its libraries are designed by committee and by fiat, as opposed to having it evolve in the market place and through competition.
equivalent to a neat toy that once in a while explodes hand-grenade style killing everyone within ten feet
Well, Java is terribly slow on my old iBok 500 and I'm glad it is not the first choice of web programmers. To be honest, Flash and JavaScript aren't any better either. At least I find it possible to run JS and Flash apps in comparison to slow loading and unresponsive Java apps.
Applets are still being used quite heavily. Every time I visit Map 24 to check up on how I should travel I always end up with the interactive, Java powered, version of the map. Its websites like these which can show you that a decently implemented Java solution doesn't have to be slow at all. In fact it can be quite fast and responsive.
No, I think that a major reason why applets didn't work is because people don't give a fuck about security and prefer sloppy programming over strict implementations. As you may or may not know Java tries hard to shield the user from bad programs. One method to reach this goal where applets are concerned is to sandbag it. An applet can't just access the files/directories on a users harddisk nor can it simply start up network connections "just like that". Unless the programmer setup the permissions right (security manager) and the user agrees with the things the programmer wants to do will such an applet work. I've been working with Java for well over a year now (yes, I still consider myself somewhat new to the technology even though I learned a lot so far) and when it comes to newbies trying a quick setup you'll almost everytime encounter dissapointment when they learn that an applet is at first hand rather limited with its options.
And so many people are just bound to run off to solutions which aren't so limiting on them at the first go. Others simply take their time and actually use the technology the way it was intended. I really don't like this direction in which things are currently headed.. IMO its time for programmers to take some responsibility themselves instead of simply blaiming it all on the tools they're using... "Java is sloooow" you hear. Well, perhaps you could have written some better designed code and actually optimized it here and there...
Java applets get back in the game. All someone (Sun? Fluendo?) needs to do is provide a (good) replacement for the myriad of atrocious, platform dependent, Flash video players. Surely Java applets can provide something better? Provide the server-side stuff, and the basic streaming/decoding base for the client, abstract the away the player interface (GUI, controls... etc) so people can customize the look+feel (they love to do that for some reason, even if they are shit at it) and make it relatively efficient (You couldn't do worse than Flash in performance if you tried). If the competition is Flash the goal is so low you can't help but succeed. Flumotion is on their way: http://stream.fluendo.com/demos.php
So the article is essentially an ad for the Flash platform as a substitute for JavaScript. I find it's excessively dismissive of JavaScript.
- Bruce assumes that we are reaching the limits of JavaScript. But are we? JavaScript has been around for ages. All it took was a catalyst, somebody (Google) to demonstrate to a wide audience that existing technology already in place could do so much more. Remember how you first felt playing with Google Maps? For me, it was "gee, I didn't realize you could do that with JavaScript". Heck, I never saw that kind of interface before even on a desktop app. But it only took a couple of guys a couple of hours to develop a clean implementation of Google Maps from scratch (Ajaxian Maps). JavaScript and browsers will continue to evolve, so the sky's the limit.
- Flash is not a substitute for Ajax. JavaScript controls the entire browser, subject to security restrictions. Flash is just an animation in a box. I repeat: in a box. You'd need a fundamental change in architecture for Flash to substitute for a browser's JavaScript engine. As it is, Flash is a pretty good *complement* to JavaScript. But don't mistake one for the other.
I think the future lies in a Java fusion with Flex. I think Adobe would be wise to jump on the Java OSS bandwagen and bind the jvm into the flash plugin. Flex/Apollo apps could then use AS3 or Java as the requirements deemed necessary. This would definitely be a hyperjump to Web 3.0 since all you would need is a single plugin or maybe even a highly tuned version of Firefox..OOPS I think I said too much! Was that a chair hitting the wall..again!
Why should M$ alter the java language for "technical reasons?" This would seriously adversley affect developers, despite its "techincal superiority". Remeber that WORM (write once run everywhere) is a core concept in java, hence, proprietary changes break its concept. Microsoft should have worked with sun, not the other way around. Also, why should M$ remove java vm's from their OS and browser? This breaks far more things than it fixes, and is also very anticompetitive in a childish way. Sun embraced their platform by implementing a VM for windows, whey should M$ bar java from windows? Straight chickenshit.
Let's be honest; MS were able to benefit from Java's evolution without having to support the dead-ends and (retrospectively) mistaken design decisions that Java accumulated over the years. C# is pretty much what you'd expect if someone were to design a new, legacy-free not-close-enough-to-get-sued copy of Java with the benefit of hindsight and without the issue of compatibility.
Not to dismiss some of the nice features, but it's easier to see the need for (and implement) them in a language piggybacking on 7-8 years worth of someone else's experience.
"Slashdot - News and Chat Sites Deviant". (Click "homepage" link above for details).
Much of what Mr. Eckel says is true but I find it grating when he blames everything on the technology. For example:
"JavaScript has been around since, effectively, the beginning of the Web, but the browser wars made JavaScript inconsistent and thus painful to use."
Okay, let's forget for a minute that JavaScript isn't Java. That aside, the inconsistency of JavaScript during the time that Microsoft was illegally killing Netscape through the use of its monopoly was by Microsoft's design. It was using the now famous "Embrace, Extend, Extinguish" strategy. This was not the fault of the technology and there is nothing anyone can do to prevent Microsoft from playing dirty. Well not unless the Justice Department remembers where it left its balls.
And Bruce gives us this little bit of pseudo wisdom:
"If you use Firefox, how many sites do you visit that are at least partially unreadable because they've been created only for Internet Explorer (IE)? It seems to me that things are getting worse; I'm seeing more, not less sites that don't work right with Firefox...to the point that I'm seriously considering going back to IE.
Again, the incompatibilities are by Microsoft's design. A strategy to unfairly and illegally maintain its monopoly market share by (you guessed it) embracing and extending "open standards." Good one Bruce, switch back to IE and let Microsoft's dirty tactics work. It looks like the Justice Department isn't the only one who has lost its balls.
The race isn't always to the swift... but that's the way to bet!
mod parent up
it was the viral dream of the language system. When he saw it wasn't going to happen (and l*x implemenations were just coming on strong) then he did not want to play nice with anyone. Sun had an evil genius strategy (The ((sun-based)) Network is the Computer tm) that could never permit a friendly coexistence on windows with a "java layer". He wanted it all and got nothing. Story happens all the time. See IBM and OS/2.
If it were done when 'tis done, then t'were well it were done quickly... MacBeth
Not only that, Eckel also wrote two volumes of Thinking in C++, which in my humble opinion is far, far more readable than the Intro CS standby by Deitel & Deitel. He also gives this book away for free! Check it out. So in my mind, Eckel, being very familiar with Java and the alternatives to Java, is supremely qualified to comment on Java's good and bad points.
Gates explains that implementing AWT was a disaster for Microsoft because Java apps look as good as windows applications, see http://www.iowaconsumercase.org/122106/PLEX0_5879. pdf
Read how Gates dislikes JFC at http://www.iowaconsumercase.org/122106/PLEX0_6109. pdf
Read about plans to 'undermine Sun' at http://www.iowaconsumercase.org/122106/PLEX0_6114. pdf
Then read Microsoft's view on implementing JDK 1.2 (to quote 'no fucking way') at http://www.iowaconsumercase.org/010807/PLEX_2708.p df
So who limited the JDK to 1.1.18 ?
Think global, act loco
everyone's got one, and I am or can be an asshole at times :), so I'll chip in.
:), because 1) no garbage collection (memory leaks get by even the best/most disciplined of software engineers/programmers), 2) the god damn syntax of C++ and its overloaded object model was _overkill_ for most newbie programmers. There was just one too many ways to blow your head off by C++'s powerful object model (think..pointers, references, new/delete, virtual destructors, 'smart pointer', exception handling was immature, copy constructors, assignment operators, operator overloading, reckless use of STL with pointers versus static objects, etc etc etc), and 3) 95% of software out there isn't system software (OS's, drivers, embedded) but application software. Hell, even for embedded nowadays one can use J2ME, and it works admirably well. This means if and when Java or a language like Java with enough similarity with C/C++ came by and removed all the pain points of its predecessors, it was bound to succeed.
Java _stormed_, not just merely took over, but literally stormed the programming world much, as I understand it even though it's a bit before my time, like COBOL did. When I started my first job, 1996 as a fresh grad, C++ reigned supreme still for _application_ software.
Slowly but surely, with the mass commercialization of the internet, the Java tornado came over the C++ camp, and blew it away (or I should say converted it, en masse).
Java hit & solved some extremely important painpoints with C++. No one ever accused C++ of being inferior as a language, as a matter of fact, the STL has yet to be repeated in Java (and no, generics aren't same as STL - STL yields more power), however, its demise was inevitable, again IMHO (the asshole talks now
Java succeeded. It did not miss any opportunities. You can elaborate on the benefits of more dynamic languages today, like Ruby, Lisp, whatever, but as it stands, de facto, Java is the standard today for most web applications (and it is making huge inroads into embedded even realtime applications too).
'A lie if repeated often enough, becomes the truth.' - Goebbels
1) i would prefer multiple implementations of one spec: ms vm, sun vm, ibm vm versus Macromedia flash(speaking about 5 jears ago)
2) java is everywhere(not runs everywhere) you're cellphone, you're embedded chipset, you're desktop
3) java is cross platform (and more than just that)
4) java started in a time where open source was not like it is now
ps: i'm using linux for the last 7 years, and i still prefer java above all alternatives, and now it is open source stop nagging about it because the only true alternatives are mono and flex, one is closed source, one is still trying to catch up.
don't mention c++, java is easier to develop in
goto go gf is calling
Ironically Java applets might return thanks to Windows Vista and it's ridiculous hardware requirements. With all this hardware users won't be affected by the poor performance of Java that much and we might see Java applets used for things like streaming video players again.
Applets gave Microsoft the low hanging fruit by which to attack Java with the performance issue.
I shiver in horror at the thought that Flash might just become a standard for RIA development, but TFA is right, AJAX is just a hack, no matter how you spin it.
No, Java is not dead, it just aint gonna be famous outside the world of developers, due to Sun making every possible mistake in the early days.
I still don't get...
.NET stands because of Microsoft market share. None of them really competetive on the age of internet. Also java same. Sun has some nice hardware on server side. Thats why big application makers has lots of solutions on java. Because when they start to do someting for web they had Sun servers not intel LAMP's.
HTTP is stateless universe.
So why we use that huge bloatware. IIS, ASP and
Sure RoR and Turbo Gears nice, for real programmers... Who likes the art of programming
and I'm sorry accept or not most of web programmers are not intersting about art of programming. They are want to get job done.
Answer is Ajax. Not Flash... because you cant write flash with text editor. You need that Macromedia Flash tool. And have to understand that gui.
Standart web programmer curve was simple.
Html then PHP || MySQL then JavaScript then Ajax
with Lamp plus text editor you can do what ever you want.
Plus there are huge code examples around the web.
[My english is better than most other people's Turkish, so please point out mistakes politely. Thank you.]
Um. No. Quoth his own bio page:
I'm not even a Java guy, and I know Bruce Eckel knows what he's talking about when it comes to Java. A shill he ain't.
It doesn't work everywhere either. It used to be that only Windows and OSX were supported. Now we have Linux support, but only if it is Linux x86. What about Linux PPC or Linux ARM or Linux MIPS? Guess what, at least Javascript and XML are open standards that can be implemented anywhere.
Sorry Bruce, Flash still doesn't cut it!
That's true, for instance Ammeraal's book (the first site for the book I got from a competitor's search engine) describes a tail-recursion optimized Quick-Sort, which I still use (or used to use, since I can't do projects on my own while serFing here). It's unbeatable... Also, I managed to get comparable results with dynamic memory management when I implemented a prototype in C++ that used memory pools whose blocks' size was powers of two - using a version of Intel's compiler... Anyway, at my website there's a Tetris version that draws its shiny background in software and it's near impossible to get anything like a similar performance from Java.
On the other hand, the way he looks at Java may be the reason his focus is now elsewhere.
The cake is a pie
> (thankfully, their technology is so lousy that people aren't even noticing).
/dev/poll that scaled for shit til someone told Linus how Solaris did it right (and not til after an infantile rant about how Sun must have cheated somehow).
Except for all the linux fanboys who go around copying the good bits like ZFS and dtrace.
Hell, Linux didn't even have a
Here's a great rule-of-thumb anytime someone discusses Java: If they mention applets, they have no idea what they are talking about.
I've been a developer for nearly a decade, mostly Java but also PHP and Perl. In all that time, I have not written a single applet (outside of school).
Java != applets
It's simple: I demand prosecution for torture.
... and manually assigning memory to each application with command-line gobbledegook, and retuning every time you wanted to run a different mix of applications?
... now let me see ... ... ah yes, user interfaces that might well look like the same application running on a different platform but that's not what the punter wants - what the punter wants is consistency of user interface across all applications on the one platform he actually uses. It is absolutely of no interest to him at all whatosever that the reason that Bloggit 4.7 doesn't behave remotely like a standard Windows app is that it is carefully designed to behave exactly like Bloggit 4.7 on a MAC!!
... now let me see ... ... ah yes, type safe collections, sane enums, and all the other things we've been used to for decades in C++. Nuff said.
... now let me see ... ... ah yes, lowest common denominator libraries. "You can't do that in Java, because it can't be implemented on Linux/OSX/whatever." Duh!! It's provided natively in Windows for heaven's sake, why can't I have it for my Windows app? (And don't get me started on the various broken non-working "solutions" for sortable JTables when the native control on Windows does exactly what's wanted ...)
Welcome to the Brave New World of Java applications! - any computer with less than many gigabytes of physical RAM is going to involve you in all these contortions if you want to run anything non-trivial written in Java.
What else
What else
What else
Having said which, if clients really insist on paying me to write in Java I'll take the money, being a professional. And years later what do I get? - "er, yes, maybe you did have a point, maybe we should have let you write it in C++". Ho hum.
For all the hype and marketing surrounding Java, I failed to see the practical impact of it except in one or two applications. The two I witnessed were used at a company NOT known for technological innovation and also despised at the mere mention of its name by a few. I looked at the programs while using them and thought, 'oh, this must be Java based' because of the non-MS Windows look and feel; what else could it be? MS has conquered the "functionality market" by DELIVERING the GUI actions demanded by the majority. Forget background functionality and code execution efficiency, that can be addressed by more powerful and faster hardware. When the average user on the street thinks, 'oh, this is easy' and 'I guessed which option to use and got what I wanted' then the application/program succeeds! It is almost guaranteed. If Java can re-invent itself and achieve this, it might have a second life.
I remembered it was painful to learn the Java screen layouts, years back.
(gridbag layout and panel are what I still remembered now). Screen resizing was a mess.
Can I just draw a few text boxes and buttons [as i can do with html and DOM]?
I downloaded the flex sdk. Unfortunately, I am running 64bit Linux - and I discovered Adobe has
not released the needed Flash 9 software for this platform -:)
So I decided to do bit more reading...
1) MXML - I don't like coding in XML. PERIOD. Maybe the extent of it is laying out your widgets, but my experience
is that even doing "simple" configuration with XML leads to migrains in short order.
2) Flex sdk may be free (as in beer) - but the Builder costs $499. This is a show stopper for many,many people. Even folks
working in well funded shops usually "play" with new technologies on their own time and money and then convince
management to make an investment. Sure maybe you can get by with just a text editor, I don't know. But it leaves a bad taste
in my mouth - if I am going to commit to learning something new I want all the tools at the start.
3) Flex Data Services - "after 1 cpu you are considered an enterprise user, please contact adobe..." Don't forget your checkbook.
Something tells me that if I wanted to do something interesting/complex involving a database I am going to have to pay. Likely
another show stopper.
5) The whole enchilada is controlled by Adobe.
Flex, it was nice meeting you - good luck.
"If they GPL'd it from the get go, it would have been a shoe-in, game over, touchdown, and go home. "
Hmmm. Let's try that with smalltalk and lisp. Oh well, one out of two isn't bad.
Why do so many people equate Java with applets? I'm glad that applets didn't take off, just as I am upset that flash did. I just want a simple, more elegant web that doesn't freakin' scream at me all the time. And Java has taken off, with regards to internet applications. Most people just never see it since it runs on the server. It's ubiquitous yet Slashdot articles always try to make it seem like it's dying because people here think it's slower than punch cards and oh yeah, they once saw a poor UI. But trust me, it's not going away, at the enterprise level, any time soon. And I'll take IntelliJ's UI over KDevelop or Visual Studio any day of the week.
http://slashdot.org/comments.pl?sid=221580&cid=179 56004
There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
I keep hearing this argument about someone being a coder , but not a designer/architect/whatever. As if being a coder is the easy bit but the real hard stuff is coming up with a flowchart, a few verbose word documents and spending half of every working day in meetings talking to similar talent vacuums. Because that my friend is all your lauded "architects" ever seem to do in my experience. Coding is hard but any moron can come up with a high level design , usually one which is impractical and doesn;t work and the coders have to quietly rewrite as they go along.
It has competition.
It might have something to do with some well-known Java Gotchas.
As one of my wise instructors / software architect once said: "Java is a language that was designed by two guys in their garage."
Just because he knows a great deal about a competing technology does not mean that he isn't a shill for the people he currently works for. He's being paid to be a product evangelist which, by its very nature, is pretty much the title for a coroprate shill.
I could say the same thing about Ben Forta when I met him several years ago (Ben was an evangelist for Macromedia). The man was amazingly briliant and could pull better code off of the top of his head than most people could write while actually trying, but his job was to promote the products Macromedia wanted him to.
I doesn't mean that Eckel doesn't know anything about Java since we all know that he does. It's just that we also know he's basically getting paid to bash it and promote something else.
Everything I need to know I learned by killing smart people and eating their brains.
He says a lot of misleading things in the article.
Now, however, you can download the free command-line Flex compiler to create static SWFs, and you can deliver these from your web site without paying any fees. The compiler, framework, and debugger are all free, so there's no reason to avoid using Flex.
Well, no, I can't download the free Flex compiler, because I run Linux, and it's not available on Linux. I actually spent some time on Adobe's web site just now trying to find out what was actually available. I couldn't find any link from http://www.adobe.com/products/flex/ to any "free command-line Flex compiler" at all, just links to a demo version, and a version that costs money. Maybe he's referring to the demo version? That's pretty pathetic, if he's telling people the cost of the compiler is no barrier because a crippled demo version is available. I couldn't find any information on the web site about what operating systems the demo version would run on, so I went through the registration process, and when I finally was ready to download, the only options were Windows and Mac. Last I heard, the Mac version was a beta.
However, with Flash 9 and beyond, all the players will be released within weeks of each other, and this policy should hold for future versions of Flash. So now you don't have to worry about complaints from anyone. Build your UI with Flex, and it will "just work."
Uh, I've got a complaint. I installed Flash 9 on my Ubuntu box, and it didn't "just work." It crashed my browser. I had to deinstall it and reinstall Flash 8.
I spent a bunch of time about a month ago looking into the idea of using Flash as a platform for writing OSS. At the end, I concluded that it just wasn't a viable choice.
So basically Flash is a totally proprietary platform from A to Z. You buy a flash book and try to compile any of the nontrivial programs in it without paying money to Adobe, and it won't work. I got "hello world" to work with MTASC, and beyond that, it just wasn't possible; there's just not enough source-level compatibility.
Why in the world would anyone want to hitch their wagon to YAPPL (Yet Another Proprietary Programming Language)???
Find free books.
Let's say I have a web page that has various inputs on it. The user enters his name, and below that, there's an applet that lets him draw something. Then below all that there's a submit button. Sounds like a pretty cool web page, doesn't it? I can mix web input and applet capabilities and integrate it all. That would be great! Only problem is, there isn't a non-hack or easy way to get an applet to submit information with a form submit. I know there are some JavaScript event hacks or whatever but I'm talking about a nicely designed way to do this. The lack of being able to use applets as inputs in web forms is, to me, the #1 reason why they missed the boat. I would much rather have a Java Applet rich text editor, for example, than some kind of JavaScript based editor. I know, the JS editors work but they are never as good as what you can do in a real Java Applet. But oh well, the Java Applet can't send data when I click "submit" on a form, so they missed the boat. I doubt that this can be fixed.
IT SUCKS! You basically have to hack the Dojo toolkit just to get it to work with JSR-168 Portlets. It is so stupid. Ever tried to use AJAX enabled JSF components? IT SUCKS! It is so stupid. Is Sun trying to kill Java? For cry out loud what a bunch of losers.
Applets are used very extensively in the financial markets. Consider how many forex platforms depend on either applets used through the browser plug-in or from webstart. There are lots of data analysis tools that are applets. By using Java on the client, you leverage the same codebase as your server.
The common mistake is looking at the consumer market as a gauge to the viability of applets in general.
gmail is supposedly the gold standard for web apps? It doesn't even work in konqueror properly! Thankfully gmail provides smtp and pop3. Javascript support is so fragmented that web developers only response is often to encourage users to upgrade to the latest version of IE or firefox. I don't see that switching from konqueror to firefox to run some shoddy AJAX app qualifies as an upgrade. talk about write once, debug everywhere! (I've read that konqueror does try to get some apps working by implementing hacks to emulate the IE behaviour or the firefox one) Applications in a browser, be they written in flash, java applets or AJAX are often a poor substitute for desktop ones, particularly in offline mode. For this Sun provides Java Web Start - Swing but no web browser. So for me the issue isn't why applets failed but why everything has to be done in a web browser. web != internet
However, his recent book, Thinking in Java, Fourth Edition, is no longer available in a free, electronic form.
Well, you can still download the third edition for free. It is interesting, however, that he seems to have given up on the idea of making his books free in the future. He started doing it back before anybody else was doing it, ca. 1999, and his example was one of the things that influenced me to make my own textbooks free online. I wonder whether he's soured on the whole idea, or has some other legal or financial reason why he can't do it with the fourth edition of the book.
Find free books.
I always thought the Jawas' biggest missed opportunity was the battlestation plan that slipped through their fingers. They had it all, right there in the memory of an R2 unit that they sold for a pittence to some farmer. If they had taken the time to really check that droid out, and think big for a change (I don't mean sandcrawler big, I mean really big) they could have become a force to be reckoned wi--
What? Oh, Java!
As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
Here's one of his criticisms of AJAX:
And more and more often, when I use web applications like GMail, my "control-c" copy operation stops working. [...] When things this simple are broken, the outlook is not promising.
Hmm...Flash 9 crashes my browser (Firefox on Linux). This is the Flash 9 that is no longer supposed to be a beta. I'd say that when things this simple are broken, the outlook is not promising for Flash.
He says Java is:
Not Cross-Platform Enough
Hmm...Flash 9 doesn't work for me on Linux. Flex isn't available on Linux, and I believe the Mac version is still a beta. Flash Player isn't available at all on 64-bit Linux, or on FreeBSD, so your only alternative would be something like Gnash, which isn't really far enough along to be able to run most flash apps. So yeah, I guess Flash is cross-platform, if you run Windows -- but maybe not so much if it's not a platform that Adobe thinks is profitable. Java, on the other hand, is never going to be locked out of an entire platform, because the whole Java infrastructure is GPL (or will be within a month). You want Java on your platform, you're free to compile it for your platform.
People are very familiar and comfortable with Flash, and it is installed on almost all machines in the world. It's trusted, stable and reliable.
Huh? Many people consider flash a nuisance. Trusted??? Why does he think flashblock exists? Maybe because many people don't like flash?
Installation is a no-brainer for everyone. You don't have to answer questions or do anything special; it just works.
Hmm...I didn't find it to be that much of a no-brainer. Here are my notes on installing Flash:
Um, Flash has done exactly the same thing. They changed the syntax of the language between AS2 and AS3. Recommended coding practices have changed drastically over the various versions of Flash. If you read any recent Flash book, they tell you not to code the way people used to code in Flash, because apps coded the old way turned out to be unmaintainable. The main difference are that:
Find free books.
I'd like to point out that Java's perceived bloat and slow loading times
are no longer true.
I used to stick with C++ for performance reasons, but gradually switched to Java from being involved in one project for several years. It was true that the J2SE was slow to load and run but Sun has definitely improved it over the years. I always had the weekly JDK snapshots automatically installed to get those benefits. There wasn't much of a change from 1.4 to 1.5, but 1.6 saw a huge performance win due to better register allocation. Load times also improved somewhat over releases (or maybe because computers have gotten faster). 1.7 is also in the works, but I haven't seen any significant improvements yet.
I'll go out on a limb to say that Java has pretty much closed the performance gap with C/C++, except for floating point. It can do many optimizations that statically compiled languages can't:
*branch removal/optimization - there are lots of branch conditions that are constant at runtime, but not at compile time, which can be removed or better predicted.
*memory allocation - heap allocation is basically free in Java because the JVM uses copy collection to make the heap contiguous, with allocations occuring at the end of the heap. This is much easier to do in Java because the JVM knows exactly where pointers are and can point them to the new location after doing copy collection.
Try hand optimizing a program in Java - it makes practically no difference.
I'd say such benefits, not to mention better programmer productivity, definitely outweigh the time it takes to do a cold start of the JVM.
No, we know that he works for a company which develops a technology which does some of the things Java applets were supposedly going to do, back in the day. Not everyone who receives a paycheck is a shill who should be automatically discounted.
The slow startup, and the fact that it freezes the browser during the entire time that it is starting.
The Flash player is much better in this regard.
James Gosling is on record as saying that the situation for the Java Applet plugin is unlikely to improve significantly in the future.
Throw the bums out!
Dilbert; October 29, 1997. The strip is still on my refrigerator. :)
@HbFyo0$k8 tH!$
That's right, those "marketing droids". Boy they make life hard for us real men^H^H^Hcoders.
I'm going to presume you don't remember 1996 and the fact that it was those marketing droids promoting "applets"--which is what Sun was all about at first, concerning Java (nee Oak)--which meant Java stuck long enough to evolve into the server-side environment you defend so virulently. And lopsidedly.
so these are about to disappear:
http://jakarta.apache.org/
http://tomcat.apache.org/
http://struts.apache.org/
http://maven.apache.org/
http://ant.apache.org/
http://xml.apache.org/
http://cayenne.apache.org/
http://i.could.go.on/
yeah, java is toast, no community, no common frameworks, no pool of available talent.
( all this from one free/open source software foundation with as open a license to use as you like)
perhaps dude just likes smoking crack and dreaming flex?
>> Why in the world would anyone want to hitch their wagon to YAPPL (Yet Another Proprietary Programming Language)???
Because it is a NYAPPL? (Newer Yet Another Proprietary Programming Language)
WPF/E is the Flash competitor not Sparkles. Sparkles is the codeword for a development tool
When some people say that in their general experience "Java is slow" they are coming from a compiled language background and tend to assume that the startup cost is representative of the speed of the whole app. Java has the downside of more startup overhead in providing that upside of a virtual machine abstraction layer.
In that sense, Java was never really built to compete with flash on webpages. Think about it: One of the biggest things Flash needs (needED?) to do is become flashy quickly before people click elsewhere and the browser leaves the page. This is relaxed only in places where is currently functions where you would have used Java applets in the past. (The navigation/ad/pretty-thingy use drove the serious usage of it.)
But you want to talk about some processing-heavy stuff over the web? Java can come back into the picture.
Just for interest sake. We have made extensive use of JMF together with the FOBS bridge to ffmpeg. This has given us efficient access to a wide range of media formats and performance is excellent. We did write our own OpenGL renderer for JMF which enabled significantly to further improve the performance by a large margin. The end result is that we are in a position to do real time frame-for frame manipulations of medium to high resolution video streams.
And I use Linux, and I did download the free SDK, and it did compile all the example apps without a problem. :-)
And you need a recent Java runtime to use it
.signature: Command not found
I find it very interesting that so many folks are looking at the poor "side effects" of Java as a Web site interface and standard. Yes I agree it can often be slow to load and in this day and age of instant click response expectations annoying when I am visiting a Java Applet6 integrated website. However, as an account/client manager for a larger IT solution firm who handles accounts with expenditures from small to large ($25,000/year hardware spend to over $10 million - I point this out as a reference to varied infrastructures we encounter), Java is no where from disappearing as a very strong intranet portal background. Without naming corporations, I currently have several multi billion dollar accounts that have recently moved to using an IBM or BEA SOA solution to port many applications for internal employees to a Java platform. More so than any other solution base for creating an enterprise wide standard without hab=ving to resort to expensive MS Enterprise agreements. These SaaS portals for employees provide simple collaboration and eliminate the need to be concerned with version compatibility. I have seen many of these continue to focus on this as a way to avoid the complexity of compliance issues (an older PC user with say Office 97, is not allowed to access a server that uses a later version of MS Office to process data, really!) By creating Java SaaS for employees and having the servers perform the heavier crunxching, Java provides many enterprise IT dept's with a strong reliable and Highly available alternative to deploying various different applications and compatibility issues. Just one man's observations. I still think a company must choose what they are most comfortable. And yes I hate the wait for applets to load, ok!
I don't know whether he struck any nails or not, I stopped reading after he suggested returning to IE because CSS hasn't worked out. That reminds me of all the cries for Mozilla to give up and admit failure shortly before the Phoenix/Firefox product branch emerged into the public eye. The reasoning then (among the raving lunatics) seemed to be that four years was too long to wait for product release measured in internet time. Of course, this didn't take into account that the Netscape code base was developed in a scorched earth battle for market share with no allowance for an effective open source development process. What a surprise it took a few years to turn that ship around.
The situation with CSS is not so different. The initial implementations were rushed out with not much concern over getting things precisely right, despite the fact that the promise of CSS largely depends upon hair-splitting correctness. At this point CSS is nearly there, unless you measure by the installed base of web clients that peed in the pool.
The last thing I want from a web rendering standard is consistent appearance. I hate the squinty little fonts used by most web sites at their default settings. No amount of ugliness that results from enlarging the default font size can stop me from reading a well written article. Most of the time I can salvage the overprinted areas by stretching my display window, or using the mouse to select the text region, or even hitting ctrl-U for "display page source" (if the page hasn't tried to be pretty, that's usually easy enough to wade through). The beautiful web sites are the sites I hate most. I once had a girlfriend whose mother had apparently spent the majority of her adult life collecting miniature crystal figurines with fairy wings and little swan necks. She had so many of them they had afixed narrow glass shelves onto the walls (not more than three inches deep) in multiple tiers on both sides of the front door entry way. I had to enter that house like Steve Martin removing a straight-jacket in an undersized phone booth. But that's the kind of web page most web designers seem to like. So balls to the crystal figurine man, I like my CSS the way it is, big and messy and room to swing your elbows around.
All that is needed is lazy downloading/updating of classes and the ability to do internet imports. For example:
The fact that he's now working for a company producing a proprietary, direct competitor to Java couldn't possibly have anything to do with is decision, could it? Nahhh. That'd be too cynical.
Shyeah, right!
Ah, I see. Thanks for the correction. I ended up on the download page you're talking about, but was looking at Flex Builder 2 with Charting (30 day trial), which is only for Windows and Mac. I guess what he's referring to in the article is Flex SDK, which is farther down on the page?
Find free books.
Java has a rather simple problem. Its API is huge. And currently this means that you need to download an entire JRE to upgrade. This is a bit much for most people. Fortunately there are plans to make use of Java components. (Web) applications would only have to download the pieces that are needed, making Java downloads much easier. If you also know that a single VM will be able to run multiple applications at once in the near future things already get better. Then there are the current speedups that have been implemented in Java 6 and 7. Also there is the pending open sourcing of Java (which makes it easier to make lean and mean Java plugings). Since Java won't go away, I would not be terrible surprised if it is able to come back even as applets and such.
Java/Swing is great for developing Intranet applications in businesses. So when people say Java is dying, and points to the lack of applets, that's not the whole story.
But in a controlled intranet environment, you also have more choices because of it being an intranet. Flash/flex, for example, is more viable there also. But you are right to some extent and I see a fair amount of Java applets on intranets. However, I have to say that most of them had problems. I don't know if its Java or the developers, but applets seem hard to get right.
Table-ized A.I.
It has happened with Java and i foresee the same issue with many new technologies. Java came around and all of a sudden everything had to be written in Java (before that it was C++). Correct me if I'm wrong wasn't Java designed initially to run consumer electronics and such ? , same thing for XML (wonder why they didn't put it in our soup) AJAX is going the same way.
There's probably way to many "smart" guys working on inventing "new" technologies an not enough dedicated to make them work right.
The fact that he's now working for a company producing a proprietary, direct competitor to Java couldn't possibly have anything to do with is decision, could it? Nahhh. That'd be too cynical.
Shyeah, right!
Or maybe he has some bills to pay? Who would've thought.
Just wishful thinking. I wish it were dead, it's dog slow, leaks
memory, and OO design is like, really braindead. Those who can't
paint, deciding where to hang the paintings.
This is the added value of OO design:
"No, no, we want all the dog pictures in one room."
"No, no, we want all the blue pictures in one room. What if one of the dogs becomes a cat?"
etc, etc.
Bruce forgot a couple of the most important reasons:
1. Microsoft broke applet compatibility by leaving out important APIs in their 'java' version for IE, like RMI, JDBC and broke other core APIs. They paid Sun $2 Billion for their transgressions.. but still it's important to remember.
2. Sun never has and never will GIVE A SHIT about Java's astronomical, hideous, horrendous memory usage. Even today you only need run 4 or 5 java applications before your system's ass is hanging out. They are supposed to be this great OS company but never had the competence to release a decent MVM.
Java runs inside a virtual machine (VM) so every time you run a java application... it's booting an entire virtual operating system to run that program. If you run four java apps.. it's like running five operating systems.. your host system plus the four VMs. The way it SHOULD work is for each java application to share the first VM that starts, which would dramatically reduce memory usage and startup times. However, this issue is much, much too hard for any of the engineers at Sun to solve. They don't even acknowledge it's a fucking problem.
I didn't say it explicitly enough, but I was speaking about Java 'Applications' (launched via WebStart), vs Java 'Applets'. for Intranet applications, you usually don't use applets (I've never seen them use for internal application needs).
"The future can only affect the present if there is room to write its influence off as a mistake." - Yakir Aharonov