2024-03-09 23:25:22 +01:00
|
|
|
## 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
|
2024-03-22 01:37:32 +01:00
|
|
|
Programmiersprache mit Garbage Collection und C-ähnlicher Syntax.
|
2024-03-09 23:25:22 +01:00
|
|
|
Die Sprache wurde von Lars Bak und Kasper Lund entworfen und
|
|
|
|
bei Google entwickelt. 2011 wurde sie veröffentlicht [@larsbakDartLanguageStructured2011].
|
2024-03-22 01:37:32 +01:00
|
|
|
|
2024-03-09 23:25:22 +01:00
|
|
|
Damals wurde Dart speziell für die Entwicklung von Webanwendungen
|
2024-03-22 01:37:32 +01:00
|
|
|
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,
|
2024-03-09 23:25:22 +01:00
|
|
|
dass die JavaScript Community zu diesem Zeitpunkt
|
|
|
|
schon sehr groß war und viele Entwickler nicht bereit waren, auf eine
|
2024-03-22 01:37:32 +01:00
|
|
|
komplett neue Programmiersprache umzusteigen.
|
2024-03-09 23:25:22 +01:00
|
|
|
|
|
|
|
Erst durch die Einführung von Flutter wurde Dart populärer, da es die
|
2024-03-22 01:37:32 +01:00
|
|
|
offizielle Programmiersprache für die Entwicklung von Flutter Apps wurde.
|
2024-03-09 23:25:22 +01:00
|
|
|
|
|
|
|
Heute ist die neueste Version von Dart die Version 3.3.1. Dart ist
|
2024-03-22 01:37:32 +01:00
|
|
|
eine der Programmiersprachen, die seit ihrer Veröffentlichung
|
2024-03-09 23:25:22 +01:00
|
|
|
sehr starke Veränderungen durchgemacht hat. So wurde zu der JIT (Just
|
|
|
|
in Time) Kompilierung, die Dart ursprünglich verwendete, eine AOT (Ahead of
|
2024-03-22 01:37:32 +01:00
|
|
|
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
|
2024-03-09 23:25:22 +01:00
|
|
|
verbessern und um Dart für die Entwicklung von mobilen Apps zu
|
2024-03-22 01:37:32 +01:00
|
|
|
optimieren. Mit Version 3 wurde eine komplette Sound Null Safety
|
2024-03-09 23:25:22 +01:00
|
|
|
zu Dart hinzugefügt. Sound Null Safety bedeutet, dass der komplette
|
|
|
|
Code und auch Code aus allen Bibliotheken vollständig null-sicher sein muss.
|
2024-03-22 01:37:32 +01:00
|
|
|
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.
|
|
|
|
|
|
|
|
# Stand der Technik
|