IMHO – Gefährliches Halbwissen

11. Dezember 2013

Google hat seine JavaScript Bechmarking Suite Octane auf Version 2.0 gehoben. Dabei hat Google zwei neue Tests eingebaut. Zum einen die zlib Bibliothek, die über asm.js umgesetzt wurde. Und zum Zweiten wurde TypeScript ins Boot geholt.

Laut Google wurde es dazu geholt, “To simulate complex data structure- and memory-intensive applications, we added a test derived from Microsoft’s TypeScript compiler. The result measures how fast TypeScript compiles itself.”

Mir ist noch nicht ganz klar was Google a) mit dieser Aussage und b) mit dem hinzufügen von TypeScript bezwecken wollte. Mir ist bewusst, dass Google und Microsoft nicht die größten Buddys sind, daher vermute ich eine Art „Bloßstellung“ seitens Google Richtung Microsoft.

Der Blogeintrag von Google zu Octane 2.0 wurde auch von hiesiger Presse entdeckt und prompt in eine kleine News gepackt. Scheinbar wurden die Nachforschungen bezüglich TypeScript nur halbherzig gemacht oder dass Ergebniss dieser Nachforschungen nicht richtig verstanden. In einem Artikel heißt es “TypeScript ist eine von Microsoft entwickelte Programmiersprache, die live im Browser nach JavaScript kompiliert.”

Es kann gut möglich sein, dass es beim umwandeln von TypeScript zu JavaScript nicht ganz so schnell von statten geht. Leider spielt dieser Fakt KEINE Rolle für die Laufzeitgeschwindigkeit des mit TypeScript erstellten Programms. Was stimmt ist, dass TypeScript Code zu JavaScript Code kompiliert. Was NICHT stimmt ist, dass TypeScript dies während der Laufzeit tut!

Daher versteh ich nicht, wieso sich Google entschieden hat, TypeScript in eine Testsuite einzubeziehen, die eigentlich dafür gedacht ist Umgebungen/Frameworks zu testen, die dafür gedacht sind während der Ausführung schnell zu sein (“.. Octane‘s goal is to measure the performance of JavaScript code found in large, real-world web applications, running on modern mobile and desktop browsers…” – link). Zum anderen finde ich es schade, dass scheinbar bei der Recherche zu TypeScript, der Verwendungszeck von TypeScript offensichtlich nicht verstanden wurde.

TypeScript wurde von Microsoft entwickelt, um zur Entwicklungszeit eine typsichere Variante von JavaScript zu haben. Zur Entwicklungszeit wird dann, bei jedem Speichern der TypeScript-Quelldatei, sofort in das äquivalente JavaScript umgewandelt. Zumindest ist das in Visual Studio mit den richtigen Plugins der Fall. Ansonsten muss dieser Schritt manuell getan werden. Aber auch hier geschieht dieser Schritt VOR der eigentlichen Ausführung des Programms im Browser. Durch die Typsicherheit und weiteren Features der Sprache, hat man dadurch die Möglichkeit in großen Projekten a) den Überblick zu behalten und b) seine Software auch nach ein paar Monaten noch halbwegs wartbar zu haben.

Aber gut, TypeScript ist nun Teil dieser Testsuite. Offensichtlich um zu zeigen, dass TypeScript einen langsamen Compiler hat. Das ist zunächst mal irgendwie unschön und verfehlt auch völlig den Einsatzgebiet von TypeScript, aber gut … Kann man wohl jetzt nicht mehr ändern.

Wie in letzter Zeit üblich, wird auf alles was aus Richtung Microsoft kommt ziemlich stark rumgehackt und wenn dann auch noch ein Konkurrent kein gutes Wort über ein Produkt verliert, muss das ja stimmen und stumpf wieder gegeben werden.

Das alles ist schade, weil TypeScript von der Sache her eine super Idee ist und für die Entwicklung von großen Projekten mittels JavaScript eine echte Erleichterung darstellen kann.

Fazit

Auch wenn TypeScript in mancher Hinsicht nicht das Gelbe vom Ei ist und der erzeugte JavaScript Code nicht in jeder Beziehung der Beste ist, ist es dennoch eine Erleichterung in großen Projekten. Ich hoffe, ich konnte sie mit diesem kleinen Beitrag dazu bewegen, Dinge zu Hinterfragen und nicht gleich alles zu glauben auch wenn es scheinbar aus einer validen Quelle kommt.

IMHO: In My Humble Opinion