Software is increasingly a medium for artists. That to me raises really deep questions about platforms, and whether you’ll have freedom with the platforms you use. A gig’s a gig, and there’s nothing wrong with using these tools to accomplish jobs. But on the other hand, for the same practical (not even philosophical) reasons, the ability to modify the platform when you push past its capabilities is essential.
The ability to take your creations and run them on a variety of mobile devices – and how much freedom you have with the tools on which they’re built — is a key issue in 2009, as mobile platforms coalesce.
As I see people making amazing artwork with code, and then we have this question of which of our semi-disposable devices will actually be able to run stuff, I think this is as much an artistic question as a technological question. So it’s worth evaluating how three big players are doing at the moment. And this isn’t just to advocate open source for the sake of it: a big question is whether you’ll be able to write code and get it on mobile screens around the world.
Adobe’s Progress: Patchy, But Productive
Adobe has grabbed some headlines – and some skepticism – over their Open Screen Project. As Google did early on with Android, there’s a bounty for developers ($10 million). But it’s the “open” bit that has had some folks scratching their heads. After all, Adobe is one of the world’s biggest vendors of proprietary, boxed software. That’s not a criticism, necessarily, but it may make you wonder what these “open screens” are about.
Via the FAQ, here’s the answer – and a decent overview of where Adobe is so far:
- Published, unrestricted SWF file format – no SWF license required (that has indeed enabled some open-source SWF/Flash tools)
- Royalty-free Flash Player and Adobe AIR in the next release
- Published device porting layer APIs
- Open-sourcing Flex framework, the Flash Ajax Video Component, BlazeDS, and XMP
- The ActionScript Virtual Machine for Mozilla Tamarin project, and contributions to Tamarin performance
- ISO standardization of PDF
- Card-carrying membership in the Linux Foundation, the Eclipse Foundation, and the SQLite Consortium – which makes good business sense, by the way, since Adobe benefits from those projects
That’s a pretty admirable record. The only problem – and it’s a big one — you don’t see Flash Player and AIR. They may be license-free, but they’re simply not open-source. It’s these players that really make the experience of playing content work. So Adobe means only that they want to open components of this, and make their proprietary players work better on mobile devices. That’s a worthy goal, but it means you’re fundamentally constrained in terms of what Flash and AIR can do.
So, in other words, Adobe actually turns out to be surprisingly open, but the screens themselves? Not so much.
Silverlight: Free Fail
Then again, this does compare very favorably to Microsoft Silverlight. Fewer portions of Silverlight are open in any sense – the Dynamic Language Runtime is, under a license Microsoft made up, as is the XAML format on which Silverlight creations are based. But that doesn’t include any of the meat of what Silverlight is, and it’s a far cry from Adobe’s entirely open specs and Flex framework. Microsoft is working with Novell on an open-source implementation for Mono — good for Linux and Mono developers, but because it is providing access only to a limited group of people, doesn’t really count as open. And Silverlight’s mobile strategy is murky (Windows Mobile, Symbian for now).
The closed nature of Silverlight means it’s not getting adapted as quickly or effectively on different platforms and OSes. In other words, people may just not use it. That’d be no great loss, except that a lot of what’s going into Silverlight is actually very good. And it’s not unfair to expect more of Microsoft. Part of the success of Windows comes from the fact that its APIs are so exhaustively documented. And the fact that the company has made small steps into the open source world demonstrates that at least some of the people who work at this gigantic company do get it. I just get the sense that the old business model dies hard. It’s their loss, given that they do stand to make more money if Silverlight is more popular, via support and tooling.
JavaFX: Getting More Open
The good news is, both Microsoft and Adobe are responding to a competitive marketplace by opening things up, because it makes business sense. The bad news is, Microsoft isn’t doing it very well, and while Adobe is performing reasonably well, the crown jewels are still proprietary.
And that brings us to JavaFX. Sun earns real points here for being way ahead of Adobe and Microsoft on both compatibility and open licensing.
Compatibility: While Adobe pursues a patchwork approach to getting Flash running on different platforms, the just-released JavaFX Mobile runs just about everywhere. Any Java ME device works. Just about any mobile OS should work in theory – Google’s Android, for one, was shown last year.
Openness: Adobe is “openish,” but JavaFX is getting close to being genuinely open. The compiler is open, though, in fairness, so is the Flex framework. The key is that we’re gradually getting additional libraries and APIs. And since JavaFX runs on Java, the platform itself is open. I’m running JavaFX apps right now on Linux using Java SE. There is no “player” as with Flash, but the bottom line is, with JavaFX you can run your creation on open code; with Flash, you run on proprietary code. And that’s not just a semantic point – here on Linux, there are things that just don’t work or don’t work well because Flash is proprietary. Audio and video work better in Java, particularly on Linux, because people have the freedom to fix stuff. (Out of all the “freedoms,” freedom from borked things to me ranks pretty high.)
So, what do you think, CDMers? Any of these platforms appealing?
I hope to check in with the JavaFX folks next week. For arts use, I’d love to see JavaFX, possibly even a JavaFX-ready rendition of Processing for mobile, and OpenFrameWorks on mobile devices. If you have some questions, I’ll try to get answers.