The Future of Rich Internet Applications
Can't Get Enough Ajax writes "While Ajax continues to get most of the attention these days in the space of rich Internet apps, the future 'face' of Web applications may consist of a combination of Ajax and plug-in technologies based on the new Flash development platforms or other plug-in models. Why? The challenges of building and maintaining sophisticated software in Javascript and the lack of support for audio and video are just two reasons that any RIA strategy will involve a mixture of Ajax and one or more technologies like Flex, Laszlo, or others. But while there are significant advantages to the new RIA technologies, there are also important trade-offs including breaking the model of the Web, lack of HTML support, and more. ZDNet's Dion Hinchcliffe has a round-up of the latest generation of RIA technologies, pros and cons of each, and why there is likely a 'war' brewing among them."
While Open Lazlo and other open source client solutions are exciting, I think people generally want a fully integrated, front to backend solution for developing these Rich applications. Sure they provide data binding, but solutions such as Rails that provide server-side functionality to directly manipulate the client side give me a more comfortable feeling.
I want a full unification of the front and backend. That is why Rails, Turbogears and Cake appear to be more exciting.
Jim http://www.runfatboy.net/ - Fitness for web 2.0.
As did applets, as did activex. If macromedia wanted flash to be a serious tool, they should have developed a better platform for their actionscript to be developed in, because frankly the flash studio sucks. it comes no where close to real languages like java, c# for doing massive web projects.
Ive been running applications people access on their cell phones (or blackberries) for years.
Its been common to run a backend server (tomcat/apache/oracle/Java) and use the phone as the frontend, and allow webaccess for easier changes.
AJAX is free, easy to use, and people are using it now. Not even going into first revisions of software and bugs that are associated with new software, or licensing fees.
That Adobe flex uses coldfusion, we stopped using that and migrated to Tomcat.
I predict if the WPF/E team pulls off what they are doing to bring WPF 2D applications to all browsers and platforms it could be the next generation of Rich Web Applications.
Unlike ActiveX and other things from MS in the past, WPF/E is very secure, easy to deploy, and brings a new level of functionality that surpasses JAVA/Flash/AJAX.
It will be a few years off, but it has potential to bring an XML based applicaiton model to the web where others have failed.
(Part of the reason behind this prediction is that WPF/E is far easier to develop applications for than JAVA/Flash/AJAX... So in a weird way, it will be like the VB of the early 90s and less 'technical' people will be able to write rather rich web applications easily.)
Is that it's becomming less of a end and more of a means, and an almost invisible means at that (no stupid plugins!).
I turned on free tagging on my website to set up categories (for use with Drupal Views to get a view-content-by-category system) and all of a sudden noticed that the tag input box had a find as you type feature to match against existing tags/categories.
Highly useful, very unobtrusive and just a regualar part of the system getting on with it's job with a gracefull fallback if client side scripting isn't available. 10/10.
Think of the Children; Sleep with your Sister
Adobe's inability/uninterest in keeping Flash truly cross-platform should be a splash of cold water for folks who see it as part of a new Web generation. Adobe has proven for once and for all that using proprietary, closed tech in Web standards is a great way to cut your own throat. The coming of new demands on the Web offers a golden opportunity to get it right this time and make sure everything there is available to everybody, on any platform. Here's hoping that consideration drives the next wave of development.
I wish Webpage applets, whether Java, Flash, Javascript or other AJAX or just clientside execution objects, would all let me install them, rather than being bound to their page. Not just for easy access, rather than bookmarking their host page (which too often requires surfing several pages to build state). Also so I can combine them into single collected UIs. I want my own page with my banking client and a few shopping clients. And I want to be able to grant local access to a sandbox DB of my own data, like history and account info, that doesn't allow access to my other data, like other accounts.
If we could drag applets to our toolbars for local installation, rather than trapping them in their website context, they'd be a lot more useable. Hopefully this early stage of their development will incorporate that now/soon, rather than later when retrofitting and incompatibility will make problems last forever.
--
make install -not war
Having been around for IT for a while (20 years) and see quite a few revolutions come and go my sceptiscm with these kind of environments is that although the demo apps always look really good, the trouble comes when you take them out for a stroll in the real world and invariably you soon hit some sort of limitation on implementing something outside what the app was designed to do because the app hasn't been created with sufficient scalability or flexibility in mind. This is easily recognised when you brand-new tool whizzes through the basics as promised in a fraction of the time you would spend hand-coding, but then you loose all that time and more trying to code around the limitations when the going gets tough. Good mature development environments degrade gracefully with increasing size and complexity, poor and often new ones tend to have an asymptotic curve hidding in the undergrowth.
This isn't to say that Web 2.0 isn't wonderful. I'm doing a lot of contracts at the moment recoding old systems into browser-based ones and AJAX and partners are a joy to work with. My workbench at present is a mix of PHP using TinyButStrong http://www.tinybutstrong.com/ templates, AJAX using the xajax framework http://www.xajaxproject.org/, as much CSS 2.x as I can deploy that doesn't break on all common browsers, and whatever javascript widgets that meet the needs.
I can't recommend the two core tools in here highly enough - xajax is really nicely designed and I've only found one bug in it so far (when running a window modal), tiny-but-strong is even better - if you do any coding with PHP and havn't found this yet then you are missing the best templating system yet devised.
It's not that it's not quite there yet. Native browser support for SVG is non-existing. However, you can download plug-ins to view SVG. And being a W3C Recommendation, Netscape and IE are promising future browser support for SVG, and with browser support, the plug-in will eventually be phased out. The main problem with SVG for the moment is that hardly anyone uses it.
One sweet duo is SVG + Ajax, that can vastly improve the interface with the end-user, without eating up a lot of bandwidth and most importantly, can be easily implemented so that the browser gracefully presents an downgraded version of the page if one is not supported...
Give it all to the ones that can handle it, but degrade gracefully if one cannot handle it all. That is (or should be) the future of the web.
Uncopyrightable: The longest word you can write without repeating a letter.
From what I can see, it really wouldn't take a hell of a lot of work to merge XHTML and SVG into one specification with a richer layout model than XHTML currently has.
SVG gets you no new interactivity, just the ability to better display vector graphics. Nothing to sneeze at, but current SVG-browser apps are still going to use AJAX or whatever the HTML portion of the website is using for interactivity.
I agree with the grandparent that the whole stack needs fixing, but the most broken part right now is the stateless HTTP. All we need is for a browser to step up and offer a true, full socket object. Once people have settled into that, we can figure out how to make it more convenient, if there's even an obvious consensus.
If I could go back in time and choose between the XMLHttpRequest object or a Socket object, I'd take the latter. It's what people really want, they just don't really realize it yet.
Yes, it causes some new security problems, but ultimately, not really new ones; just allowing XMLHttpRequest at all really covered most of the security problems. (You'd certainly want to block the socket just to the originating server, though.)
Interesting, but you can already do this with or without the xmlhttprequest object. The technique is old, it's called slow load or comet. Basically you open a connection to the server, and have the server sit on it until it has something to send you. As soon as it sends its reply, that connection terminates and fires off a new one, continuing the cycle. Real-time feedback between client and server, without the need to poll or eat up bandwidth. I created a proof of concept of this using ajax here. You can build a full-fledged application like this with very low latency that looks just like a regular socket-using network app, in a web browser. The code in this posting has been revised, you need to spawn the thread off of the web server's hands to the CLR in this instance so as not to tie up web requests, and you can probably just do a thread.suspend and reawaken it instead of looping on the server, but it gets the idea across...
One thing that should be discussed when talking about the "The coming RIA wars..." (That have been going on for almost 5 years) are the benefits and limitation of the underly "VM" that the technologies are built on. For any given application one VM technology made be best suited for the application requirements. A framework can make it easy to use the VM and smooth the rough edges, add features but the true benefits and limitation come from the VM itself.
Currently there are four different VM technologies people use to build RIA applications (in no particalur order).
The article http://ajax.sys-con.com/read/232046.htm provide a good breakdown of the VMs.