Flash Applications That Can Be Used Online and Off
General Voltron writes "Macromedia, Inc., the same people that brought you Flash, have done it again with a new product called Central. Central will allow users to more easily interact with information on the internet by also allowing them to interact with it offline. It will also allow developers to create and sell their own applications. See the press release." I'm not a big fan of Flash myself, but I realize it has its niche. This looks like something that Flash authors have been clamoring for.
The entertainment industry likes their sites, for the lack of a better word, "flashy." Flash enables graphic designers and non developer types to create sites that look good and contain little code.
You can also create some decent little games with flash, which is hard to do using JScript and HTML.
Since Flash 5, you've been able to parse XML documents, ie. read complex data into your flash application. So basically you have the 'rich media' available as interface, the HTTP protocol for communication with the server, and the ability to read arbitrary data into your application. On top of that, the flash plugin is installed and works on more than 90% of all browsers, windows, mac, unix.
This could very well be the next big thing.
Online multiplayer games already exist, personally I have a background in heavy server side development, now I'm creating a communication module for flash/backend, which is to be used within a 3D visual model of a large building. Users can rotate the building, click a room on any floor, book it, retrieve info etc. Try and make that more "effective" in HTML/JavaScript. Point and click is easier and more intuitive to the average user than drop-down, drop-down, type type, check, whatnot, click.
Unable to read configuration file '/bigassraid/htdig//conf/14229.conf'
Geocrawler error message.
But today, Flash ships with just about every browser and there is far more dynamic web content in Flash than in Java. Why? Because Macromedia didn't unnecessarily taunt Microsoft ("we are going to make Windows irrelevant"), because they worked hard to get Flash shipped with everything, and because they focused on authoring tools. And, strangely enough, Macromedia graphics works on Linux, while Sun keeps complaining and changing their implementation.
Sun, in contrast, did everything they could to get into Microsoft's cross-hairs, they didn't fix their bugs, they kept changing their strategies, and they never produced decent authoring tools. Now, Java is mostly a server-side technology. But that's not a particularly secure niche, since Java-style sandboxing is needed much less on the server than for downloadable applications, and because there are lots of alternatives on the server.
I don't think Macromedia will be successful at turning Flash into an application platform. But they sure are trying, and they are a lot more successful with worse technology than Sun with Java.
"I have never seen Flash used in an application that wouldn't be more effective using javascript or simple HTML."
I hate they way everybody generalizes.
Last time I checked, using Macromedia software required you to agree to be audited, with a 30 day notice (probably by the BSA). If Flash is your only software that subjects you, and your Flash-downloading users, to a compliance inventory, you may want to consider other options with less invasive licenses. Flash is a nifty tool, until some door-knocker flashes his BSA badge.
Now, YTV for the kids, it's great and entertaining and before anyone corrects me YES YTV Flash is mostly advertising.
DRM? No thanks, I'll just get it somewhere else...
All of your reasons sound plausible (except for "unnecessarily taunting Microsoft" - I think of it more as the reverse). But I don't think any of them matter compared to one simple factor you did not mention: size.
Flash player has historically been ~250k. This is downloaded in under a minute even on a modem. It adds little to the size of any web browser. You get a lot of bang for that 250k. Flash is very pretty and in some ways powerful (also very awful to author, but that's another post altogether). IE's ActiveX autoinstall was shooting it out around the world - even without anyone's help it would become ubiquitous. But of course it's also very attractive and easy to bundle.
Compare this with Java. 1.0 was rather small - in the neighborhood of a megabyte, if I recall, or even less? It's been a while. Small enough that Netscape could package it without committing suicide and Microsoft followed suit. 1.1 was a couple of times larger. The browser folks bit the bullet. Barely.
Java 1.2 finally arrived. The English-only JRE weighed in at an appaling 5.3 megabytes. Bigger than most web browsers! This insured that it would never see the inside of an internet-mass-distributed client. Only Microsoft could have saved it, by putting it on the Windows CD. And they did! But they were unable to resist embracing and extending it. By making MS Java incompatible with Sun Java, they had deliberately violated their license (in order to "pollute" the Java market), and Sun sued them for it, halting matters on that front for some years.
Fast forward to 2002. English only JRE 1.4 is now weighing in at 8.2 megabytes! Flash 6 is topping out at... ~500k?
Sun gave up on the web client. It was probably a wise move. With Netscape dead, Microsoft was the only game in town, and the only way Microsoft was going to play fair was if a few judges teamed up to force them to. Java wasn't a vector art tool with a tacked-on scripting language... it was a huge and growing general purpose computing platform, and it had grown too big to distribute "casually" over the net... In their defense, Java was designed to meet vastly different needs than Flash. It's much more powerful. But that was the price they paid.
In general, I thought it was possible to do much better in terms of size and initialization time. Beyond spending more time tuning I suggested at the time that they modularize the system; use a small Java framework (~200k) that can download various parts of the API on-demand; then you can do version tagging and the whole thing looks more like ActiveX (or perhaps a Shockwave XTRA) where you reference a package and a version number and it gets transparently pulled from a URL if the client doesn't have it. This way at least users won't have to pull megabytes of CORBA and JDBC and three different GUI API's just to do some vector art or a little stock ticker widget, and there's the chance the whole thing can be doable for real users at large. But it boils down to big scary changes and it's no surprise Sun just threw up their hands and let it go.
You are smart to draw the comparison. It's highly ironic that Java has ended up overshadowed by Flash on web clients, and may someday lose even more ground to it elsewhere... there's a profound lesson about the evolution of software technology in there.
Want to Know How to Cheat the GPL? Read On!