Qt goes mobile, gets bling, aims for broader appeal

Here at Qt Developer Days in Munich we’ve heard how Nokia wants to see “Qt everywhere”, and will be supporting Qt on its Maemo operating system and on Symbian, as well as adding specific support for Windows 7 and Mac OS X 10.6, “Snow Leopard”. Qt already works on Microsoft Windows Mobile, and of course on Linux which is where it all started. What about Google Android, Palm WebOS, Apple iPhone? Nothing has been promised, but there is hope that Qt will eventually work on at least some of these other systems.

So is “Qt everywhere” a realistic proposition? Here’s a few impressions from the conference. First, a bit of context. Qt is a C++ framework for cross-platform development. and although bindings for other languages exist, Nokia says it is focused on excellence in C++ rather than working with multiple languages. Developers get the advantages of both native code executables and cross-platform support, and Qt is popular on embedded systems as well as desktops and mobile devices.

Qt is an open source framework which was developed by a company called Trolltech which Nokia acquired in 2008. Its motivation, one assumes, was to simplify development for its own multiple operating systems, especially Maemo and Symbian. Still, it has also taken its responsibilities to the open source community seriously. Qt was originally available either under the GPL, which requires developers to make their own applications available under the GPL as well, or under a commercial license. This limited Qt’s take-up. In March Nokia introduced a third option, the LGPL, which is a more liberal and allows commercial development using the free license. The result, we were told, has been a 250% increase in usage (though how this is defined is uncertain) accompanied by “a small drop in revenue.”

Although the revenue decrease is troubling, it is not a disaster for Nokia whose main business is selling hardware; and if take up continues to increase I’d expect revenue to follow.

Since the Nokia acquisition, Qt has been energetically developed. 2009 has seen the release of a dedicated IDE called Qt Creator. I was interested to see a company that has chosen not to go the Eclipse route for its primary IDE, though there are plug-ins for both Eclipse and Visual Studio. The trolls explained that Eclipse came with too much baggage and they wanted something more perfectly suited to its purpose, a lean approach that is in keeping with the Qt philosophy.

Another important move is the inclusion of Webkit within the framework, the same open source HTML engine that powers Apple’s Safari, Adobe AIR, and the browser in numerous Smartphones. Webkit also comes with a Javascript engine, which Nokia is exploiting in several interesting ways.

The big deal at Qt Developer Days was another new project called Kinetic. This is comprised of four parts:

1. An animation API.

2. A state machine.

3. A graphical effects API.

4. A declarative API, currently called QML (Qt Markup Language), though this may change.

Many of these pieces, though not the last, are already present in Qt 4.6, just released in technical preview. Nokia has not announced a specific date for Kinetic, though there were mutters about “first half of 2010”.

The thinking behind Kinetic is to make it easier to support the graphical effects and transitions that users have come to expect, as well as improving the designer-developer workflow – showing that it is not only Adobe and Microsoft who are thinking about this.

QML is significant for several reasons. It is a JavaScript-like API: we were told that Nokia started out with XML but found it cumbersome, and settled on JavaScript instead. It is designed to work well with visual design tools, and Nokia has one code-named Bauhaus which will be part of Qt Creator. Finally, it allows snippets of JavaScript so that developers can create dynamic user interfaces.

At runtime, QML is rendered by a viewer widget, which can be programmatically controlled in C++ just like other Qt widgets.  

Nokia’s hope is that designers can be persuaded to work directly in the QML designer, enabling free exchange of code between designers and developers. It is a nice idea, though I doubt designers will easily transition from the more comfortable world of Photoshop and Flash. However, even if in the end QML is used more by developers than designers, it does greatly simplify the task of creating a dynamic Qt UI. Note that there is already a visual GUI designer in Qt Creator but this is geared towards static layouts.

Long term, who knows, we may see entire applications written in QML, opening up Qt to a new and broader audience.

You can see the latest Qt roadmap here.

Qt pros and cons

I was impressed that attendance here has increased – from around 500 last year to around 700 – despite the economy. Those developers I spoke to seemed to like Qt, praising the way it self-manages memory, though some find the model-view aspect too complex and apparently this is to be improved. Nokia’s stewardship and openness is appreciated and the Qt roadmap generally liked, though there is concern that its understandable focus on mobile may leave the desktop under-served.

Cross-platform capability is increasingly important, and for those who want the performance and capability of C++ along with really good Linux support – important for embedded use – Qt is a strong contender. The focus on mobile is right, not only because of Nokia’s own needs, but because demand for Smartphone apps can only increase.

Integrating with Webkit is a smart move, opening up possibilities for hybrid web/desktop applications and giving Windows developers an alternative to embedded IE with all its quirks.

The open source aspect is another strength. This is now a good selling point if you developing for certain governments (the UK is one such) or other organisations that have a bias towards open source.

That said, talk of Qt everywhere is premature. The mobile space is fractured, and without iPhone, WebOS or Android Nokia cannot claim to have a universal solution. Nor has anyone else; but I’m just back from Adobe MAX where we heard about wider support for the Flash runtime. Then again, few choose between C++ or Flash; Adobe’s runtime is pretty much off the map for attendees here.

Qt is well-established in its niche, and is in good hands. I will be interested to see whether Nokia is successful in broadening its appeal.

Incidentally, if you can get to San Francisco you can still catch Qt Developer Days as it is running there from November 2nd-4th.

Guardian ungagging demonstrates power of Twitter (again)?

This morning the Guarding reported that it had been forbidden from reporting on a question to be asked in the UK parliament:

The Guardian is prevented from identifying the MP who has asked the question, what the question is, which minister might answer it, or where the question is to be found.

The Guardian is also forbidden from telling its readers why the paper is prevented – for the first time in memory – from reporting parliament. Legal obstacles, which cannot be identified, involve proceedings, which cannot be mentioned, on behalf of a client who must remain secret.

The only fact the Guardian can report is that the case involves the London solicitors Carter-Ruck, who specialise in suing the media for clients, who include individuals or global corporations.

The clue was enough for others to identify the case, which involves oil traders Trafigura, and Twitter responded in style, as the following image from Trendsmap demonstrates:

A few hours later the injunction was lifted. Although there is no way to show what influence the Twitter activity had on the matter, it at least demonstrates how the real time web can publicise events that others are trying to keep hush.

One question remains. What happened to “publish and be damned”? Maybe this is now unaffordable, which remains a worry from a freedom of speech perspective.

Technorati Tags: ,,

From Flash to Qt: different tech, same themes

I’m at the Qt Developer Days in Munich, hearing the latest from Nokia on its cross-platform GUI framework. Qt was originally developed by Trolltech, a company acquired by Nokia, and the Qt folk here still call themselves trolls.

So what are the trolls up to? Coming straight from the Adobe MAX conference last week, I’ve been interested to find that many of the themes are the same: mobile, hybrid web/local applications, and even designer/developer workflow.

The obvious difference is that Qt is a C++ framework and most of the developers I’ve spoken to here use Linux and C++, both rare skills at an Adobe event. Still, it seems that may be changing. “Wouldn’t be good if designers and developers could work on the same project?” said Matthias Ettrich,as he introduced QML, a declarative UI language for Qt. Now where have I heard that before?

An interesting feature of QML is that it supports Javascript as well as layout and state definition; in fact, QML definitions are really Javascript expressions. This means you can program entire applications in QML, though you can also use it purely to define the visual part, and code the rest of your application in C++. A QML layout looks like any other Qt widget to your C++ code.

But let’s get back to the idea of coding purely in Javascript. Ettrich explained how this would enable designers to add logic and state management to applications, without needing C++ skills. QML projects live in Qt Creator, the same IDE commonly used for C++ Qt applications. This echoes how Adobe presents Flash Catalyst, the new “interaction designer” for the Flash platform. Another parallel is that we saw at MAX how Catalyst can be used to create entire applications, provided that they are simple in nature.

It strikes me that QML has the potential to open up Qt to a much wider developer audience, one that never wants to touch C++. It is also amenable to visual design tools, and for those C++ developers who are not 100% averse to such things it is likely to prove popular.

Rentokil Initial adopting Google Apps – largest deployment yet, apparently

Following a successful 100-day trial with 800 users, Rentokil Initial is deploying Google Apps Premier Edition globally to “up to 35,000 colleagues” by the end of 2010, in what the press release says is the:

Largest deployment of Google Apps™ Premier Edition to replace multiple email systems with a standard global email solution … The new platform will provide a single web-based communication and collaboration suite to replace the Group’s existing 180 email domains and 40 mail systems across its six operating divisions.

Note that the focus is on email, though the release also talks about “communication and collaboration”, including Google chat and video and shared calendars.

Rentokil is keen on the translation service which Google offers:

…the frustrations of not having access to a single company-wide email address database will disappear and the translation difficulties faced by those colleagues wanting to collaborate with others around the world will be lessened

says CIO Bryan Kinsella.

There is no mention of word processing, spreadsheets or presentation graphics in the release, suggesting that a wholesale move to Google for documents is not currently envisaged. That said, I suspect that once an organization signs up for email and collaboration services, they will end up using other parts of the platform as well.

Google’s progress in the Enterprise is interesting to watch. If it successful, it will have a profound impact on the IT industry, and there will be less work for all those support organizations that spend their time keeping Microsoft systems up and running.

The Sneak Peeks at Adobe MAX 09

I was looking for a list of the Sneak Peeks shown at last week’s Adobe MAX conference in Los Angeles. I couldn’t find one quickly, so here is mine. Note that these are billed as experimental features that may never ship.

Thin client gaming: this is a kind of application virtualisation. We saw a 3D game that was rendered on the server, and streamed as video to a variety of clients. The clients send keystrokes back to the server enabling the users to control the game. Processing graphics on the server could enable effects that would otherwise require a more powerful graphics processor than would typically be available on a small device, as well as reducing the local install footprint to near zero.

Physics engine in Flash: Very interesting demo showing how you might apply physics effects to objects in the Flash designer. Instead of tracing an animation path, you set parameters that say in effect “behave as if dropped” or “behave as if thrown”. Great for games; if you wanted to code a pinball machine (as shown in the demo), for example, this would save a lot of mathematics.

Smart Paste: a cool demo showing how you might be able to paste content from vector graphics designers (like Adobe Illustrator) into an HTML web page, using the HTML 5 Canvas element and preserving scalability. The intermediate format is FXG, an XML format for Flash Platform graphics interchange. We were shown how the vector graphics could be bound to data from Excel to create a chart. The best bit was when we saw a Flash animation exported to JavaScript and HTML using this technique. Flash export to HTML from Adobe?

Flex mobile framework: Ely Greenfield showed a demo of Slider, a version of the Flex SDK optimised for mobile devices. Despite this being a Sneak Peek, there’s little doubt that this will ship.

Project ROME: an AIR application (20,000 lines of code) for graphic design, with a context-sensitive designer, text flow between containers, the ability to import Photoshop art, video embedding, and output including SWF, PDF, JPG, SVG. ROME also runs in the browser as a web application. This is interesting if you envisage a time when applications now part of Creative Suite could be implemented as web apps. See this on YouTube.

Developer cloud: Develop client and server parts of an application in an integrated manner and with the same programming language, with smooth debugging between the two. Demo of server-side ActionScript. Microsoft platform developers already enjoy something like this with C# or VB.NET in combined Silverlight and ASP.NET projects in Visual Studio 2008.

Fireworks hierarchical undo: This demo didn’t actually work, but it is a great idea. The problem with Undo is that it is linear. Therefore, if you do some bad work, and then some good work, you have to undo the good to undo the bad (if you see what I mean). This feature would let you undo selectively instead.

Pause and resume development: Also known as Edit and Continue, this lets you make changes to Flex code while paused during a debug session. Another one Microsoft developers already enjoy.

Photoshop intelligent hole-filling: this one got loud whoops of applause. The idea is that you take an image which includes an unwanted object – like a pretty view spoilt by an electricity pylon – select the object and ask for it to disappear, intelligently replaced by parts of the rest of the image. The demo worked fairly well; the image below shows how a group of water buffalo were disappeared from a photo. Now you will trust digital images even less.

That’s it; if I’ve missed something, let me know!

When the unthinkable happens: Microsoft/Danger loses customer data

Danger is a company acquired by Microsoft in April 2008, which provides synchronization and online data storage for mobile devices, the best-known being the T-Mobile Sidekick.  Here’s the Danger promise:

Data is always synchronized and backed up
Danger-powered devices are always connected to the Danger service. All user data is automatically and securely backed up over-the-air, and emails, photos, and organzier data are automatically synchronized with a Web-based application. All changes that are made on the device are instantly and automatically reflected on the user’s computer, and vice versa.

That dream is in tatters thanks to a currently unspecified server failure. Problems started over a week ago, culminating in this devastating “status update”:

Regrettably, based on Microsoft/Danger’s latest recovery assessment of their systems, we must now inform you that personal information stored on your device – such as contacts, calendar entries, to-do lists or photos – that is no longer on your Sidekick almost certainly has been lost as a result of a server failure at Microsoft/Danger … we recognize the magnitude of this inconvenience.

The word “inconvenience” does not express what some users are experiencing. Here’s an example:

I too have lost business contacts (over 200), family and friends mailing, email address & phone #. Good luck now with holiday cards.  Without my calendar, I now have no clue when all my upcoming appts are.  In addition, I have lost passwords, account codes and my gym workout routine.  I was unable to do my side jobs over the past two weekends without these codes.  To recover the information will take hours of my time worth way more than the month of service credit in addition to the money I have already lost not being able to work.

The entire reason I chose to stay with the sidekick and renew with t-mobile was because of the piece of mind knowing that my data information was backed up to an online system. 

So what next? People are drawing a variety of conclusions, the most obvious being either that the cloud can never be trusted, and/or that Microsoft can never be trusted. Of course there is no such thing as total data (or any other kind of) security, but risks can be minimized, and in the absence of nuclear war, earthquake or volcanic eruption this looks inexcusable – but bad things happen.

The company is promising an update tomorrow (October 12th). Personally I doubt that the data is really irrecoverable, knowing a little about what data forensics can achieve, but it may be economically irrecoverable. Still, the best thing Microsoft could do would be to announce that it can get the data back after all. Failing that, we need to understand as much as possible about what went wrong so that we can make our own judgment about what to conclude.

Presuming that the data does not reappear, this is going to get messy. What happens when the marketing information says one thing, but the small print says another (as is often the case)? One user found this in his contract:

The services and devices are provided on an “as-is” and “with all faults” basis and without warranties of any kind

which may well be typical. Then again, what about T-Mobile’s relationship with Microsoft?

Finally, while I accept that data may be safer in a cloud service provider’s data centre than on my cheap local hard drives, it is also obvious that cloud + local backup is even safer. Apparently this is one thing that Danger made somewhat difficult, and I’ve known this to be true of other cloud-based services.

Update: rumour has it that this was a failed SAN (Storage Area Network) upgrade without a backup. Further rumours of the poor state of Danger (and Windows Mobile) within Microsoft are in this RoughlyDrafted article.

Adobe’s chameleon Flash shows its enterprise colours

Duane Nickull is Senior Technical Evangelist at Adobe and co-author of Web 2.0 Architectures which I reviewed recently. He is also Duane Chaos of grunge band 22nd Century and entertained us at the Adobe MAX party last night in Los Angeles.

Duane Chaos at Adobe MAX bash in LA

It’s appropriate that he works for Adobe, whose Flash runtime has parallel chameleon characteristics. Most of the time it is delivering annoying ads, games or silly videos; but it also turns up as a flexible cross-platform client runtime for Enterprise applications.

We saw this demonstrated yesterday in an excellent session on scaling Flex for a large trading application, given by the developers of Morgan Stanley’s Matrix application about which I have written before. This session was far more informative than the earlier online briefing, and a fascinating case study in how to create Enterprise-grade software.

Matrix was built by a team of around 30 Flex developers, over a period of between 18 months and two years. It uses a REST-based service layer which talks to a variety of Java and .NET back-end servers – we didn’t hear much about these – and delivering XML to the Flex client. The team did not use the Flash-optimised AMF protocol because the app uses Lightstreamer which did not support it at the time, though we were told that AMF would be advantageous and may be used in future. LiveCycle Data Services were ruled out because of lack of support for edge server deployment; again, this has apparently been fixed in the latest LiveCycle so migrating in that direction is possible.

Matrix uses the Cairngorm 3 architecture, which specifies best-practice design patterns for Flex, implemented using the Parsley Application Framework. The application is modular, and we heard a lot about how rigorous module encapsulation makes a large application like this – 600,000 lines of Flex code – manageable, reliable, flexible and testable. One module cannot access the implementation details of another, and a message bus handles communication.

I was also impressed by the attention given to performance. Another advantage of using modules is that they are loaded on demand, reducing the load time and memory footprint. Each module is profiled separately. The team also found that a big factor in Flex performance is efficiency in managing redraw regions – apparently Flash can easily be sloppy about this and redraw regions that have not actually changed. The team patched the UIMovieClip component to overcome problems in this area.

A model-view-controller architecture is used for the user interface, and this enables better testability. The team uses continuous integration to maintain quality.

According to the session presenters, the result is an application that has the high performance required of a financial trading application, and can run for extended periods without issues.

Although I had the impression that developing Matrix has been bleeding edge at times, with the team using beta software to get access to new features, there was also evidence that Adobe was responding to issues and using this as an opportunity to improve its platform.

This makes a great case study for those sceptical about whether the Flash runtime is really capable of powering Enterprise clients, or for any Flex developer.

Adobe hoping to marginalise Flash-free iPhone

We got a few more clues about Adobe’s iPhone problem at a press conference today with Chief Technology Officer Kevin Lynch. There is no doubt about the importance Adobe attaches to the device. “Flash needs to get there in order to stay relevant on the web”, says Lynch, though there was some ambiguity about whether he meant the iPhone specifically, or the mobile web in general.

Yesterday’s announcement of Applications for iPhone, a feature of the forthcoming Creative Suite 5, solves a problem for developers wanting to port Flash applications to iPhone apps for Apple’s App Store, but does nothing for Flash content in web pages. Here’s the page you get if you follow a “Get Flash” link using an iPhone:

Note Adobe’s slightly more aggressive wording in the latest version of this page: “Until Apple eliminates these restrictions, Adobe cannot provide Flash Player for the iPhone.”

So what if Apple continues to refuse Flash – something which some users would actually welcome? Lynch made reference to the number of hot new Smartphones now appearing, including Palm Pre, Android phones, Windows Mobile 6.5 phones, and Nokia’s latest devices. He then referenced the early history of the PC, when Apple was first to market with a mouse-driven GUI but lost out to Windows in the mass market, and suggested that history might repeat itself, as these new devices incorporate many of the features for which the iPhone is popular.

The implication is that if Apple continues to be Flash-free it might lose market share to others; and that this might happen anyway thanks to the iPhone’s premium price and closed platform.

This may be wishful thinking. Closed or not, Apple has built up impressive third-party support for the iPhone and it will be hard to tempt existing users away.

Still, in the absence of any other possible strategy, it’s a reasonable one to try. We will not know the impact of having the full Flash player on Smartphones for a while yet, but if it successful, more of Apple’s customers will ask for Flash to be supported.

Technorati Tags: ,,,

Three reasons why Adobe Flash is hated

In the Adobe-shaped bubble of MAX 2009 in Los Angeles, Flash is the answer to everything, almost. That impression was reinforced yesterday when Chief Technology Officer Kevin Lynch spoke of his ambition to make AIR, the Flash-based out of browser runtime, into a universal runtime for SmartPhones, as I reported yesterday on The Register.

Many users and developers have a different perspective, and you can easily find examples in the comments on the piece linked above. I was also struck by the loud and spontaneous cheer accorded Opera’s Bruce Lawson when he presented HTML 5 as an alternative to Flash and Silverlight at the Future of Web Applications conference last week.

So why is Flash hated? Three main reasons come to mind.

The first is because most of the Flash content that we see is marketing and advertising. Most users prefer web sites that are ad-free, or at least where the advertising is low-key. On the marketing side, there are still plenty of occasions where you want to skip the intro. When I link to Adobe’s home page for MAX 2009, I always link to the Sessions page, not the home page which auto-plays a Flash movie with sound – because I think users would rather get straight to the content, rather than be startled or embarrassed by an unexpected broadcast. Fellow journalist Jon Honeyball tweeted recently:

using a blocker to rid myself of unwanted flash nonsense on web pages. And most of it is unwanted and unnecessary rubbish

A more nuanced angle on this same problem is that Flash developers are inclined to add a little bling to their applications, even if it is not marketing as such. Users who like applications that are sparse and lean react against this.

The second reason is that Flash can be detrimental to browser performance. There are two angles on this. One is that bugs or performance characteristics in the Flash Player, combined with perhaps badly written Flash content, can cause slowdowns or at worst lock-ups in the browser. The other is that much Flash content downloads a lot of data, to create its multimedia effects. This makes Flash pages larger and therefore slower. It is a consideration that matters particularly on mobile devices with slow or intermittent connections, which is why not everyone welcomes the prospect of full Flash on every SmartPhone.

Third, there are those who do not regard Flash as part of the open web, and want to see web content that can be rendered completely without the use of a proprietary runtime, and web standards controlled by a cross-industry group rather than by a single vendor. There could be political, ethical or pragmatic reasons behind this view; but it is one that is still strongly felt, as shown by the reaction to Lawson’s comments at FOWA.

Before you tell me, I realise that there are also plenty of reasons to like Flash; and I am not going to attempt to iterate them here. My argument is that even those who love Flash need to recognise that users with negative perceptions may have good reasons for them. From this perspective, Apple’s resistance to Flash on the iPhone is a force for good, since it compels web developers to continue offering non-Flash content.

It also follows that anything Adobe can do to mitigate these problems will strengthen its campaign to get Flash everywhere. I am thinking of things like improved performance and reduced memory footprint in the player, and better handling of errant applications; demonstrating lean and mean Flash usage in its own sites and examples; and continuing to open the Flash runtime and its future to cross-industry input, even at the expense of relinquishing some control.

Technorati Tags: ,,,,

Adobe uses Amazon platform for cloud LiveCycle ES2

Just spotted this from today’s Adobe’s LiveCycle ES2 announcement:

Adobe is also announcing the ability for enterprise customers to deploy LiveCycle ES2 as fully managed production instances in the cloud, with 24×7 monitoring and support from Adobe, including product upgrades. LiveCycle ES2 preconfigured instances will be hosted in the Amazon Web Services cloud computing environment.

This is neat: Amazon’s Elastic Compute Cloud handles the infrastructure, but customers get fully supported hosted services from Adobe.

Maintaining a global infrastructure for high-volume cloud services is hugely expensive, which restricts it to a few very large companies. Using Amazon removes that requirement at a stroke. I wonder if Adobe also uses Amazon for Acrobat.com – hosted conferencing and document-based collaboration – or plans to do so?