Windows 8, HTML5 und die Folgen für .NET?

Seite 4: JavaScript, C# und .NET

Inhaltsverzeichnis

Als logische Konsequenz stellt sich dann die Frage, ob man als Entwickler mit einer nicht objektorientierten Sprache nicht besser bedient ist, was den langen Bogen zu JavaScript schließlich wieder schließt. Denn JavaScript ist im Gegensatz zu C# keine primär objektorientierte Sprache. Stattdessen stehen bei ihr verschiedene Paradigmen gleichberechtigt nebeneinander, unter anderem auch die funktionale Programmierung.

Sicherlich wird JavaScript auf absehbare Zeit dennoch nicht dazu führen, dass C# an Popularität einbüßt. JavaScript wird jedoch eine zunehmend wichtiger werdende Ergänzung zu C# werden. Mike Loukides, Redakteur bei O'Reilly, hat das in seinem Blog-Eintrag "Why a JavaScript hater thinks everyone needs to learn JavaScript in the next year" auf den Punkt gebracht: Einer seiner Kernerkenntnisse ist, dass JavaScript keine Sprache zweiter Klasse mehr ist und der Hype um HTML5 im Wesentlichen ein Hype um JavaScript ist:

"Web servers, rich web client libraries, HTML5, databases, even JavaScript-based languages: I see JavaScript everywhere. If you have avoided JavaScript, this is the year to learn it. There's no excuse – and if you don't, you risk being left behind."

Nimmt man nun all die genannten Faktoren zusammen, ergibt sich ein relativ überschauberes Bild:

  • HTML5 und JavaScript werden mittel- bis langfristig XAML und C# als Sprache für die UI-Logik ablösen. UI-Techiken wie Windows Forms, WPF und Silverlight werden im Hinblick auf plattform- und geräteunabhängige Entwicklung zu Bürgern zweiter Klasse.
  • .NET und C# werden die Grundlage für ein serviceorientiertes und damit statusloses Backend bilden, das mit HTTP, REST und XML oder JSON auf Basis von AJAX und WebSockets angebunden wird.
  • IIS Express, SQL Server CE und Azure bilden die Grundlage für das Hosting dieses Backends und stellen zugleich sicher, eine Desktop- zu einer Web- oder einer mobilen Anwendung zu migrieren.
  • Parallelisierung von Code ist das wesentliche Werkzeug, um die zukünftige Skalierbarkeit einer Anwendung zu gewährleisten. C# 5.0 wird vermutlich die Async CTP integrieren und hierfür neue Werkzeuge und Schlüsselwörter zur Verfügung stellen.
  • JavaScript wird als funktionale Sprache eine wichtige Ergänzung zu C# werden, speziell auch im Bereich der Parallelisierung, da die objektorientierte Programmierung hierbei an ihre Grenzen stößt.

Verbleibt zuletzt nur noch die Frage, in welcher Form Microsoft einige weitere Entwicklungen in dem Rahmen zu unterstützen gedenkt. Besonders interessant wäre hierbei, in welcher Form Microsoft auf Basis von .NET Unterstützung für JavaScript bereitstellen wird, insbesondere auch auf Serverseite: Die in .NET 1.0 und 1.1 enthaltene Sprache JScript.NET ist de facto veraltet und wird seit Jahren nicht mehr gepflegt. Derzeit ist man als Entwickler daher auf Alternativen wie das als Open Source erhältliche IronJS angewiesen.

Außerdem stellt sich die Frage, in welcher Form Unterstützung für NoSQL-Datenbanken zu erwarten ist. Hier hat Microsoft derzeit nämlich überhaupt nichts zu bieten, sodass man auch auf Alternativen wie MongoDB zurückgreifen muss.

Die wichtigste Aussage ist jedoch die oben erwähnte von Loukides.

Golo Roden
ist freiberuflicher Wissensvermittler und Technologieberater für .NET, Codequalität und agile Methoden.
(ane)