Google Dart – Die neue Sprache des Web?

Google hat mit Dart eine neue Scriptsprache für das Web vorgestellt und damit bereits für einige Furore gesorgt. Vielerorts betrachten Webentwickler die Sprache, die wenn es nach Google geht Javascript ablösen wird, bereits kritisch. Das Potenzial von Dart ist groß, da wie jeder erkannt haben müsste die Möglichkeiten von Javascript so langsam ausgeschöpft sind. Mit der Einführung von HTML 5 wird der Handlungsbedarf an der angestaubten Scriptsprache weiter massiv gesteigert. Google hat nun den radikalen weg eingeschlagen und sieht die Zukunft in einem Bruch mit Javascript und der Einführung einer neuen Sprache mit „moderneren“ Paradigmen wie etwa Objektorientierung und das statische Typisieren von Daten.

Hello World in Dart
main() {
var name = 'World';
print('Hello, ${name}!');
}

Eigenschaften von Google Dart

Diese beiden Eigenschaften bringen große Vorteile bei der Entwicklung von größeren Softwareprojekten mit sich und sind in den meisten heutzutage gebräuchlichen Programmiersprachen wie Java und C# zu finden. Dart soll sowohl für Clientseitige als auch serverseitige Programmeirung eingesetzt werden und somit erstmals eine praktikable Lösung für eine homogene Sprachumgebung in der Webentwicklung schaffen. Google sieht in der Unterstützung großer Softwareprojekte durch bessre Strukturierung eines der Kernziele von Dart. Man will weiterhin die Performance von Webskripten verbessern. Hierbei liegt das Augenmerk darauf das Dart auf jeder Plattform möglichst performant läuft. Insbesondere werden von Google Smartphones und Tablett PCs genannt. Dart wird „abwärtskompaktibel“ zu Javascript sein. Dies wird dadurch realisiert das Dart entweder in der so genannten „DartVM“ läuft oder durch einen Compiler in Javascript übersetzt wird. Die Abwärtskompaktibilität als auch der Fakt das Dart als open source entwickelt wird, sind wichtige Punkte die den Weg zum Erfolg der Sprache ebnen.

Vererbung in Dart
interface Shape {
num perimeter();
}
class Rectangle implements Shape {
final num height, width;
Rectangle(num this.height, num this.width); // Compact constructor syntax.
num perimeter() => 2*height + 2*width; // Short function syntax.
}
class Square extends Rectangle {
Square(num size) : super(size, size);
}

Dart fühlt sich beim ersten Blick gleich gewohnt an, ist die Syntax doch an Javascript bzw. C angelehnt. Das Vererbungskonzept, das von Smalltalk inspiriert wurde, ist vielen bereits aus Java bekannt. In Dart kann wie auch in Java eine Klasse lediglich von nur einer Elternklasse erben, jedoch beliebig viele Interfaces implementieren. Dart wird aufgrund der Abwärtskompaktibilität lediglich singlethreading unterstützen. Interessant dürfte jedoch die Umsetzung der Webworker API werden, da es sich hier um eine multithreading ähnliche Technologie handelt. Dart kann entweder mit dynamischen oder statischen Datentypen geschrieben werden. Dies ermöglichst es in der selben Sprache schnell Prototypen schreiben zu können in der auch entwickelt wird.

Dynamisch typisierter Dartcode
class Point {
var x, y;
Point(this.x, this.y);
scale(factor) => new Point(x*factor, y*factor);
distance() => Math.sqrt(x*x + y*y);
}
main() {
var a = new Point(2,3).scale(10);
print(a.distance());
}

statisch typisierter Dartcode
class Point {
num x, y;
Point(num this.x, num this.y);
Point scale(num factor) => new Point(x*factor, y*factor);
num distance() => Math.sqrt(x*x + y*y);
}
void main() {
Point a = new Point(2,3).scale(10);
print(a.distance());
}

Hier noch ein Interview mit Gilad Bracha über Dart

Microsoft vs. Dart

Microsoft ist von Dart nicht grade angetan so lässt man im Internet Explorer Entwickler Blog verlauten das man das Entwickeln einer neuen Sprach für den falschen Weg hält. Das Javascript Entwicklungsteam von Microsoft spricht sich mit konkreten Vorschlägen für die Weitereentwicklung von Javascript aus. Dabei setzt man auch hier auf Objektorientierung.

Zum weiterlesen

Google Dart im Google Entwicklerblog

Alle Codebeispiele sind von http://www.dartlang.org

Moinsen! Ich hoffe das euch meine Artikel gefallen! Jeder Kommentar der zum Artikel passt ist gern gesehen!

Leave a Reply