Silverlight vs. Flash - inne cele, inne możliwości

Czy i w jakim stopniu Silverlight wzoruje się na Flashu? W czym tkwi największa siła, a w czym słabość obu technologii i przewaga jednej nad drugą?

Obie technologie bazują na podobnym założeniu - integrują się z przeglądarkami poprzez specjalny plugin. Flash przeznaczony jest jednak do nieco innych zastosowań. Silverlight adresuje nowoczesne scenariusze RIA, wymagające bogatych kontrolek, zaawansowanego wsparcia dla obsługi danych, rozwiązań architektonicznych pozwalających oprzeć o tę technologię bogate aplikacje biznesowe. Flash w swoich korzeniach ma przede wszystkim wsparcie dla animacji bazujących na klatkach, do czego Silverlight nie był projektowany.

Największą przewagą technologii Flash nad Silverlight jest niewątpliwie w dalszym ciągu popularność plug-inu. Mówiąc o przewagach technologii Silverlight, należy wymienić przede wszystkim zdecydowanie dojrzalszy język programowania (w ActionScript 3 wciąż brakuje bardziej wyszukanych elementów obiektowych czy silnego typowania). Nie ma kłopotu z oprogramowaniem wielu wątków (co dramatycznie zwiększa wydajność aplikacji), czego Flash nie wspiera. Programiści bardzo doceniają znacznie lepsze wsparcie narzędziowe ze strony środowiska Visual Studio oraz możliwość wykorzystywania tego samego API do pisania aplikacji internetowych jak i okienkowych. Nie trzeba się wiele uczyć, aby przenieść umiejętności ze świata aplikacji "desktopowych" do świata Silverlight.

Z drugiej strony, z racji dłuższej obecności na rynku wciąż narzędzia Adobe do tworzenia grafiki wektorowej są najpopularniejsze na rynku. Dlatego Microsoft w swojej rodzinie narzędzi Expression oficjalnie dodał wsparcie dla formatów zapisu stosowanych przez te narzędzia. Istnieje na przykład możliwość importowania grafiki stworzonej w narzędziach Adobe Photoshop czy Ilustrator bezpośrednio do Microsoft Expression Blend przy pomocy wbudowanej funkcjonalności. Dostępne są także konwertery tłumaczące kod opisujący wygląd aplikacji Flash (SWF) na kod Silverlight (XAML). Bardzo dużo nacisku kładzie się na kwestie integracji pomiędzy tymi dwoma technologiami i umożliwienie specjalistom wykorzystania dotychczasowych umiejętności do projektowania aplikacji Silverlight.

Co jakiś czas pojawiają się w mediach doniesienia o lukach w zabezpieczeniach Flasha. Jak Silverlight radzi sobie w kwestiach bezpieczeństwa? Jakie aspekty technologii stwarzają ryzyko wykorzystania przez cyber-przestępcę i co Microsoft robi, by temu ryzyku przeciwdziałać?

Przede wszystkim Silverlight do komunikacji wykorzystuje mechanizmy przeglądarki internetowej, nie implementuje ich na własny sposób. Jeśli korzystamy z nowoczesnych, zaktualizowanych przeglądarek nie powinniśmy się obawiać więcej zagrożeń niż od klasycznych stron HTML. Aplikacje poddane są dokładnie takim samym ograniczeniom i izolacji, jak w przypadku HTML i JavaScript. Nie ma żadnej możliwości "wyjścia" poza tę wyizolowaną przestrzeń bez zgody użytkownika. Niektóre aspekty platformy wykorzystują najnowocześniejsze elementy HTML 5 (takie jak tzw. DOM Storage do zapisu danych tymczasowych). Na pewno w obecnym świecie nie możemy z całą pewnością powiedzieć, że jesteśmy w pełni bezpieczni - jednak bazując na wieloletnim kodzie przeglądarek internetowych Silverlight nie stwarza sam z siebie wielu dodatkowych zagrożeń.

"Wsparcie dla grafiki 3D, akceleracja sprzętowa GPU, obsługa formatu H.264..." - czy można podać konkretne przykłady aplikacji wykorzystujących nowe funkcje Silverlight? W jaki sposób z zalet technologii może efektywnie skorzystać użytkownik końcowy, nie-programista?

Na stronie Silverlight.net w sekcji "Showcase" znajduje się obecnie ponad 650 aplikacji Silvelright z 62 krajów (m.in. z Polski). W Polsce trwają prace nad kilkoma ciekawymi projektami, które rozpoczęły się w wakacje (tuż po premierze Silverlight 3).

Jaką rolę w popularyzacji Silverlight odgrywa jego funkcjonalność, a jaką - współpraca dostawców treści, decydujących się na dystrybucję "contentu" za pomocą tej platformy?

Nie należy kojarzyć Silverlight wyłącznie z odtwarzaczem do mediów czy tworzeniem animacji. To w szczególności bogata platforma do tworzenia zaawansowanych, bogatych aplikacji internetowych. Oczywiście współpraca dostawców treści jest szalenie istotna w przypadku popularyzacji na rynku konsumenckim, ale na rynku biznesowym funkcjonalności Silverlight coraz częściej decydują o wyborze tej platformy.