Blogs und Journalisten schreiben den Tod von Silverlight herbei. Mangels aktuellen Aussagen von Microsoft, stellt sich die berechtige Frage nach der Zukunft von Technologien. Insbesonders, wenn diese integraler Bestandteil von aktuellen Software Projekten ist. Dieser Artikel geht also der simplen Frage nach, Entscheidungsgrundlagen zu finden. [Update] Silverlight 5 ist seit 9.Dezember fertig.
Silverlight 5 ist fertig, verfügbar und auch für die IOS Plattform als Plugin erhältlich. Lediglich Besitzern von Windows 2000 (Hallo Franz) bieten die Redmonder aktuell keinen Support mehr.[/Update]
Silverlight ist Tod. Ist es das, und wie viel Rolle spielt das eigentlich? Aufgrund der Abkündigung von Flash für mobile Plattformen (http://mashable.com/2011/11/11/flash-mobile-dead-adobe/ ) wurde die Diskussion neu angeheizt. Dabei kann man aus den News rauslesen, das Adobe in Zukunft auf HTML 5 und das Tooling dazu setzen wird.
Getrieben wird das Thema von der rasanten Verbreitung von Smartphones. Die Fragmentierung des Marktes in mindestens fünf relevanten Plattformen, lässt die Wirtschaftlichkeit von Anwendungen dramatisch sinken. Neben der Geiselhaft der APP Stores, ist die Multiplattform Strategie der Grund pro HTML 5. Spezifische Funktionen der Geräte, wie die genaue Auflösung im horizontalen oder Vertikalen Betrieb, werden weder von Flash noch Silverlight adressiert.
Die Community der Entwickler sieht das aus vielerlei Gründen ganz anders. So meint Frank Puscher im Dr. Web Magazin, das das, was die HTML5-Demos bislang zeigen, einem Flasher nur ein müdes Lächeln abringen (http://www.drweb.de/magazin/denkanstos-html5-gegen-mit-oder-fur-flash/)
Die grundsätzliche Diskussion ist aktuell allgegenwärtig, egal ob Microsoft Eco System oder wie hier PHP. Als Aufhänger wird fast immer die Zukunft rund um Tablets und Smartphones genommen. In Summe führt das dazu, das aktuell für die spezifische Plattform eine APP geschrieben wird und eben nicht ein ebenso mögliches Webinterface.
Die Marktdominanz von Apple ist zwar vorhanden, aber in relativer und noch schlimmer absoluter Stückzahl bei weitem nicht so ausgeprägt wie man anhand der Medien Präsenz glauben möchte.
<
http://gs.statcounter.com/#mobile_os-DE-weekly-201132-201141-bar
Weltweit ist Nokias Symbian OS mit 32% Marktführer und Android und iOS mit etwa 20% gleichauf. Das ist deshalb von eminenter Relevanz, da in der Regel Lösungen für eine bestimmte Plattform Entwickelt werden.
Code wird aber in einer Programmiersprache geschrieben. Software Entwickler neigen dazu ihre bestehende Kenntnisse und Beispiele längst möglich zu nutzen. Zusätzlich ist eine erhebliche Codebasis für bestehende Software vorhanden, die man weder umstellen möchte noch kann. Folglich sind Programmiersprachen wie VB 6 und FoxPro , die von Microsoft definitiv abgekündigt worden sind, noch immer reichlich präsent. Auch C++ erlebt eher wieder eine Renaissance. Das uralte, proprietäre und nicht standardisierte COM ist nach wie vor Core Bestandteil von Windows.
Programmiersprachen und deren Bibliotheken leben faktisch wesentlich länger als man glauben sollte. Änderungen in der Nutzung erfolgen viel langsamer als Technologie wechselt. Im Folgenden die Top Programmiersprachen und deren Tendenzen. (http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html)
Für die weitere Betrachtung relevant- Java Script belegt Platz 9 mit steigender Tendenz, aber ähnlich wie SQL das nur zwei Plätze dahinter liegt. Java, C++ und C# als typische Desktop Anwendungssprachen, belegen zusammen mindestens das zehnfache, wie JavaScript als HTML und Browser Sprache.
Da man Statistiken grundsätzlich misstrauen sollte, die Verifizierung durch Gulp (http://www.gulp.de/kb/tools/gulpometer.html). Hier sehen Sie Projektausschreibungen und die Programmiersprache dazu.
Windows basierte Desktops sind beinahe in Milliarden Stückzahl vorhanden. Davon ist noch immer ein großer Teil mit Windows XP ausgerüstet. Die Parität zwischen XP und Windows 7 ist im November 2011 erreicht worden, ganze 10 Jahre nach Lebensende von Windows XP.
Auf der anderen Seite erleben Smartphones eine dramatische Verbreitung. Die Erfolgsgeschichte nehme ich als gesetzt an. Am Ende dieser Entwicklung wird es nach einhelliger Meinung mehr Smartphones als Desktop PC geben.
Tablets
Aus meiner Sicht, ganz und gar nicht gesetzt, ist der dauerhafte Erfolg des Formfaktors „Tablet“ und damit dem Branchenprimus iPad. Namhafte Printmedien, sehen allerdings in dem digitalen Reader die Möglichkeit dem Verfall ihres Mediums Zeitung zu stoppen
„Die neue App ist da: Ab sofort erscheint die "Süddeutsche Zeitung" vollständig digitalisiert für das iPad. Tablet-Nutzer können die Zeitung von morgen bereits am Vortag von 19 Uhr an lesen und multimedial erfahren. Interaktive Grafiken erklären auf Knopfdruck komplexe Zusammenhänge, die Texte sind um Bildergalerien und Videos erweitert. Und wenn die Kanzlerin mal wieder bis spät in die Nacht hinein tagt, erfahren Sie das auch - denn die digitale SZ wird zwischen 23 und 24 Uhr aktualisiert.“
Ganz ähnlich agieren andere führende Tageszeitungen und promoten teils auf den Titelseiten die iPad Ausgabe. Der so erzeugte Werbewert ist erstens für Apple völlig kostenfrei und zweitens eigentlich unbezahlbar.
Benutzer loben gerne die Akkulaufzeit, schneller Start, die Einfachheit und das geringe Gewicht. Aus meiner persönlichen Erfahrung mit iPad und auch der Windows 8 Variante, vergesse ich sehr häufig das Tablet einzupacken. Vieles wie Mail oder schneller Zugriff auf kleine Informationen wie Bahnfahrplan, geht mit dem Telefon ganz leidlich und ähnlich einfach wie mit iPad. Für anderes ist Tastatur und Maus für mich unverzichtbar. Darüber hinaus verwende ich seit Windows XP Tablet PCs und habe mich ganz erheblich an Stift und seit einiger Zeit auch an Touch gewöhnt. Da Smartphones immer leistungsfähiger und die Notebooks immer leichter werden, könnte es eng werden in der Mitte. Der Mitte der iPads.
Für reine Reader Aufgaben ist z.B. der Kindle von Amazon wesentlich besser geeignet und günstiger.
Wenn man nun über Plattformen nachdenkt, ist man auf der einen Seite mit Windows gut beraten und für den mobilen Part mit der hohen Reichweite von Smartphones zukunftsfähig.
HTML 5
Damit stellt sich die nächste Frage. Wie werden User Interface in Zukunft entworfen? Der Wunsch tendiert in Richtung, einmal für alle und alles. Hier kommt HTML 5 ins Spiel. Als Standard sollten sich doch alle daran halten. Doch leider ist HTML 5 selbst nach Jahren noch immer kein Standard und erfährt noch immer recht weitreichenden Änderungen auch in jüngster Zeit http://www.heise.de/newsticker/meldung/HTML-5-schon-vor-Veroeffentlichung-Zeit-los-1369751.html
Standards an sich bedeuten in der Regel den kleinsten gemeinsamen Nenner aller Beteiligten. Sie sind stabil aber wenig innovativ. Darüber hinaus kann man sich nie darauf verlassen, das ein Standard von allen auch gleich verstanden, interpretiert und angewandt wird. Standards beschreiben naturgemäß keine Implementierung. Exemplarisch sei hier das VIDEO Element angeführt. Das Codec ist nicht Bestandteil des Standards. Wer sicherstellen möchte, das seine Videos auf allen HTML 5 Browsern optimal lauffähig sind, muss aktuell diese in verschiedenen Codec’s vorrätig halten.
Microsoft hat für Windows 8 eine neue Shell Namens METRO angekündigt und pusht HTML 5 u.a. auch als deklarative UI Sprache für Windows APPs. Was die Microsoft Developer davon halten, kann man aus den Foreneinträge leicht ableiten. Entwickler bevorzugen offensichtlich deutlich XAML gegenüber HTML.
http://social.msdn.microsoft.com/Forums/en-us/category/windowsapps
Wenn man Microsoft Developer nach den Gründen pro XAML frägt, erhält man Aussagen wie „deutlich klarer und einfacher“. Darüber hinaus ist HTML auf Windows 8 weit vom ohnehin noch nicht verabschiedenden Standard entfernt. Ein für Windows 8 entworfenes Programm wird also auch nur dort funktionieren. Bleibt nur die Frage, wird WinRT, ähnlich eines Silverlight Plugins, heimlich auch für IOS entwickelt?
Es könnte also HTML 5 die Lösung für den Browser sein. Dazu ist es wichtig die Verbreitung der Browser zu betrachten. Nur moderne Browser unterstützen HTML 5 halbwegs http://html5test.com/. Der Markt ist hier sehr unterschiedlich. Browser wie Firefox und Chrome haben sehr kurze Lebenszyklen. Firefox 7 auf 8 hat nur rund einen Monat gedauert. Chrome ist gar schon bei Version 15. Viele normale Benutzer sind allerdings noch bei Internet Explorer 6, dem Browser mit dem schlechtesten Ruf.
Chrome User folgen dieser Philosophie und starten häufiger eine Aktualisierung. Allerdings hat auch Google durchaus Benutzer die bei einer Version hängen bleiben.
Chrome
Internet Explorer
http://www.browser-statistik.de/statistiken/versionen/
Am Ende wird es also immer einen Anteil Benutzer geben, die eine HTML 5 Website nicht komplett nutzen können. Übrigens eine Situation die auch heute für Silverlight und sogar Flash gilt.
Plugin Konzept
Browser Plugins werden allgemein totgeschrieben. Warum Silverlight als Plugin, wenn HTML 5 nativ dies auch machen kann? Eventuell sogar schneller und mit weniger Speicherverbrauch?
Dabei wird gerne vergessen, das Plugin ein essentielles Software Entwurfsmuster ist. OOP Entwickler übertreffen sich mit der Anwendung desselben in IOC oder Dependency Injection. Auch das Managed Extensibility Framework, das auch in Visual Studio zum Einsatz kommt, ist ein elegantes Konzept Software erweiterbar und damit wartbar zu gestalten. Auf dieses Konzept zu verzichten, heißt auf neue Funktionen verzichten und den User nicht das zu bieten, was technisch möglich wäre.
Mit HTML 5 soll dies plötzlich nicht mehr gelten?
Adobe nennt jedenfalls als wesentliche Gründe für die Einstellung von Flash auf mobile, die Fragmentierung des Marktes. Bei vielen verschiedenen Plattformen, Formfaktoren und auch Funktionen kann es am Ende nur auf den kleinesten gemeinsamen Nenner hinauslaufen, der mit HTML 5 bedient werden kann. Programmiert wird dann eben mit Java Script und nur damit.
Solcherlei HTML Apps beruhen heute sehr stark auf Online Verbindungen. Steht kein Internet zur Verfügung, dann geht Google Maps aber nicht. Auch die Bahnauskunft bleibt stumm.
Das mag im Privat Bereich, also dem Konsumenten, akzeptabel sein. Für den Business Kunden kann es Umsatzverlust oder Schaden bedeuten, wenn die Anwendung nur in neun von zehn Fällen funktioniert. Spätestens nach dem ersten relevanten Vorfall werden beim Management die Alarmglocken schrillen und der Schwenk auf eine 99,999% Plattform vollzogen.
Meine eigene Erfahrung mit Windows Phone 7,5 in dieser Hinsicht war die Musikerkennung. Ein super Feature wenn im Radio ein Hit läuft. Hat beim rumspielen ganz toll funktioniert nur das eine Mal, ja das eine Mal nicht.
Einige meiner Gesprächspartner, darunter namhafte Größen der .net Szene, schwenken aktuell auf Android. Der Logik folgend, dorthin zu gehen, wo der Markt ist. Auch hier höre ich häufig, das man mit HTML 5 ja auch wieder Windows 8 und den Browser und damit letztendlich mehrere Plattformen adressieren kann.
Dieses Argument kommt bekannt vor. Bereits zu C++ Zeiten (später Java) wurde ins Feld geführt, damit für mehrere Betriebssysteme entwickeln zu können. Das stimmt auch im Ansatz, scheitert aber bisher immer im Detail. Librarys, Performance oder Formfaktoren sind nicht universell und optimal lösbar.
XAML
Microsoft hat zu Windows Vista Zeiten den Schwenk von Pixel orientieren UI’s mit WPF zu vektororientiert vollzogen. Der Logik der unterschiedlichen Auflösungen folgend ist man aber im Wesentlichen beim immer ähnlichen Querformat geblieben. Über das deutlich schlankere Framework Silverlight hat dieses Konzept bis heute letztendlich sogar den Weg auf die iOS Plattform gefunden.
Wenn man den Gerüchten glauben darf, wurde unter Ray Ozzie eine komplett neue Internet Strategie entworfen. Weg von .NET hin zu Standards, zu Open Source und der Cloud. Nach dem nicht ganz reibungsfreien Weggang des Chef Visionärs im Oktober 2010 tut sich hier ein Vakuum auf, das auch nicht durch einen Nachfolger gefüllt wurde. Seine Entscheidungen pro HTML 5 wirken aber nach.
Erst im Juni 2011, gab es einem neuerlichen Schwenk zurück zu XAML. Die Abteilung für Windows (WinDiv), die sich bisher konsequent der .NET Entwicklung verschlossen hat, bekommt XAML zugeschlagen.
Am 24.Juni kursiert folgendes internes Mail
We’re pleased to announce the transition of the XAML
platform team from the Developer Division to the Windows team. While the
team has been working side-by-side with the Windows team for the entire project,
this step brings them into our team formally.
http://www.riagenic.com/archives/683
Dies vermutlich auch aufgrund massiver Proteste diverser Großkunden, die um ihre XAML Investitionen fürchten.
Microsoft spricht heute nicht mehr von WPF oder Silverlight sondern von XAML. Windows 8 METRO APPS können mit Silverlight oder XAML Wissen relativ leicht entwickelt werden. Man muss aber wissen, die Runtime und auch die UI Sprache sind unterschiedlich. Auch hier kein Write Once run everywhere.
Silverlight Everywhere
Hinzu kommt das Windows Phone 7 APPs mit Silverlight (einer Version 3+) entwickelt wird. Auch bei SharePoint oder Lightswitch ist Silverlight essentiell. Die neue Shell (METRO) für die Xbox basiert seit Anfang Dezember auf einer Silverlight Version (Projekt Lakeview). Der neue Lync Client verwendet, nicht grundlos, was? Silverlight.
Silverlight 5 ist ebenso fertig und verfügbar. Die wesentlichste Ergänzung sind 3D, XAML Debugging und implizite Templates. Eigentlich ist Silverlight damit auch fertig. Wenige Tage zuvor hat Amazon die Umstellung seines Videodienstes lovefilm auf Silverlight bekannt gegeben. Tod?
Microsoft garantiert 10 Jahre kostenfreien Support für Ihre Produkte. Man kann also damit rechnen das auch die Browser 2021 noch ein funktionierendes Silverlight Plugin bekommen.
Ganz generell ist die Erfolgsgeschichte von Silverlight ohnehin weniger im Browser als im Bereich LOB zu suchen. Viele exzellente Geschäfts Anwendungen laufen in Firmen Intranets, meist sogar ohne Browser. Dafür spricht das kleine Framework, einfaches Rollout und die schönen Grafik.
Wirkliche Begeisterung hört man von Embeded Entwicklern, wenn sie die Möglichkeiten von C++ und Silverlight (ein 3er Derivat) auf Windows Embeded 7 sehen. Da die Redmonder diese Technologie sehr gut bei PKW Herstellern (z.b. Fiat Blue&Me, Ford Sync, BMW) platziert haben, ist es denkbar, dass die Anzeige am Autobildschirm in kürze mit Silverlight erfolgt.
Darum zurück zur Kernfrage, was soll man heute tun?
Von Microsoft hört man dazu keine Empfehlung. Als Markführer müssen sie ihre Position verteidigen und bleiben deshalb etwas zu oft in nebulösen Aussagen hängen. Meine Erfahrung über die Jahre ist, das Microsoft sehr wohl tut, was seine Kunden wollen. Auch wenn zuerst auf die Optimierung der Gewinne agiert wird, erkennt Microsoft mal mehr oder weniger schnell wenn Kunden abspringen zu drohen. Insofern wage ich zu behaupten, das es an Ihnen liegt ob Microsoft eine Version 6 von Silverlight veröffentlicht.
Faktisch ist es aber nicht wesentlich. Relevant ist, dass man mit Silverlight heute Anwendungen schreiben kann, die der Kinderstube entwachsen sind. Auch das Tooling kann man als gut bis sehr gut bezeichnen. Wenn die Target Plattform Windows heißt, wird eine Silverlight oder auch WPF Anwendung die heute geschrieben wird, auch noch in 10 Jahren laufen.
Wenn man näher an das Betriebssystem will, Stichwort pinvoke oder ganz spezielle Performance Anforderungen hat, dann ist beim HTML Standard ohnehin ganz früh die Luft raus.
Aber tatsächlich gibt es nach wie vor keine aktuelle belastbare und offizielle Aussage zur Zukunft von Silverlight. Auch bei direkten Kontakt mit den Produktteams gibt es nicht einmal unter dem Siegel der Verschwiegenheit Antworten zur Frage nach der Zukunft von Silverlight.
Das letzte was offiziell dazu erklärt wurde, stammt von Bob Muglia Ende 2010 als Reaktion auf vorangegangene Ereignisse.
“Silverlight is very important and strategic to Microsoft. We’re working hard on the next release of Silverlight, and it will continue to be cross-browser and cross-platform, and run on Windows and Mac.Silverlight is a core application development platform for Windows, and it’s the development platform for Windows Phone.”
http://blogs.msdn.com/b/silverlight/archive/2010/11/01/pdc-and-silverlight.aspx
Bob Muglia verließ rund zwei Monate danach Microsoft.
Gefühlt würde ich sagen, Microsoft hält sich bewusst alle Optionen offen. Silverlight eine Erfolgs Geschichte. Andere Projekte aus Redmond der letzten Jahre kommen da bei weitem nicht hin.
Aber Silverlight ist auch nicht die Silberkugel. Für einige Konzepte aus METRO und WinRT gibt es keine Entsprechung in Silverlight. Die Strom und Ressourcen Sparkonzepte von METRO sind bestechend und nicht mit Silverlight abbildbar. Auch das Problem des umschalten zwischen Hochformat und Querformat ist konzeptionell nur mit Windows 8 METRO gelöst.
Der Ein und Umstieg für WPF und XAML Entwickler ist möglich, aber nicht so einfach wie man trotz XAML und .NET Expertise glauben würde. Man darf nicht vergessen, das man gegen und mit gänzlich anderen Librarys programmiert.
Ich freue mich über jedes Feedback und Diskussion und werde den Artikel mit diesem Input kontinuierlich updaten.