Category Archives: software development

A tale of two Adobe conferences

I am just back from Adobe’s MAX Europe. The previous Macromedia/Adobe conference I attended was Macromedia DevCon in 2002. Remarkably, the gold sponsors at the earlier conference included Microsoft, there to promote .NET technology to Dreamweaver designers. Such a sponsorship seems impossible now. Back in 2002, the big product announcement was Contribute, and its competition was FrontPage. Today, it’s war. Adobe is talking “platform”: hosted services, web applications, desktop applications, and none of it dependent on Windows; while Microsoft has suddenly got the cross-platform habit with its own Flash-like browser plug-in called Silverlight. On Adobe’s side, an amazing, ubiquitous, graphically-rich runtime that just works. On Microsoft’s side, huge resources and armies of .NET developers.

Max Europe was a good conference. There’s a buzz around the products, and I didn’t meet any disappointed delegates, although there was a little bit of concern that strong designer content was getting squeezed out by the new focus on developers. The Adobe speakers seemed very approachable, and I appreciated the willingness of senior executives to talk to the press. In fact, the company has retained something of a small company feel, at least among the ex-Macromedia team which seemed to dominate at MAX. Adobe also has a clearer focus than Microsoft, which comes over as more bureaucratic and internally conflicted.

Nevertheless, it is possible that some at Adobe are under-estimating Silverlight. One speaker assured us that it only runs in one browser (false). Flex Builder is slow and awkward in comparison to Visual Studio. Adobe does have a big advantage in mobile devices – Nokia was at MAX and is putting Flash in all its high-end phones – but I am not yet convinced of the merits of Flash Mobile.

Mac count at MAX: about 50-50 with Windows on a very rough estimate. That’s proportionally fewer Macs than at FOWA earlier this month, which was maybe 80% Apple.

Flash, Silverlight the future of video games?

According to the BBC, gaming giant Electronic Arts is fed up with having to code the same game three, four or five times over. That’s the downside of the console wars – several incompatible systems.

The article says that streamed server-based games will be increasingly important.

A few observations. First, the PC is the nearest thing to an open platform right now, and it’s interesting that PC games typically cost around 30% less than those on the top consoles. For example, the hot new FIFA 08 typically sells for £40.00 on PS3 or Xbox 360, £25.00 on PC. It’s cheaper on DS or PSP, but must be considerably cut down on these low-powered devices. The Wii is somewhere in between.

Second, I’m writing this after seeing the amazing things being done with Flash. Microsoft’s Silverlight is also interesting in this context, as is Canvas 3D – OpenGL running in the browser.

That’s still three separate platforms; but since they are all cross-platform, there would be no necessity to code for more than one of them.

Third, Flash games are already very popular. If you calculate market share by time spent playing, I guess Flash games would already show a significant portion (I’d be interested to see those figures).

Fourth, the success of the Nintendo Wii proves that although geeks care deeply about who can shift pixels and calculate transforms the most quickly, the general public does not. All they want is a playable and enjoyable game.

All this suggests that the business model behind Microsoft’s and Sony’s console strategy is flawed. The idea is to buy market share by subsidizing the hardware, then profit from the software sales to your locked-in users. What if users can get the same games by subscribing, say, to a hypothetical EA Live, and play the games on a variety of devices? The money is still in the software, but there is no hardware lock-in. Prices could fall, and game developers could spend more time being creative and less time re-implementing the same game for different platforms.

Flash is actually in the PS3 and PSP, but appears to be an old version. If Microsoft isn’t thinking about Silverlight for the Xbox 360, then it should be. But if my logic is correct, then the investment Microsoft and Sony have put into game studios is actually more valuable, long-term, than the money they have put into hardware.

That said, the online experience is not yet good enough to threaten the consoles. I doubt it will be long though. A key point is hardware acceleration in the Flash player. H.264 video will be hardware-accelerated in the forthcoming Moviestar release of Flash 9. I am confident that a hardware accelerated gaming API will not be far behind.

Adobe: friend or enemy of open source, open standards?

I’m sitting in a session at Adobe Max Europe listening to Senior Product Manager Laurel Reitman talking about what a great open platform Adobe is creating. She refers to the open sourcing of the Flex SDK; the open bug database for Flex; the ISO standardization programme for PDF; the donation of source code to Tamarin, the Mozilla Foundation ECMAScript 4.0 runtime project, and the use of open source projects such as SQLite and Webkit within AIR, the Adobe Integrated Runtime which lets you run Flash applications on the desktop, and the fact that AIR will run in due course on Linux, though the initial release will be Mac and Windows only.

So is Adobe the friend of open source and open standards? It’s not so simple. Adobe is more successful than any other company in promoting proprietary standards on the Internet. It ceased development of the open SVG standard for vector graphics, in favour of the proprietary Flash SWF. Adobe’s efforts may well stymie the efforts of John Resig and others at Mozilla to foster open source equivalents to Flash and AIR. View the slides of his recent talk, which include video support integrated into the browser, a canvas for 3D drawing, HTML applications which run from the desktop without browser furniture, and web applications which work offline. Why is there not more excitement about these developments? Simply, because Adobe is there first with its proprietary solutions.

Adobe is arguably more a consumer than a contributor with respect to open source. It is using the open-source Eclipse for Flexbuilder and Thermo, but as far as I can tell not doing much with existing open source projects within Eclipse, preferring to provide its own implementations for things like graphics and visual application development. It is using SQLite and Webkit, and will no doubt feedback bugs and improvements to these projects, but they would flourish with or without Adobe’s input. Tamarin is perhaps its biggest open-source contribution, but read the FAQ: Adobe is contributing source code, but not quite open-sourcing its ActionScript virtual machine. The Flash Player itself remains closed-source, as do its binary compilers.

Like other big internet players, Adobe is treading a fine line. It wants the world to accept its runtimes and formats as standards, while preserving its commercial advantage in controlling them.

My prediction: if Adobe succeeds in its platform ambitions, the company will come under pressure to cede more of its control over those platform standards to the wider community, just as Sun has experienced with Java.

Adobe shows how anything can be a web application

The closing session here at Adobe MAX Europe was a series of “sneak peeks” at forthcoming technology, presented with a disclaimer to the effect that they may never appear commercially. I am not going to do a blow-by-blow account of these, since it was mostly the same as was shown a couple of weeks ago in the USA, and you may as well read one of the accounts from there. For example, this one from Anara Media, if you can cope with its breathless enthusiasm.

So what was interesting? Overall, Adobe is doing a good job of challenging assumptions about the limitations of web applications, and I am not just talking about AIR. A few years ago you might single out something like Photoshop as an example of something that would always be a desktop application; yet this evening we saw Photoshop Express, a web-hosted Photoshop aimed at consumers, but with impressive image manipulation capabilities. For example, we saw how the application could turn all shades of one colour into those of another colour, so you can make a red car blue. Another application traditionally considered as local-only is desktop publishing, yet here we saw a server version of InDesign controlled by a Web UI written in Flex.

The truth is, given a fast Internet connection and a just-in-time compiler anything can be a web application. Of course, under the covers huge amounts of code are being downloaded and executed on the client, but the user will not care , provided that it is a seamless and reasonably quick experience. Microsoft should worry.

We also got a glimpse into the probable future of Adobe Reader. This already runs JavaScript, but in some future version this runtime engine will be merged with ActionScript 3.0. In addition, the Flash player will be embedded into Adobe Reader. In consequence, a PDF or a bundle of PDFs can take on the characteristics of an application or an offline web site. A holiday brochure could include video of your destination as well as a live booking form. Another idea which comes to mind (we were not shown anything like this) is ad-supported ebooks where the ads are Flash videos. I can see the commercial possibilities, and there are all kinds of publications which could be enhanced by videos, but not everyone will welcome skip-the-intro annoyances arriving in PDF form.

This was a fun and impressive session, and well received by the somewhat bedazzled crowd of delegates.

How much “branded desktop presence” will you put up with?

We saw a lot of AIR applications at this morning’s keynote here at Adobe MAX Europe. AIR lets you take either Flash applications, or Javascript/HTML applications, out of the browser and onto the desktop. The additional richness you get from running outside the browser is currently rather limited – we saw lots of drag-and-drop, because that is one of the few additional things you can do. However, AIR has a huge advantage for web vendors, because it puts their application and/or their content onto the user’s desktop. A great example is an Allurent-developed online shopping catalog called Anthropologie, which we saw this morning. Here’s a quote from the case study, headed “Branded desktop presence”:

“The idea underlying our Adobe AIR applications is to enable retailers to push relevant content to the consumer and let the consumer consider it from the comfort of their desktop,” says Victoria Glickman Hodgkins, vice president of marketing at Allurent. “The retailer avoids mailing a circular or catalog to promote special items, and the consumer can interact with digital catalog information in highly engaging ways.”

Right. Now we realize how the web browser has actually protected us from intrusive commercial presence on our desktop. The beauty of browser-based applications is that they completely disappear when you navigate away from the page, with only perhaps a Favorites shortcut to take us back there when we choose. An AIR application by contrast installs into our machine, probably puts an icon on the desktop, can run minimized and fire system notifications.

This isn’t a bad thing in itself, provided the user remains in control. But how many such applications will you want to install?

Put another way, AIR developers will need to exercise restraint in their efforts to inflict branded desktop presence on hapless users.

Technorati tags: , , ,

Mark Anders remembers Blackbird, and other Microsoft hits and misses

Here at Adobe MAX Europe I had an enjoyable chat with Adobe’s Mark Anders about his time at Microsoft. Anders is well known as one of the inventors of ASP.NET, along with his colleague Scott Guthrie. However, when he joined Microsoft in the mid nineties he worked initially on the project codenamed Blackbird. This was a kind of Windows-specific internet, and was surfaced to some extent as the MSN client in Windows 95. Although the World Wide Web was already beginning to take off, Blackbird’s advocates within Microsoft considered that its superior layout capabilities would ensure its success versus HTTP-based web browsing. It was also a way to keep users hooked on Windows. Anders told me that he never believed in Blackbird and argued that Microsoft should support HTTP instead. According to him, the executives at the time did not want to listen at first, but Blackbird had severe performance problems because of an over-complex architecture which made excessive use of multi-threading. Another colleague came up with the first prototypes of the Trident rendering engine, which we now know as MSHTML, and showed that in principle Blackbird’s layout goals could also be achieved with HTTP. In consequence Blackbird was scrapped before it was released.

What would have happened had Blackbird performed better? The momentum behind the World Wide Web would have ensured the eventual death of Blackbird, but Microsoft would have been further behind in the web server and web browser market. In retrospect, the slowness of Blackbird was the best possible thing for the company, because it enabled an earlier move to HTTP.

According to Anders – and bear in mind that he now works for a competitor – the tendency to over-complicate its software is one of Microsoft’s biggest problems. The projects that work best tend to be those which simplify what already exists, rather than those which make it more complex. Thus, the success of C# and the .NET Framework came about because of its ease of use in comparison to C++ and MFC. Anders recalls the 2000 PDC, when C# and the .NET Framework was introduced to the world, as a great success. By contrast, at the Longhorn PDC in 2003 Microsoft introduced new technology that was not fully thought-through. These were the “three pillars of Longhorn”: Avalon (now Windows Presentation Foundation), Indigo (now Windows Communication Foundation) and WinFS (now scrapped). Although WPF and WCF have been shipped, they are not in any sense pillars of Windows Vista, which is largely native code. The Longhorn Alpha that was given to PDC attendees (I still have my copy somewhere) was worked on for another year, and then much of the code was scrapped in favour of a conservative upgrade from Windows 2003 – the famous reset that became Windows Vista. Like Blackbird, the original Longhorn had performance issues. I put it to Anders that the failure of Longhorn cost Microsoft two years of momentum; he replied that it was even more than that.

When Anders was working on ASP.NET he says there was always an element of disapproval from others at Microsoft who wanted to tie users more closely to Windows. Although ASP.NET runs on Windows, it supports cross-platform browser clients. There are parallels today with what the Silverlight team is doing. Silverlight is the right direction for Microsoft, but not everyone will like the idea of a rich cross-platform client and the Silverlight team may be under that same kind of pressure. Of course Anders would say that, because he now works on Flash, but I suspect there is truth in it. Microsoft does at times lurch back into Windows-only mode, as it is did when it ceased development of Windows Media Player for the Mac. That was an extraordinary decision when you consider the wider context of the multimedia and DRM wars. With Silverlight Microsoft is once again on the cross-platform track, not just for multimedia but for .NET code. It seems to be serious about it, but it will take a lot to convince long-term Microsoft watchers that cross-platform Silverlight will endure. Personally I hope it stays the course; competition is good.

Matt Mullenweg’s less-is-better approach to software quality

Interview with Matt Mullenweg in the Guardian today. This was done at the Future of Web Apps conference. I enjoyed meeting him. He is open and articulate. I had not appreciated until now that WordPress.com took the opposite decision from Google over the issue of being blocked in countries such as China which are less permissive than the USA about what can be published. He found out that by blocking certain words and tracking certain people the site could be unblocked:

Google had the same decision, and they decided that being there was less evil than not being there, ultimately. For us, we decided that being there under those circumstances isn’t worth it. We’d rather not be there.

A blogging site is not the same as a search engine. It’s arguable that both sites made the right decision. Not easy.

I was also struck by Mullenweg’s espousal of an Apple-like minimalism in software design. He says WordPress has too many options. He was particularly critical of Open Office:

If you open up Open Office, look at the preference screen, there are like 30 or 40 pages of preferences. Stuff that you and I will never care about and should never care about.

I accept the main premise – software should just work. I understand the further implicit argument, that adding options tends to diminish software quality, by adding complexity to the code. But it would be interesting to analyze some of the options in, say, Open Office, and find out why they are there and who is using them. Is having all these options tucked away really a bad thing, or this really more about user interface design?

Hosted platforms and the risk of lock-in

Two interesting posts for anyone considering building an application on a hosted platform like force.com (Salesforce). Onstartups has a thoughtful article about what it would be like to succeed on such a platform, and how much money and control you might end up ceding to the hosting vendor. Bob Warfield’s Smoothspan blog takes up the theme with a response that is longer than the original. What does it all boil down to? This, I think (from Smoothspan):

First, it has to be possible for you to move your software in a reasonable amount of time to new lodging if it gets too ugly.

As Smoothspan notes, this is what makes a service like Amazon S3, which you can easily switch out for another service, more attractive from this point of view than force.com, with its proprietary Apex language and forms.

That does not mean force.com is necessarily a bad deal. It means there has to be a lot of added value – such as productivity, high-level components, rich services – before it makes business sense to accept the lock-in.

New Silverlight book with live web coding examples

Adam Nathan is supporting his new book on Silverlight 1.0 with live code examples. This means you can modify the code in the browser and see the Silverlight canvas immediately update. It is a excellent way to get an idea of how the XAML works.

Of course you can easily invalidate the code, in which case you get a parser error.

Works on FireFox; not tried it on the Mac.

Technorati tags: , ,

An SLA for Amazon S3

Amazon has announced an SLA (Service Level Agreement) for its Simple Storage Service (S3).

S3 is great, and I noticed how it kept getting mentioned at the Future of Web Apps conference last week. The fact that people are using it, and liking both the performance and the price, says far more about it than any amount of PR.

The lack of an SLA was a snag for enterprise users who need assurance of reliability. So now there is one – but how much is it worth? Not much. The SLA guarantees 99.9% uptime, but you only get between 10% and 25% discount on your usage fees if it slips below that. There’s no coverage for consequential loss:

…your sole and exclusive remedy for any unavailability or non-performance of Amazon S3 or other failure by us to provide Amazon S3 is the receipt of a Service Credit

Given the keen pricing of S3 that’s not surprising. Still, the SLA does have some value, if only for setting expectations about what level of service S3 is likely to deliver.

Update: WordPress is now using S3 as its primary store, but Matt Mullenweg says the SLA means little to him. 

Technorati tags: , , , ,