2.7 KiB
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. 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. Google sah es als eine Problemlösung für die Entwicklung von komplexen Webanwendungen, da JavaScript nicht die Leistung und Struktur bieten konnte, die Google für die Entwicklung von hochleistungsfähigen Webanwendungen erwartete. Es sollte als Ergänzung zu JavaScript für diese Anwendungsfälle genutzt werden [@walrathkathyWhatDart2012, 1-2]. Hingegen der Erwartungen von Google wurde Dart jedoch nicht so populär wie erwartet und die Programmiersprache blieb weitestgehend unbekannt. 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.
Erst durch die Einführung von Flutter wurde Dart populärer, da es die offizielle Programmiersprache für die Entwicklung von Flutter Apps wurde.
Heute ist die neueste Version von Dart die Version 3.3.1. Dart ist eine der 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 in nativen Code zu kompilieren [@googleinc.FAQ]. Dies war notwendig, um die Leistung von Dart zu verbessern und um Dart für die Entwicklung von mobilen Apps zu optimieren. 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 eine Voraussetzung in Dart, nicht null-sicherer Code kann nicht mehr kompiliert werden [@googleinc.UnsoundNullSafety] und es wird einfacher Bugs zu verhindern, die durch Nullpointer Exceptions entstehen können.
Mit Projekten wie Serverpod [@ServerpodFlutterBackend] und Dart Frog [@DartFrog] macht Dart auch ein Comeback im Backend-Bereich. Hiermit wird es möglich, sowohl die Benutzeroberfläche mit Flutter und Dart zu programmieren und auch nötigen Servercode dazu mit Dart zu schreiben. Dies ermöglicht es, dass Entwickler effizienter in nur einer Programmiersprache entwickeln können um Projekte schneller umzusetzen.