Suche
Client-seitige entwicklung im Fokus

Google Dart 2.0 angekündigt: Kann das Reboot die Sprache retten?

Dominik Mohilo

© Shutterstock.com / Ramona Edwards

Google gibt nicht auf. Obwohl sich die Programmiersprache Dart in der weiten Welt der Programmierer keiner allzu großen Beliebtheit erfreut, hält der Suchmaschinenriese an seiner JavaScript bzw. TypeScript-Alternative fest. Mit Dart 2.0 soll nun ein neues Zeitalter eingeläutet werden. Der neue Fokus ist klar definier: Die Client-seitige Entwicklung.

Dart wird im Oktober seinen siebten Geburtstag feiern und ist damit zwar ein wenig Jünger als Googles zweites Kind, Google Go, allerdings weitaus weniger erfolgreich. Während die „Golang“ sich einer wachsenden Fangemeinde erfreut und Entwickler immer häufiger über den Einsatz sprechen, fristet Dart, das als Alternative zu JavaScript entwickelt wurde, eher ein Schattendasein in den hauseigenen Projekten AdSense und AdWords.

Dart 2.0: Ein starkes Typsystem

Die ersten Informationen zu Google Dart wurden bereits im Juli vergangenen Jahres bekannt: Damals war die Rede davon, den Strong Mode zum Standard zu machen. Daran wollen die Entwickler aus Mountain View festhalten: Types werden so zur Pflicht, Annotationen bleiben aber optionale Komponenten.

Durch großen Input der Teams von AdSense und AdWords wurde das Typsystem von Dart 2 grundlegend überarbeitet. Dies dient auch dazu, Entwicklern beim Finden von Bugs zu helfen – und das bereits in den frühen Entwicklungsphasen. Auch die Skalierbarkeit und die Qualität des fertigen Codes sollen dadurch verbessert werden. Nach dem gleichen Prinzip wurden auch Sprachen wie TypeScript und Flow auf Basis von JavaScript erschaffen.

Ein Beispiel, das die Nützlichkeit der Typinferenz von Dart 2 darlegt, gibt es im Blog-Beitrag zu Dart 2:

void main() {
  List<int> prices = ['99', '27', '10000', '20000000'];
  
  // Sort in place from smallest to largest
  prices.sort();
  
  print('Lowest price is ${prices[0]}!');
}

Quelle: Google

Führt man den obigen Code aus, würde man erwarten, dass die Zahl 27 ausgegeben wird. Deaktiviert man das starke Typsystem, wird allerdings 10000 ausgegeben, da die Sortierung lexikographisch durchgeführt wird. Dart 2 allerdings liefert einen Type Error.

Client-seitige Entwicklung im Fokus

Google Dart wurde von den Machern für die Client-seitige Entwicklung von Web- und Mobile-Anwendungen optimiert. Für Dart 2 wurde wie gesagt das Typsystem verstärkt und modernisiert, die Syntax wurde aufgeräumt. Die Toolchain von Googles JavaScript-Konkurrenz wurde ebenfalls von Grund auf überarbeitet, um die Arbeit mit Dart ab Version 2.0 produktiver und angenehmer für Entwickler zu machen.

Um dem Anspruch an eine Sprache für die Client-seitige Entwicklung (und denen einer modernen General Purpose Language) gerecht zu werden, gibt es fünf wichtige Eigenschaften, die Dart laut den Machern haben muss:

  • Sie muss produktiv sein, das heißt sie benötigt unter anderem eine klare und prägnante Syntax, ein einfaches Tooling und Entwicklungszyklen, die nahezu in Echtzeit und „on device“ laufen.
  • Geschwindigkeit ist ebenfalls ein Kernfaktor für eine Sprache wie Dart. Die Performance der Laufzeit muss hoch und voraussehbar sein, auch auf mobilen Geräten.
  • Eine Sprache für die Client-seitige Entwicklung muss außerdem portierbar sein und auf iOS, Android und im Web laufen.
  • Eine Sprache, die für Millionen von Entwicklern interessant sein soll, muss leicht zugänglich sein. Daher ist es wichtig, dass sie nicht zu sehr von bekannten und beliebten Sprachen abweicht.
  • Zu guter Letzt muss eine Sprache wie Dart reaktiv sein und reaktive Programmierung sollte nativ von der Sprache unterstützt werden.

Web und Mobile

Client-seitig kommt Dart im Mobile-Bereich vor allem bei Flutter zum Einsatz, einem Framework für die UI-Entwicklung mobiler Anwendungen. Flutter ist dabei nicht nur auf die Anwendungsentwicklung für ein einziges mobiles Betriebssystem ausgelegt, Anwendungen können für iOS und Android gleichermaßen geschrieben werden. Wie Dart 2.0 setzt auch Flutter auf reaktive Programmierung, Darts sehr performantes Runtime-System mit schnellem Garbage Collector passt laut Google gut zu dem Framework.

Auch im Web fühlt sich Dart, dank des Web Frameworks und spezifischer Librarys wie dart:html, wie zu Hause.

UI als Code

Dart 2 führt zwei new und const als Optionale ein, sodass es für Entwickler einfacher und weniger aufwendig sein soll, UI per Code zu definieren. Ein Vorteil dieses vielgewünschten Features ist auch, dass der Wechsel von Dart zur spezifischen Markup-Sprache für das UI seltener notwendig sein soll. Das folgende Beispiel zeigt, wie man die Definition eines UI Widgets in Dart 2 aufräumen kann.

// Before Dart 2
Widget build(BuildContext context) {
  return new Container(
    height: 56.0,
    padding: const EdgeInsets.symmetric(horizontal: 8.0),
    decoration: new BoxDecoration(color: Colors.blue[500]),
    child: new Row(
      ...
    ),
  );
}

// After Dart 2
Widget build(BuildContext context) =>
  Container(
    height: 56.0,
    padding: EdgeInsets.symmetric(horizontal: 8.0),
    decoration: BoxDecoration(color: Colors.blue[500]),
    child: Row(
      ...
    ),
);

Quelle: Google

Ausblick

Eine Frage steht nach Googles Reboot der Programmiersprache nun ganz klar im Raum. Wird das Relaunch und der Fokus auf die Client-seitige Entwicklung nun tatsächlich die Beliebtheit der Sprache und die Verbreitung vorantreiben? Durch den Einsatz in Flutter könnte die Sprache sich wieder ins Gespräch bringen. Ob es für das Open-Source-Projekt allerdings dazu reicht, die Platzhirsche des ECMA-Standards von ihrem relativ sicheren Platz an der Sonne zu vertreiben, ist mindestens fragwürdig.

Weitere Informationen zu Dart 2 gibt es in der offiziellen Ankündigung, auf der Webseite von Dart und auf GitHub.

Verwandte Themen:

Geschrieben von
Dominik Mohilo
Dominik Mohilo
Dominik Mohilo studierte Germanistik und Soziologie an der Goethe-Universität in Frankfurt. Seit 2015 ist er Redakteur bei S&S-Media.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: