When I'm out in California, I try to get to a few SDForum events in Silicon Valley. On Tuesday night I went to the eBay offices (some places still cordoned off after the bombing) and saw a presentation from TIBCO General Interface about their really slick AJAX toolkit.
Their system pulls in structured data from various Web Services, parses it into an intermediary data format, and displays and manages it using a collection of very sophisticated widgets and controls. The entire interface is done in JavaScript with DHTML and AJAX, and it includes panes, menus, grids, sliders, editable text fields, moveable dialogs and windows, drag-and-drop, etc. In fact, their entire system, including the IDE, runs directly in a browser (currently only Internet Explorer and Firefox) without any extra plug-ins. The developer experience is comparable to using something like Visual Basic in a native compiled environment, but it's entirely browser-based. It's certainly one of the coolest technologies I've seen in a while - not needlessly flashy, but extremely rigorous and mature. They've been doing some serious work here and it shows. There's a screencast that seems to cover most of what I saw in the demo.
Some things I found interesting:
They found that browsers can handle lots of data quickly and efficiently in memory and with JavaScript. Text files, especially if they're compressed, transfer quickly as well. The biggest performance bottleneck in the browser is displaying the data. With this in mind, they've built an entire data management layer in JavaScript that lives in the browser. It takes in data form various web services and parses it out and only displays what's relevant to the current context - breaking large lists into multiple 'pages' or providing other interface tools to 'browse' the data space. I had always worried about overloading a browser with too much data in my own projects - but text doesn't actually take up that much memory and processing (the entire Bible is about two megabytes, for example, which is a rounding error on today's machines), compared to graphics and layout.
Their entire toolkit fits into a 160k JavaScript file. JavaScript is getting a lot more respect these days as a 'real' language that's good for more than just scrolling banners. I'm guessing this is at least partially because of much improved JavaScript developer tools like the Web Developer plugins for Firefox. People can now build real libraries with sophisticated code.
As their guy said, 'we have a six-figure version of this that we hope you can get your employer to buy, but we also have an open-source version that's under the BSD License.' The difference isn't in the technology, but rather the support and hand-holding. There's a lesson here seems to be that technology tends towards free, but support and service are expensive and middle-management is happy to fork out Big Money to make sure their behinds are covered.
Speaking of covering behinds, one of the interesting bullet points of the pay version is 'Indemnity against potential intellectual property risks'. I guess that's part of the landscape now, with SCO and Microsoft/Novell out there FUDding.
Now web interfaces seem to be as good as late-90s native interfaces (VB, PowerBuilder, etc.) and web service feeds seem to be standing in for late-90s client-server technologies. So Web 2.0 has become Visual Basic 5. Except it's platform-independent and lightweight and open source and has access to the entire world of web services.