2024-03-09 23:25:22 +01:00

3.3 KiB

\linebreak

Dart

Dart ist die offizielle Programmiersprache für die Entwicklung von Flutter Apps und wurde in dieser Arbeit für die Entwicklung der Demo Anwendung verwendet. Dart ist eine objektorientierte, klassenbasierte Programmiersprache mit Garbage Collection und C-ähnlicher Syntax hat. Die Sprache wurde von Lars Bak und Kasper Lund entworfen und bei Google entwickelt. 2011 wurde sie veröffentlicht [@larsbakDartLanguageStructured2011]. Damals wurde Dart speziell für die Entwicklung von Webanwendungen entwickelt. Es sollte besonders dabei helfen komplexe und hochleistungsfähige Webanwendungen zu entwickeln. Google sah es aber explizit nicht als Ersatz für JavaScript, sondern als Ergänzung. Im Buch "What is Dart?" von den Google Entwicklern Kathy Walrath und Seth Ladd betonten diese 2012, dass Google nicht erwarten würde, dass Dart JavaScript ersetze, sondern dass Dart und JavaScript nebeneinander existieren könnten und Dart auch von JavaScript profitieren kann, da Dart Code in JavaScript transpiliert werden kann [@walrathkathyWhatDart2012, 1-2]. Hingegen der Erwartungen von Google wurde Dart jedoch nicht so populär wie erwartet. Google nutzte Dart zwar intern für einige Projekte, doch die Programmiersprache blieb weitesgehend unbekannt und wurde nur von wenigen Entwicklern genutzt. Genaue Gründe sind hierfür nicht bekannt, doch ein Grund könnte sein, dass die JavaScript Community zu diesem Zeitpunkt schon sehr groß war und viele Entwickler nicht bereit waren, auf eine komplett neue Programmiersprache umzusteigen. Zudem wurde 2012 TypeScript von Microsoft veröffentlicht, welches ähnliche Probleme wie Dart löst, jedoch besser in die bestehende JavaScript-Community integriert werden konnte, da es JavaScript als Sprache erweitert und Entwickler so nicht eine komplett neue Sprache lernen mussten.

Erst durch die Einführung von Flutter wurde Dart populärer, da es die offizielle Programmiersprache für die Entwicklung von Flutter Apps ist. Flutter wurde intern bei Google anfangs mit JavaScript entwickelt, doch dies führte zu Problemen, da JavaScript nicht die Performance und Stabilität bieten konnte, die Google für die Entwicklung von mobilen Apps erwartete. Daher wurde JavaScript durch Dart ersetzt und das Flutter und Dart Team haben eng zusammengearbeitet, um Dart so zu verbessern, dass es die Anforderungen von Flutter am besten erfüllt.

Heute ist die neueste Version von Dart die Version 3.3.1. Dart ist eine der wenigen Programmiersprachen, die seit ihrer Veröffentlichung sehr starke Veränderungen durchgemacht hat. So wurde zu der JIT (Just in Time) Kompilierung, die Dart ursprünglich verwendete, eine AOT (Ahead of Time) Kompilierung hinzugefügt, die es ermöglicht, Dart Code in nativen Code zu kompilieren. Dies war notwendig, um die Performance von Dart zu verbessern und um Dart für die Entwicklung von mobilen Apps zu optimieren, zusätzlich auch weil Apple keine JIT Kompilierung auf iOS Geräten erlaubt. Mit Version 3 wurde eine komplette Sound Null Safety zu Dart hinzugefügt. Sound Null Safety bedeutet, dass der komplette Code und auch Code aus allen Bibliotheken vollständig null-sicher sein muss. Mit Version 3 ist dies auch eine Voraussetzung in Dart, nicht null-sicherer Code kann nicht mehr kompiliert werden [@googleinc.UnsoundNullSafety].