Rich Internet Solutions (presence / e-commerce sites)

Het verschil tussen Silverlight en Flash

Iemand vroeg mijn visie daar op. Ik kan hem gelijk met jullie delen:

Het eerste grote verschil is dat Silverlight eigenlijk nog in z'n kinderschoenen staat. Je ziet gewoon dat de tools (Expression Blend & Expression Design in combinatie met de silverlight extensions voor Visual studio) een eerste versie zijn. Hierbij zijn de basis elementen samen gebracht maar mis je de finesse van de doorontwikkelde tools. Nu is de Flash ontwikkelomgeving nooit echt een goede tool geweest, vooral als je wat meer ingewikkelde applicaties ging bouwen. Ik heb de Flash tool eigenlijk alleen gebruikt om de onderdelen van de UI samen te stellen, maakte het basis materiaal met Illustrator en programmeerde in een open-source tool.

Met de komst van Flex heeft Macromedia > adobe zich op het gebied begeven waar Microsoft eigenlijk zijn gelijke niet kent: de Integrated Development Environment. Dit doet Microsoft met Visual studio al sinds het begin en dat zie je ook. Debugging in Visual Studio van Javascript is al gelijk beter en performt beter dan Flash ooit heeft gedaan. Het beschrijven van de applicatie onderdelen met XML heeft Microsoft op een hoog niveau onder de knie en daar is Adobe bezig met een inhaalslag.

Als je kijkt naar hoe je grafisch werk produceert heeft Adobe echt een voorsprong. De combinatie Illustrator en Flash zijn echt onovertroffen in intuïtiefheid, integratie en verfijndheid. De combinatie Expression Design en Expression Blend komt er dan maar karig van af. Als je een ingewikkelde UI uitwerkt in deze tools dan loop je eigenlijk meteen tegen de beperkingen van de tools aan. Design kan niet meer dan één niveau layers aan en de helft van de functionaliteit in Blend is voor Silverlight nog niet geactiveerd. Het werkt, je kunt er redelijk efficiënt applicatie elementen mee maken, maar je stapt snel naar de tekst editor om het precies te doen zoals je in je hoofd hebt.

Eigenlijk is de vergelijking tussen de huidige silverlight 1.0 en Flash/Flex ~9 een beetje scheef. De huidige versie van Silverlight is te vergelijken met de Flash 6 omgeving van een paar jaar geleden. Net zoals Flash, die een sprong maakte van Flash 7 naar flash 8 door een het platform fundamenteel te herbouwen, maakt Microsoft met Silverlight een grote sprong met Silverlight 2.0. het platform van Silverlight hoeft niet opnieuw geschreven te worden maar de hoeveelheid toegevoegde functionaliteit is van de zelfde orde. Dit kwartaal komt er een beta uit van de Silverlight 2.0 plugin die het Silverlight platform op vele aspecten gelijk trekt aan Flash / Flex en op bepaalde vlakken zelfs voorbij stevent. Wat nog achter blijft bij Silverlight is wat Flash toch wel uniek maakt: procedural filters, toegang tot de Bitmap data van een scherm element en de video met alpha channel transparantie.

Op deze laatste elementen na zijn de platformen dan eigenlijk nagenoeg aan elkaar gelijk. De integratie met de rest van het .NET eco-systeem geeft Silverlight ten opzichte van Flash / Flex een voordeel. De bijna Apple-iaanse coolheid van Flash met de nadruk op design & designers moet Silverlight nog bereiken. Mijn gevoel zegt dat Silverlight een licht voordeel heeft met de manier waarop het customizen van de standaard controls mogelijk is. Bij Flash / Flex is dat eigenlijk altijd een probleem geweest. Het customizen van een framework control vroeg zoveel specifieke kennis van de implementatie van het framework dat je voor het snelle werk beter, en sneller, het control zelf kon bouwen. Mijn ervaring met WPF zegt dat dat in Silverlight eleganter zal worden opgelost.

De manier waarop het mogelijk is om dadelijk Silverlight controls te customizen met control templates is waarschijnlijk ook zo´n verschil dat belangrijk wordt. Het idee in silverlight is dat het control eigenlijk alleen maar functionaliteit is met een standaard visuele implementatie maar dat je alle onderdelen heel makkelijk kan wijzigen of zelfs vervangen. En de IDE is toch ook een belangrijk onderdeel van het geheel. Er is een veel grotere gemeenschap die makkelijker op Silverlight in kunnen springen omdat het een kleine stap is van bv. Winforms naar Silverlight.

Frame based versus Time based: Bij Flash heb je een synchronisatie van de frames binnen één timeline. Elke movie heeft een eigen timeline en volgens mij is er geen synchronisatie over movie timelines heen. In Silverlight werk je alleen met Tijd en keyframes. De verschillende 'layers' in een control hebben een synchronisatie door associatie in plaats van concrete frame synchronisatie zoals bij flash. Qua intuïtie ligt dat zo dicht bij elkaar dat ik nog geen situatie ben tegen gekomen waarin dat een concreet verschil maakt.

Ikzelf heb in principe al gekozen. In principe omdat ik nog steeds binnen Macaw beschikbaar ben voor flash trajecten vanwege mijn expertise op dat vlak. Een half jaar geleden heb ik Silverlight op gepakt en heb daar een aantal onderzoekjes naar gedaan. Vooral de Silverlight 2.0 preview versie heeft mij eigenlijk er voor doen kiezen om niet meer de Flash blogs te volgen en de silverlight blogs te gaan volgen :) De keuze is voor mij strategisch. Bij Macaw heb je zo'n 80/90 programmeurs die vloeiend Microsoft .NET spreken en dat heeft zo zijn voordelen. Wij werken bij Macaw uitsluitend met Microsoft technologie en daardoor is de integratie veel soepeler. Verder vind ik persoonlijk, omdat ik zelf ook een aardig woordje programmeer, de C# taal meer volwassen dan Actionscript. Ik denk dat ik meer Silverlight projecten kan doen binnen Macaw omdat Silverlight binnen Macaw beter geaccepteerd wordt en het nu als één van de speerpunten van ons Solution Center is gekozen. De Flash projecten kwamen elke twee tot twee en een half jaar langs en Silverlight komt nu al veel vaker langs.

Published Wednesday, January 23, 2008 10:57 AM by Michaud

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

No Comments

What do you think?

(required) 
(optional)
(required) 

Enter Code Here: Required

This Blog

Post Calendar

<January 2008>
SuMoTuWeThFrSa
303112345
6789101112
13141516171819
20212223242526
272829303112
3456789

Syndication

Powered by Community Server, by Telligent Systems