I’ve seen talk of MS Silverlight and Adobe AIR. People talk them up like the future of web applications or something. I don’t know much about them, but I almost completely certain I don’t want anything to do with them.
Here’s a general rule I have: I don’t accept anything made by people who hate the web. If you hate the web and you want to improve the web, I don’t want anything to do with you. If you think the web is some kind of implementation detail then I probably don’t care what you are doing. If you still think the web is a fad, then you are just nuts; if all you can think of is reasons why the web is stupid and awkward, and you think it’s some giant step backward (from what?), then you haven’t thought very deeply about what’s happened in the world of technology and why.
To me Silverlight and AIR reek of a distaste for the web.
So it is with great delight that I read the announcement of Mozilla Prism: a bridge between the desktop and the web, written by people who don’t hate the web.
The premise of Prism from what I can tell is this: to make a web application into a desktop application, you just give the browser a shallowly separate identity. It lives in its own window, has its own icon, it’s own launcher. Maybe runs in its own process for reliability. You take away the chrome (URL bars, back button, etc). Unlike previous ideas for Mozilla (like xulrunner) you don’t add chrome back in with XUL, you just write all the controls with HTML and Javascript.
All the things that Prism isn’t is what makes it great, because it’s so damn simple. The only thing that really seems weird to me is that it is very separate from the browser itself; hopefully this is just temporary, and by the time it’s really "done" you’ll be able to just make any page an application directly from Firefox.
This doesn’t make web applications perfect, of course. There’s the offline issue. There’s usability issues, like keybindings. There’s lots of issues, but all of those issues apply just as much to the web as to a desktop application, and should be solved both places. Those things can be worked on orthogonally (most interestingly in Web Forms 2.0 and Web Applications 1.0 at WHAT-WG). Still, HTML and Javascript right now are totally workable for most applications.
No related posts.
I have to disagree with you on one point, sound. It is incredible that with canvas you can even try to make a 3d engine using only javascript and 2d drawing, but to this day there is no way to really play sounds using javascript. For that I welcome AIR and speciaaly Silverlight (that let me use python).
I felt the same regarding silverlight and air. Yet here is a link to something simpler, powerful and open. It is called jNext (javascript extensions) and you can find more details [here](http://www.jnext.org/sphp501/index.php). It is certainly done by people who love the web, that is beyond any shade of doubt.
This is an area which really interests me — I’d love to upskill a bit. extjs blew me away when I saw it — anyone reviewing bleeding-edge web technologies should check this out first. It appears to be very robust and made my web browser do amazing things.
-T
Hey Ian, I’m not sure that bringing desktop application creation abilities to web developers is anti-web.
AIR is distinctly different from the web (obviously) it’s not about new capabilities on the web, it’s about desktop development.
Hmm… I don’t think I get ‘prism’. The problems with web apps are latency, no offline capability, lack of easy to use rich interface controls (except through bloated Javascript libraries stretching Javascript well beyond its capabilities), etc.
How does taking the current model (i.e. web pages) out of the normal browser chrome provide anything new?
(By the way – your ‘website’ entry field doesn’t allow enough characters for my stupidly long blog URL!)
The ‘Emusic’ client is already built on something like this. (Not sure if it Prism but it is definitely a firefox app). It works quite nicely – but is still a web app. I’d like to see the distinction between web apps and desktop apps blurred a bit. Maybe I’m one of those people who ‘hate the web’?
Uh, to me Prism looks like a glorified HTA or, at the very best, Yet Another Windows-Only Gadget Platform. Developers are obsessed by desktop gadgets; out of 200 normal people I know, just one actually uses one, and it’s because the normal Windows clock is a bit small for him.
For once I agree with Ian on something. Where are the specifications for Silverlight and AIR, let alone the source code? It’s interesting to read the Adobe bloke complaining on the Mozilla blog about how AIR is misunderstood, but then he (and his corporate master) seem to position it as a delivery vehicle for Flash. And there are plenty of people saying, “Oh I’ve been a Flash developer for n years and I’ve never felt locked in to a single company’s products.” Meanwhile, somewhere in the world, someone is swearing at a Web site for dropping a binary payload into their browser for which their system has no support, where the site designer has decided that the user must use Flash to complete a activity central to the usage of that site. (Let us hope that it isn’t their Internet banking site.)
Just when we thought we’d reached a point where access to information systems had become both convenient and inclusive, companies like Adobe (proposed trademark: “blind people shouldn’t read e-books”) encouraged a bunch of Nathan Barleys to transfer their “Mac design” skills to the Web.
It’s worth noting that there is an ExtJS-based demo for AIR… no Flash involved.
AIR is all about using web technologies to create desktop apps (HTML/CSS/JavaScript, plus Flash since it comes from Adobe). AIR has nothing to do with “replacing the web”. It’s about desktop system integration, offline access and stuff like that. Adobe Flex and Microsoft Silverlight could be described as being about “replacing the web”.
This is not to say that Prism doesn’t sound interesting. It is interesting (though a bit less so for me, since I’m a Mac user and Prism doesn’t support me yet). It’s a bit different take on the desktop/web integration issue.
I think the hugest thing in moving web applications to the desktop is offline storage. If a Prism database could be distributed (one local, one or more remote) this would solve things very elegantly [for most applications]. So, someone needs to create the mnesia for Prism! Thanks for the news, Ian.
“To me Silverlight and AIR reek of a distaste for the web.”
Stellar argument.
I think Air and Silverlight have a use. Providing nice video widgets and controls that just aren’t easy to implement in Javascript and html. integrating with a webcam or voip for example essentially the local machines resources. That would be my primary reason for looking into them.
But I’d much rather an open source cross-platform way of doing this. I’d say the JVM which is cross-platform and being open-sourced.
The JavaFX stuff sounds promising if it’s open source, but it seems to have been forgotten in the Air/Silverlight race.
But I’m all for mozillas work, though I’m very fond of the back button.
Prism is nothing more than a browsing Widget inside of a window. There is nothing special about it, and once the hype has died down, it will be largely ignored.
Call me when it does something special.
Congratulations, you guys have come up with the greatest marketing campaign ever. Taking a browser with no features, and heralding it as the next big thing. Genius.
If Prism ever does anything special it will be an unfortunate scope creep. A program that’s halfway done the moment it is even proposed is an uncommon thing, but quite welcome to me.
I have to disagree with you. I think AIR/Silverlight whatever are great! Granted, I don’t think one should produce a content heavy website with them (except when handling the video streaming), but for those portions of a website that require a lot of user interactions, I believe it’s essential, it’s the future.
One place where all this Silverlight/Flash/Flex stuff is going to be BIG is in the enterprise. Think about all the enterprise applications that exist, and management consoles for these that are very clunky and dated. Sure, some of them you can be improved with an AJAX style interface, but as a programmer, I really hate working in AJAX. Then, there’s applications that just aren’t possible in HTML/Javascript. How many web games have you seen written in Javascript? Why does everyone write them in Flash?
Plus, with two big companies, like Microsoft and Adobe, competing hard for the space, we as developers gain by getting better tools, apis, more functionality, better products. For example, Adobe would have probably sat on developing a HD-quality flash player (coming in next version of Flash Player) if Microsoft never came out with their excellent Silverlight streaming capabilities found in version 1.0. Adobe would have probably also sat around and not developed any hardware based acceleration for their graphics APIs. And Microsoft would have probably never came to the game if it weren’t for companies like YouTube using Adobe technologies in ways that Microsoft couldn’t support.
I’m all for making web sites simple pages, but there’s a lot of applications that can gain from more interaction. How for example, would you create an image editing application out of HTML components and JavaScript? A web game? A simple video editor? How about building a book from a bunch of images?
Another thing that’s great about these technologies is the developer productivity. Until you’ve opened up Flex Builder, grabbed some data from remote RESTul or WebServices. Placed some initial controls and stepped through the debugger…well…there’s so many desktop type applications that are going to be able to be built with Flex/AIR and Silverlight (1.1 and above). There’s going to be a lot of developer productivity. And I think this is what has developers excited.
Also, AIR has several different development methodologies: 1) you can be a html/javascript developer and access the APIs 2) a Flash developer has access to them, and 3) a Flex developer has access to them (C# and Java developers should really look at Flex). It’s also interesting to note that Adobe has open-sourced Flex, so you can look at a lot of the APIs (but not all), in fact, it’s a great way to figure out how to build more controls.
Also, those of you who keep interchanging Silverlight and AIR, they serve two different technologies. Silverlight = Flash about 6 years ago. Silverlight 1.1 (coming in the spring, hopefully) will be the goods (as far as developing with the Microsoft platform goes). Adobe AIR is probably most similar to XUL, in which case, Microsoft doesn’t have a story for cross-platform desktop application development. Adobe AIR is just a few extra apis that allow access to native windows, SQLite, the filesystem, notifications, etc., and some form of launcher.
Sure a technology like Flash/Flex might be mostly closed architecture, but you can now get Flex Builder for $250 bucks, and the Flash/Flex runtime runs almost anywhere (except for the three people running linux desktops on 64-bit architectures.)
What’s also great about these technologies is that your developed applications can be served by any web-based architecture (not the video/music streaming) side of things.
What’s Prism got for user controls that people can duplicate, how are they going take advantage of hardware acceleration? Could you write a simple video editor in it?
Also, from reading the Mozilla Labs website, I’m not really sure I think much of this quote: “Unlike Adobe AIR and Microsoft Silverlight, we’re not building a proprietary platform to replace the web….” That is something MICROSOFT would say about one of their competitors. One of the my favorite things about working in Flex/AIR is system interoperability. The backend can be written in anything, .NET, Java, Ruby, Python…etc. So with the premise of the web being finding information based on URIs, I’m not so sure either Microsoft or Adobe are looking to replace it. This quote by Mozilla sounds a bit alarmist, and naturally, makes Mozilla sound ________________ (I can’t think of the right word).
Another note, I developed a lot of Java applets back in the day, and trying to get them working across different implementations of the VM was a pain in the but. I have yet to run across this working on Flex/AIR.
Go learn more about AIR/Flex/Silverlight. You’re going to have to someday, anyway…and as a technologist, there’s probably some things you can learn by digging into their platforms. In the mean time, here’s some RIAs (some AIR, some not) that look pretty promising, and I’m pretty sure, if you event had the inkling to create an application like this and you wanted to stick to JavaScript, well, good luck. (There’s a reason COBOL eventually died out): http://www.mixbook.com/
This guys is making a UML modeler called Saffron. It’s not released yet, but it looks very promising. Lots of interesting screen shots at his site. It really shows how AIR isn’t really just to take the web to go, it can be thought of as a cross-platform runtime development environment similar to wxWindows or QT (though, not as functional): http://www.levelofindustry.com/display/ShowJournal?moduleId=676235&categoryId=114963
SplashUp photo editing: http://www.splashup.com/
Picnik http://www.picnik.com/
(I’m including just some browser-based stuff, because all Adobe AIR is really doing is allowing you to run locally like an application, and have access to filesystem so you don’t have to proxy file uploads through a webserver to use an application).
> One place where all this Silverlight/Flash/Flex stuff is going to be BIG is in the enterprise.
Yes, I remember only having to deal with ActiveX controls “in the enterprise”. The problem was that “in the enterprise” there are a lot of idiots who think that “if it appears in the browser window it must be on the Web!”, and these people then start needlessly mandating the proprietary wares in stuff that ultimately gets rolled out to the public (although I think the public were spared in one particularly memorable case).
> Sure a technology like Flash/Flex might be mostly closed architecture, but you can now get Flex Builder for $250 bucks, and the Flash/Flex runtime runs almost anywhere (except for the three people running linux desktops on 64-bit architectures.)
That would be the three people in this room with Linux on x86-64 plus everybody else, then. Given that a large number of systems now shipping support x86-64 and that Linux has supported the architecture for ages, I suppose we just have to assume that Adobe wants to refresh our memories about certain disadvantages of proprietary software.
> What’s also great about these technologies is that your developed applications can be served by any web-based architecture (not the video/music streaming) side of things.
Yes, I suppose that would be like the testing software I once had to use “in the enterprise” which was Web-based: it required Internet Explorer and dropped an ActiveX payload onto my Windows (x86) desktop.
At first I started to read, and thought “ah crap, this is gonna be an article on AIR and Silverlight”. It then got much better. Prism looks interesting, I will need to look into it.
[Fluid](http://fluidapp.com/) is a WebKit-based site-specific browser very much like Prism, though it is currently Mac OS X only. I find it to be a bit more responsive that Prism, though YMMV.
I think Adobe Air is proving to work pretty well. Sure there are a few bugs here and there like with any new type of programing but overall it’s fast and supports nice graphics.