Bindings, Platforms, and Innovation
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
Tracking change and innovation in the enterprise software development community
Posted by Jonathan Allen on Apr 06, 2007 01:14 PM
Or is it JavaScript? A common trend in the new crop of desktop UI frameworks is that they are XML based with some sort of support for JavaScript. We take a brief look at AJAX, WPF/XAML, Flex/MXML, and Firefox’s Gran Paradiso.
The first up is AJAX, the poster child of the Web 2.0 craze. Being essentially a new technique to leverage existing HTML and JavaScript technologies, there is little reason not to use HTML. While not currently suitable for desktop application development, it did set the stage for what was to come.
Microsoft is betting heavily on a new XML based language called Extensible Application Markup Language (XAML). For traditional Windows developers, this is leveraged through Windows Presentation Foundation (WPF). WPF looks a lot like ASP.NET in that one language, XAML, is used for presentation while another, C# or VB, is used for event handling in a code-behind file.
Aside from the technological differences, XAML radically changes the development cycle for user interface design. User interface specialists and graphic artists can use XAML editors such as Expression Blend or ZAM 3D to create the user interfaces, then turn the files over to developers using Visual Studio. No longer will developers work from non-interactive screenshots put together in Visio or Photoshop, at least in theory. Judging by the rather mixed success of the ASP.NET, the effectiveness of this is questionable, but at least the potential is there.
The XAML story doesn’t stop there. Microsoft is also promising cross platform support is promised with Windows Presentation Foundation/Everywhere (WPF/E). This product is going to start with JavaScript as its procedural, event-handling language, with a later version supporting the Common Language Runtime (CLR). This is seen as a direct competitor to other browser-hosted frameworks such as Flash/Flex.
One thing to note about the XAML technologies is that the designers don’t really exist yet in a finished form. Expression Blend is currently a release candidate, and Visual Studio won’t have anything more than a CTP until VS Orcas hits beta later this year.
Next up is MXML. This is the XML-based presentation language used by Adobe Flex. This, combined with the JavaScript derivative ActionScript, was originally released by Macromedia in 2004. Over the years tool support has improved, but it remained shackled to the browser and the Flash player. Adobe Labs seeks to change that with the Apollo project. The goal of the Apollo project is to create a cross-platform runtime that will free Flex from the browser and allow it to run as a stand-alone desktop application. Essentially stealing Java’s original playbook, they are bringing the fight right into Microsoft’s living room. And with their superior UI capabilities, they just might pull it off.
Finally there is the new offering from Firefox, Gran Paradiso. Unlike Microsoft, who created a new language to get onto the web, or Abode, which created a new runtime to get off of it, the Firefox team is sticking with what they have. Gran Paradiso uses the same underlying technology that AJAX uses, HTML and JavaScript, and it still lives in the browser. This difference is that it plans to offer DOM storage, offline execution, and a synchronization model that will allow web applications to run in a partially or fully disconnected mode.
This reliance on a specific browser is what may ultimately sink Gran Paradiso. Unlike the cross-platform runtimes used by WPF/E and Apollo, which hopefully the users won’t have to think about, Firefox is a highly visible frame that takes away screen space from the application itself. And if the user prefers Internet Explorer, Safari, or Opera, they may be agitated about having to use Firefox.
The common theme throughout all of the new frameworks is a combination of XML and some form of JavaScript. Is JavaScript the next big langauge, or is this just a short term anomaly?
i am not an expert but i think XML is the way to go. It is 'extensible'. Java script is not as extensible plus one can not apply validation rules etc in JS.
What makes you think that? I am quite new to Flex, but the (m)xml is just a front to the action/javascript. The tags you write are translated for you, you can achieve the same results manually by writing the Actionscript.
Are there any sophisticated Gecko/XUL/Javascript application out there (like a CRM) which are used in the so called "enterprise"? I think there is one more underestimated platform: Yahoo.Widgets, it offers since version 4.0 a embedded sqlite database. Also if look over the DOM Reference I think it could be possible to create a great UI also for bigger applications.
About three months ago I tried to summarize most popular RIA technologies in this post. Even though XUL is not the most widespread, I believe the future looks very good for it. Among the technologies listed in this post on InfoQ, XUL is the only one mature enough to deliver complete (as in "self-contained") cross-platform applications in use by millions of people, and Mozilla is doing it for years now.
I think you can count "firefox" as an enterprise application. So as Thunderbird. Songbird is promising. Has XUL yet reached the tipping point? Does not seem so. Reminds me lisp. The best solution ever. But...
I think the real advantage of XML-based layout is that it is much easier to develop tools for it. As anyone who has had to hand-edited the "do not touch" code in a WinForms application knows, it is real easy to have otherwise valid code that breaks the drag-and-drop designers. With XML-based layouts, the XML itself provides the structure so you don't have to rely on fragile and mostly undocumented coding conventions. Of course that assumes that someone takes the time to build a decent set of tools. If all you are doing is hand-editing XML instead of hand-editing source code, then you haven't gained anything.
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.
This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.
This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.
This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.
After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.
IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.
Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.
6 comments
Watch Thread Reply