De strijd tussen Microsofts Silverlight en Adobes Flash draait niet om geavanceerde webapplicaties, maar om desktopapplicaties met webfunctionaliteit.
Na Vista is er een nieuw tijdperk voor Microsoft aangebroken. Ray Ozzie, sinds zomer 2006 op de stoel van Bill Gates als chief software architect, drukt steeds duidelijker zijn stempel op de softwaregigant. Silverlight is een speerpunt in Ozzies strategie om Microsofts platform om te vormen tot een meer open combinatie van desktopsoftware en online diensten.
"Silverlight start de conversatie en de verfijning van die technologie", zei Ozzie afgelopen april bij de introductie van Silverlight 1.1 alpha op het congres MIX07. Silverlight is Microsofts rich internet application (RIA)-techniek. Brian Goldfarb, Microsofts product manager in de ontwikkelaarsdivisie, definieert de RIA-categorie als een applicatiemodel dat Ajax vervangt en voordelen van het web combineert met voordelen van de desktop. "Sun, Adobe, Microsoft, Google en andere bedrijven reageren allemaal op dezelfde marktvraag naar rijkere ervaringen die gemakkelijker zijn te bouwen en grafisch ontwerp bij het proces betrekken", zegt Goldfarb.
De platformonafhankelijke multimedia-plugin is afgeleid van Windows Presentation Foundation (WPF) waarop de Vista-interface draait. WPF is een grafisch subsysteem van .NET Framework 3.0 op basis van XAML.
Moonlight
Silverlight is nauw verweven met Microsofts .NET platform. Goldfarb: "Met .NET bieden we een eenduidig programmeermodel met gemeenschappelijke tools als Visual Studio en Expression Studio en code die over verschillende categorieën heen gebruikt kan worden, ongeacht of het een desktopapplicatie, een webapplicatie of een RIA-applicatie is."
Ray Ozzie begrijpt dat Microsoft als speler in webapplicaties niet langer de bedrijfseigen gesloten boeman kan blijven. De in september verschenen versie 1.0 van Silverlight draait zowel op Apples Mac OS X als op Windows en in de meeste browsers, behalve vooralsnog Opera en Konqueror. Microsofts open source partner Novell werkt aan een Linux-versie onder de naam Moonlight.
In oktober lanceerde Microsoft online mashup-maker Popfly met bouwstenen voor Facebook, Flickr, Twitter en andere hippe web 2.0 sites. Popfly vereist Silverlight. "We hebben een team dat veel tijd steekt in nadenken hoe je niet-professionele ontwikkelaars applicaties kunt laten bouwen", zegt Goldfarb. "Er zijn veel aspirant contentmakers die aan hun MySpace bouwen of Facebook apps willen ontwikkelen, maar geen code schrijven. Popfly demonstreert ook de kracht van Silverlight en .NET."
Adobe
In RIA is Microsoft de uitdager van onbetwiste marktleider Adobe. Macromedia’s Flash vestigde sinds 1996 een monopolie in online animaties. Na de overname door Adobe veegde Flash in online video Windows Media van de kaart. Dat heeft Microsoft wakkergeschud. Video in Silverlight verslaat Flash op een aantal cruciale punten, waaronder schaalbaarheid en toepassing van videostandaard VC-1 die HD video mogelijk maakt.
Adobe lanceerde in oktober zijn eerste eigen mediaspeler. Adobe Media Player vereist AIR (Adobe Integrated Runtime), momenteel in bèta 3. Adobe Media Player draait direct op je desktop, maar trekt content van het internet binnen. Net als de spelers van Microsoft of Apple dus. De openbaring is dat iedereen nu dit soort applicaties kan ontwikkelen.
Flash was oorspronkelijk bedoeld voor vectoranimaties en is later verbreed naar media. Adobe voegde daar na overname van Macromedia het programmeermodel Flex aan toe. Adobe Flex is de opvolger van ontwikkeltool Macromedia Flash 8 en vorig jaar zomer tegelijk met de Flash 9 plugin gelanceerd. Flex definieert de interface van Flash-applicaties in opmaaktaal MXML. De XML-variant roept ActionScript aan. De Flex compiler verpakt de .mxml-bestanden en ActionScript-code in .swf-bestanden.
ActionScript was in eerdere Flash-versies ontstaan uit een verzameling acties in de syntax van de ECMA-scriptstandaard, maar uitgebreid tot een meer complete scripttaal in ActionScript 3.0. "We realiseerden ons dat JavaScript te traag en breekbaar was voor grote schaalbare applicaties", zegt David Wadhwani, hoofd productontwikkeling Adobe Flex. Adobe doneerde de broncode van de Actionscript Virtual Machine (AVM), de basis van Flash 9, aan de Mozilla Foundation voor het open source project Tamarin.
AVM vormt ook de basis van AIR, aangevuld met delen van Adobe Reader en WebKit, het open source project op basis van Linux K Desktop Environment (KDE) waar ook Apples browser Safari op is gebaseerd. De officiële release van AIR volgt begin 2008. "Flash 9 is al vijftien maanden uit en honderden miljoen keren geïnstalleerd, dus die virtuele machine is grondig getest en breder verspreid dan virtuele machines van Microsoft of Java of Sun."
Ontwerper-ontwikkelaarworkflow
Is Silverlight domweg Microsofts poging om Flash in te halen? "Onze focus ligt meer op een gemeenschappelijk product over elke mogelijke applicatiecategorie heen", zegt Brian Goldfarb. "We kunnen de ontwerper-ontwikkelaarworkflow erin integreren en mensen vaardigheden laten hergebruiken." Volgens Goldfarb aapt Adobe Microsoft Expression Blend na met Thermo, een RIA-tool die Adobe in oktober aankondigde op het congres MAX 2007 in Chicago.
De belofte van Thermo is dat ontwerpers Flex-applicaties zullen kunnen ontwikkelen zonder ooit met enge code te maken te krijgen. Thermo converteert .psd-bestanden uit Photoshop naar interface-elementen en genereert automatisch de bijbehorende MXML-code. Expression Blend doet in grote lijnen hetzelfde met XAML en WPF, maar Adobe heeft een belangrijk voordeel in de nauwe integratie met de meestgebruikte grafische ontwerpsoftware.
Het accent op grafisch ontwerp kan ook Adobes zwakte zijn. Gevraagd hoe Adobe gaat concurreren met de ontwikkelaarsgemeenschappen rond Java en .NET verwijst Wadhwani naar Adobes ‘enorme gemeenschap van 2,4 miljoen ontwerpers’. De grafische interface is belangrijk, maar niet alles. Wadhwani erkent het met tegenzin, maar tweehonderdduizend downloads van het Flex-raamwerk en de Ajax-gemeenschap vormen volgens hem een solide ontwikkelaarsbasis voor Flex.
Wadhani: "Microsoft gaat achter de ontwerpers aan omdat zij die nodig denken te hebben om hun ontwikkelaarsbasis te beschermen. Wij komen van de andere kant. Wij denken dat we met de ontwerpersbasis toegang tot de ontwikkelaarsbasis hebben." Als programmeermodel vervangt Flex in de eerste plaats html en Ajax en potentieel Java-applicaties. Parallel aan Java is Flex sinds april open source onder de Mozilla Public License om de gunst van ontwikkelaars te winnen.
JavaFX runtimes
Maar kan Adobe met .NET en Java concurreren voor saaie, missiekritische kantoorapplicaties? Wadhwani is beledigd dat de vraag nog wordt gesteld. Bij de introductie van AIR kon Adobe wijzen op een reeks imposante zakelijke klanten waaronder Boeing, CDW en Salesforce. Adobe infiltreert bedrijven met partners als SAP en BEA. "Mensen ontdekken dat de front end van Business Objects en de OLAP spreadsheet die ze gebruiken met Flex zijn gebouwd", zegt Wadhwani. "Dat ze tweehonderd Flex-applicaties hebben draaien zonder het te weten."
Java is een beproefd ontwikkelaarsplatform, maar lijkt verrast door de RIA-trend. Sun introduceerde afgelopen voorjaar JavaFX, een naam die lijkt afgeleid van WinFX, een oude codenaam van .NET 3.0. Nog steeds is vaag wat JavaFX nu precies is. Een productlijn? Een techniek? Allebei volgens Suns chief technical officer Bob Brewin. "We dachten dat we dezelfde naam voor beide konden gebruiken, maar het heeft wat verwarring veroorzaakt. We kunnen die beter uit elkaar houden."
Het eerste product JavaFX Mobile is gebaseerd op overgenomen code van SavaJe. JavaFX Script past de bestaande Swing component library toe op RIA. Verder lijkt JavaFX meer strategie dan realiteit. "De technologie is duidelijk nog in ontwikkeling", zegt Brewin. "Een aantal elementen is verschenen. De compiler is een open source project dat in het openbaar wordt ontwikkeld en we zullen een aantal demo’s en dergelijke uitbrengen. Het komende jaar zul je meer tastbare resultaten van dat ontwikkelingswerk zien."
De JavaFX-technieken zullen volgens Brewin die JavaFX runtimes allemaal gebruiken om RIA-applicaties te creëren. Krijgt JavaFX zijn eigen runtime? Of bedoelt Brewin toch de Java Runtime Environment (JRE)? "De runtime gebruikt de beste eigenschappen van het onderliggende platform", zegt Brewin. "Dat is de kracht van het JavaFX-verhaal, dat we twaalf jaar aan het onderliggende Java-platform hebben gebouwd waarop je die applicaties kunt bouwen." De JavaFX Runtime wordt volgens Brewin een speler bovenop de JRE.
.dll-hell
In december is Java SE 6 Update N verschenen, een afgeslankte versie van JRE om Java in de browser minder ellendig voor consumenten te maken. "Dat is inderdaad als antwoord op de problemen die je noemt", zegt Brewin. "Dat de download nu te groot is, de prestaties niet zo goed als zou kunnen. Dat de bestaande browserplugin, afhankelijk van de browser die je gebruikt en de versie van de applicatie, soms wat onstabiel is. Dat lossen we op in deze Update N en in het JavaFX-werk dat volgend jaar verschijnt."
Adobe laat in tegenstelling tot Java en .NET geen extensies op AIR toe. David Wadhwani zegt dat Adobe heeft geleerd van problemen rond Java en .NET. "We willen de rijkdom van die talen en mogelijkheden van die runtimes bieden, zonder de .dll-hel en incompatibiliteiten. Het is niet moeilijk voor ons om uitbreidingsopties aan AIR toe te voegen, maar dan gaan mensen applicaties schrijven met een enkele .dll voor Windows die allerlei problemen veroorzaakt. We beginnen met een meer ingeperkt model."
Het meest volwassen, brede en open aanbod voor desktopapplicaties met webfunctionaliteit komt van Microsoft. Silverlight versie 1.1 krijgt Core CLR ingebouwd, een afgeslankte versie van .NET Common Language Runtime. Silverlight-applicaties kunnen dan worden geschreven in elke .NET-taal, inclusief de populaire webscripttalen Ruby en Python. De broncode van Ruby’s .NET-implementatie IronRuby en Microsofts Dynamic Language Runtime zijn beschikbaar onder de Microsoft Permissive License, tot afschuw van de opensourcebeweging. Microsoft heeft daarmee een sterk verhaal om zieltjes in de LAMP-gemeenschap te winnen.