Dart (Pro­gram­mier­spra­che)

Dart, eine von Goog­le ent­wi­ckel­te und ECMA-stan­dar­di­sier­te Pro­gram­mier­spra­che, dient als moder­ne Alter­na­ti­ve zu Java­Script und hat sich vor allem in der Web­ent­wick­lung eta­bliert. Die­se Sei­te behan­delt die Ent­ste­hung und Ent­wick­lung von Dart, sei­ne viel­fäl­ti­gen Ein­satz­mög­lich­kei­ten in der Soft­ware­ent­wick­lung, ins­be­son­de­re in der platt­form­über­grei­fen­den Mobi­le-App-Ent­wick­lung mit Flut­ter, und die Vor­tei­le, die Dart für die App-Ent­wick­lung bie­tet. Zudem wird das Dart SDK erläu­tert und der Unter­schied zwi­schen Flut­ter und Dart sowie die Lern­kur­ve für neue Ent­wick­ler beleuch­tet.

Was ist Dart von Goog­le?

Dart ist eine ECMA-stan­dar­di­sier­te Pro­gram­mier­spra­che, die haupt­säch­lich von Goog­le ent­wi­ckelt wird. Die­se gene­rel­le Viel­zweck-Pro­gram­mier­spra­che wur­de ent­wor­fen, um eine moder­ne Alter­na­ti­ve zu Java­Script in Web­brow­sern zu bie­ten.

Dart zielt dar­auf ab, grund­le­gen­de Pro­ble­me von Java­Script zu über­win­den, die sich laut den Ent­wick­lern nicht durch eine Wei­ter­ent­wick­lung von Java­Script behe­ben las­sen. Beson­ders in der Web­ent­wick­lung zeigt Dart sei­ne Stär­ken, indem es eine robus­te und effi­zi­en­te Platt­form für die Erstel­lung kom­ple­xer Anwen­dun­gen bereit­stellt. Zudem för­dert Dart die Ent­wick­lung von sau­be­ren und wart­ba­ren Code durch sei­ne kla­ren und struk­tu­rier­ten Syn­tax-Regeln.

Wann begann die Ent­wick­lung der Dart Pro­gram­mier­spra­che?

Die Ent­wick­lung der Pro­gram­mier­spra­che Dart begann 2010 in einem klei­nen Team um Lars Bak, Gilad Bracha und Kas­per Ver­dich Lund in Aar­hus. Dart wur­de erst­mals am 10. Okto­ber 2011 auf der GOTO-Kon­fe­renz in Aar­hus vor­ge­stellt. Die ers­te sta­bi­le Ver­si­on 1.0 wur­de am 14. Novem­ber 2013 ver­öf­fent­licht. Am 25. Juni 2014 beschloss die ECMA die Stan­dar­di­sie­rung der Sprach­spe­zi­fi­ka­ti­on mit dem Doku­ment „ECMA-408“.

Der Haupt­grund für die Ent­wick­lung von Dart war der Wunsch, die Schwä­chen von Java­Script zu behe­ben, ins­be­son­de­re in Bezug auf Leis­tung und Ska­lier­bar­keit in gro­ßen Web­an­wen­dun­gen. Ziel war es, eine Spra­che zu schaf­fen, die sowohl für ein­fa­che Skrip­te als auch für kom­ple­xe Anwen­dun­gen geeig­net ist und die Ent­wick­lungs­ge­schwin­dig­keit im Brow­ser ver­bes­sert.

Wofür wird die Pro­gram­mier­spra­che Dart ver­wen­det?

Dart wird haupt­säch­lich für die platt­form­über­grei­fen­de Mobi­le-App-Ent­wick­lung mit dem Flut­ter-Frame­work ver­wen­det. Dar­über hin­aus hat Dart viel­sei­ti­ge Ein­satz­mög­lich­kei­ten in ver­schie­de­nen Berei­chen der Soft­ware­ent­wick­lung. Hier sind die wich­tigs­ten Anwen­dungs­be­rei­che der Pro­gram­mier­spra­che Dart:

  • Mobi­le App-Ent­wick­lung: Dart ist die pri­mä­re Pro­gram­mier­spra­che für Flut­ter, ein UI-Tool­kit von Goog­le zur Erstel­lung nativ kom­pi­lier­ter Anwen­dun­gen für mobi­le, Web- und Desk­top-Platt­for­men aus einer ein­zi­gen Code­ba­sis. Es wird häu­fig zur Ent­wick­lung von Android- und iOS-Apps ver­wen­det.
  • Web­ent­wick­lung: Dart kann zur Erstel­lung von Web­an­wen­dun­gen ver­wen­det wer­den. Mit Dart kön­nen Ent­wick­ler cli­ent­sei­ti­ge Anwen­dun­gen erstel­len, die im Brow­ser lau­fen. Es gibt ein spe­zi­el­les Paket namens dart:html, das Funk­tio­nen für die Arbeit mit HTML und dem DOM bie­tet. Ser­ver­sei­ti­ge Ent­wick­lung: Dart kann auch für die ser­ver­sei­ti­ge Ent­wick­lung ver­wen­det wer­den. Es gibt Frame­works wie Aque­duct und Shelf, die Ent­wick­lern hel­fen, Web­ser­ver und RESTful APIs zu erstel­len.
  • Desk­top-Anwen­dun­gen: Mit Flut­ter kön­nen auch Desk­top-Anwen­dun­gen für Win­dows, macOS und Linux ent­wi­ckelt wer­den. Dart wird dabei als Pro­gram­mier­spra­che ver­wen­det, um platt­form­über­grei­fen­de Desk­top-Apps zu erstel­len.
  • Com­mand Line Tools: Dart eig­net sich her­vor­ra­gend zur Erstel­lung von Kom­man­do­zei­len-Tools und Skrip­ten. Dank sei­ner ein­fa­chen Syn­tax und star­ken Typ­si­cher­heit kön­nen Ent­wick­ler leis­tungs­fä­hi­ge CLI-Anwen­dun­gen schrei­ben.
  • IoT (Inter­net of Things): Obwohl Dart nicht so ver­brei­tet im IoT-Bereich ist wie ande­re Spra­chen, kann es den­noch für bestimm­te IoT-Pro­jek­te ver­wen­det wer­den, ins­be­son­de­re wenn eine Ver­bin­dung zu einer Flut­ter-App besteht.

Wel­che Vor­tei­le bie­tet Dart für die App-Ent­wick­lung?

Dart bie­tet meh­re­re Vor­tei­le für die App-Ent­wick­lung, ins­be­son­de­re in Ver­bin­dung mit dem Flut­ter-Frame­work. Die­se fünf Vor­tei­le machen Dart zu einer attrak­ti­ven Wahl für Ent­wick­ler, die effi­zi­en­te und leis­tungs­star­ke Anwen­dun­gen erstel­len möch­ten:

  1. Platt­form­über­grei­fen­de Ent­wick­lung: Mit Dart und Flut­ter kön­nen Ent­wick­ler eine ein­zi­ge Code­ba­sis für nati­ve mobi­le Apps auf iOS, Android sowie für Web- und Desk­top-Anwen­dun­gen pfle­gen. Dies spart Zeit und Res­sour­cen im Ver­gleich zur sepa­ra­ten Ent­wick­lung für jede Platt­form.
  2. Hohe Leis­tung: Dart-Code wird in nati­ven Maschi­nen­code für die jewei­li­ge Platt­form kom­pi­liert, was zu einer hohen Leis­tung der Apps führt, ver­gleich­bar mit nativ ent­wi­ckel­ten Apps. Funk­tio­nen wie Just-in-Time (JIT) und Ahead-of-Time (AOT) Kom­pi­lie­rung tra­gen zur Geschwin­dig­keit bei.
  3. Ein­fa­che und effi­zi­en­te Syn­tax: Dart hat eine sau­be­re und über­sicht­li­che Syn­tax, ähn­lich wie Java oder C#, was den Ein­stieg für Ent­wick­ler erleich­tert. Die Spra­che ist prä­gnant und leicht zu erler­nen, wodurch Ent­wick­ler schnell pro­duk­ti­ven Code schrei­ben kön­nen.
  4. Pro­duk­ti­vi­täts­tools: Flut­ter bie­tet Funk­tio­nen wie “Hot Rel­oad”, mit denen Code­än­de­run­gen in Echt­zeit in der lau­fen­den App ange­zeigt wer­den kön­nen. Dies beschleu­nigt den Ent­wick­lungs­pro­zess. Dart ver­fügt über leis­tungs­star­ke Tools wie den Paket­ma­na­ger Pub und Unter­stüt­zung in IDEs wie Visu­al Stu­dio Code.
  5. Null-Sicher­heit: Dart hat ein aus­ge­feil­tes Null-Sicher­heits­mo­dell, das Lauf­zeit­feh­ler durch Null­ver­wei­se ver­hin­dert und die Code­qua­li­tät ver­bes­sert.

Kann man nati­ve Apps mit Dart ent­wi­ckeln?

Ja, mit Dart kön­nen nati­ve Apps ent­wi­ckelt wer­den, ins­be­son­de­re durch die Ver­wen­dung des Flut­ter-Frame­works. Flut­ter, ein von Goog­le ent­wi­ckel­tes Open-Source-UI-Frame­work, nutzt Dart als Pro­gram­mier­spra­che und ermög­licht die Erstel­lung nati­ver Apps für iOS und Android aus einer ein­zi­gen Code­ba­sis.

Der Dart-Code wird in nati­ven Maschi­nen­code kom­pi­liert, was zu einer hohen Leis­tung der Apps führt. Zudem bie­tet Flut­ter Funk­tio­nen wie “Hot Rel­oad”, die den Ent­wick­lungs­pro­zess beschleu­ni­gen. Neben mobi­len Apps kön­nen auch Desk­top-Anwen­dun­gen und Web­an­wen­dun­gen mit Dart und Flut­ter ent­wi­ckelt wer­den, was eine effi­zi­en­te platt­form­über­grei­fen­de Ent­wick­lung ermög­licht.

Wie ist Dart typi­siert?

Dart ist optio­nal typi­siert. Das bedeu­tet, dass Ent­wick­ler Typi­sie­rungs­an­wei­sun­gen ver­wen­den kön­nen, aber nicht müs­sen. Dart kennt zwei Run­time-Modi: Im Pro­duk­ti­ons­mo­dus sucht der Com­pi­ler die bes­te Vari­an­te und igno­riert Typi­sie­rungs­an­wei­sun­gen und ‑feh­ler, was zu einer opti­mier­ten Pro­gramm­aus­füh­rung führt.

Im Che­cked-Modus hin­ge­gen wer­den Typ­an­wei­sun­gen strikt beach­tet und bei Typi­sie­rungs­feh­lern wer­den Excep­ti­ons gewor­fen, was die Code­qua­li­tät durch auf­wen­di­ge Code­ana­ly­se erhöht. Typi­sie­rungs-Anno­ta­tio­nen ver­bes­sern die Les­bar­keit des Codes und unter­stüt­zen Pro­gram­mie­rer durch Funk­tio­nen wie Code­ver­voll­stän­di­gung, Navi­ga­ti­on und früh­zei­ti­ge Feh­ler­er­ken­nung in Ent­wick­lungs­um­ge­bun­gen. Pro­gram­mie­rer kön­nen auch ohne Typi­sie­rung arbei­ten, was jedoch die Opti­mier­bar­keit des Java­Script-Out­puts beein­träch­ti­gen kann.

Was bedeu­tet Dart SDK?

Das Dart SDK ist ein Soft­ware Deve­lo­p­ment Kit, das eine Samm­lung von Werk­zeu­gen zur Ent­wick­lung mit der Pro­gram­mier­spra­che Dart umfasst. Es beinhal­tet die Stan­da­lo­ne-VM DartVM und den Dart-zu-Java­Script-Trans­com­pi­ler dart2js. Für die Quell­code­ana­ly­se und ‑for­ma­tie­rung ste­hen die Befehls­zei­len­werk­zeu­ge dart­ana­ly­zer und dartfmt zur Ver­fü­gung.

Ab Ver­si­on 1.2 ent­hält das SDK auch das Soft­ware-Doku­men­ta­ti­ons­werk­zeug doc­gen. Dart­an­wen­dun­gen basie­ren auf Packa­ges und nut­zen das Paket­ver­wal­tungs­sys­tem Pub zur Ver­wal­tung. Zusätz­lich bie­tet das Dart SDK ab Ver­si­on 1.4 das Ana­ly­se­werk­zeug Obser­va­to­ry, wel­ches Ein­bli­cke in die Abläu­fe inner­halb der DartVM ermög­licht. Die­se umfas­sen­de Samm­lung von Tools macht das Dart SDK zu einer zen­tra­len Res­sour­ce für Ent­wick­ler und Ent­wick­lungs­agen­tu­ren, die mit Dart arbei­ten.

Was ist der Unter­schied zwi­schen Flut­ter und Dart?

Der Unter­schied zwi­schen Flut­ter und Dart liegt in ihren Funk­tio­nen und Ein­satz­zwe­cken. Flut­ter ist ein Open-Source-UI-Frame­work zur Ent­wick­lung von nativ kom­pi­lier­ten Anwen­dun­gen für mobi­le Gerä­te, Web und Desk­top aus einer ein­zi­gen Code­ba­sis.

Flut­ter ver­wen­det Dart als Pro­gram­mier­spra­che und bie­tet eine Rei­he vor­ge­fer­tig­ter Wid­gets zur Erstel­lung benut­zer­freund­li­cher Ober­flä­chen. Funk­tio­nen wie “Hot Rel­oad” ermög­li­chen die Echt­zeit-Anzei­ge von Code­än­de­run­gen, was die Ent­wick­lung beschleu­nigt.

Dart hin­ge­gen ist eine objekt­ori­en­tier­te, platt­form­über­grei­fen­de Pro­gram­mier­spra­che, die von Goog­le ent­wi­ckelt wur­de und die Grund­la­ge für Flut­ter bil­det. Dart hat eine ein­fa­che, über­sicht­li­che Syn­tax und unter­stützt Kon­zep­te wie Null-Sicher­heit und asyn­chro­ne Pro­gram­mie­rung.

Wäh­rend Flut­ter spe­zi­ell für die App-Ent­wick­lung mit vor­ge­fer­tig­ten UI-Kom­po­nen­ten kon­zi­piert ist, kann Dart auch unab­hän­gig von Flut­ter für Web­an­wen­dun­gen, Ser­ver und Desk­top-Pro­gram­me ein­ge­setzt wer­den.

Flut­ter nutzt Dart zur Imple­men­tie­rung der Logik, kann aber nicht ohne Dart exis­tie­ren. Dart hin­ge­gen kann für vie­le ande­re Zwe­cke ver­wen­det wer­den und ist nicht auf Flut­ter beschränkt.

War­um wer­den vie­le Apps mit Flut­ter ent­wi­ckelt?

Vie­le Apps wer­den mit Flut­ter ent­wi­ckelt, weil es zahl­rei­che Vor­tei­le für Ent­wick­ler, Unter­neh­men und Benut­zer bie­tet. Ent­wick­ler schät­zen Flut­ter wegen der hohen Effi­zi­enz und Pro­duk­ti­vi­tät; die “Hot Reload”-Funktion ermög­licht es, Code­än­de­run­gen sofort zu sehen, und die platt­form­über­grei­fen­de Ent­wick­lung redu­ziert den War­tungs­auf­wand.

Für Unter­neh­men ist Flut­ter attrak­tiv, da es die Ent­wick­lungs­kos­ten senkt und die Markt­ein­füh­rungs­zeit ver­kürzt; ein ein­zi­ges Team kann Flut­ter-Apps für ver­schie­de­ne Platt­for­men ent­wi­ckeln und pfle­gen, was Zeit und Geld spart. Benut­zer pro­fi­tie­ren von einer kon­sis­ten­ten und per­for­man­ten Nut­zer­er­fah­rung, da Flut­ter die Skia-Gra­fik­bi­blio­thek nutzt, die flüs­si­ge Ani­ma­tio­nen und hoch­wer­ti­ge User Expe­ri­en­ces bie­tet.

For­scher sehen in Flut­ter eine weg­wei­sen­de Tech­no­lo­gie, die Trends in der App-Ent­wick­lung setzt, unter­stützt durch ein wach­sen­des Öko­sys­tem und eine akti­ve Com­mu­ni­ty. Die­se Kom­bi­na­ti­on aus Effi­zi­enz, Kos­ten­ein­spa­run­gen, Nut­zer­zu­frie­den­heit und Inno­va­ti­ons­po­ten­zi­al macht Flut­ter zur bevor­zug­ten Wahl für vie­le App-Ent­wick­ler und Agen­tu­ren.

Ist Dart ähn­lich wie C++?

Dart ist in eini­gen Aspek­ten ähn­lich wie C++, ins­be­son­de­re in Bezug auf Syn­tax und objekt­ori­en­tier­te Pro­gram­mier­kon­zep­te, hat aber auch ein­zig­ar­ti­ge Merk­ma­le und ein ande­res Öko­sys­tem. Bei­de Spra­chen unter­stüt­zen Klas­sen, Ver­er­bung und poly­mor­phe Metho­den, was die Struk­tu­rie­rung von Code erleich­tert.

Dart bie­tet jedoch eine ein­fa­che­re und moder­ne­re Syn­tax, die an Java erin­nert, und legt gro­ßen Wert auf Benut­zer­freund­lich­keit und Les­bar­keit. Zudem inte­griert Dart Funk­tio­nen wie Null-Sicher­heit und asyn­chro­ne Pro­gram­mie­rung, die in C++ nicht nativ vor­han­den sind.

Wäh­rend C++ oft in Sys­tem- und Anwen­dungs­pro­gram­mie­rung ein­ge­setzt wird, ist Dart spe­zi­ell für platt­form­über­grei­fen­de Ent­wick­lun­gen opti­miert, ins­be­son­de­re in Ver­bin­dung mit dem Flut­ter-Frame­work für mobi­le Apps.

Wie schwie­rig ist es die Pro­gram­mier­spra­che Dart zu ler­nen?

Dart gilt als rela­tiv ein­fach zu erler­nen­de Pro­gram­mier­spra­che, ins­be­son­de­re für Per­so­nen mit Vor­kennt­nis­sen in ande­ren objekt­ori­en­tier­ten Spra­chen wie Java oder C#. Die Syn­tax von Dart ist sau­ber, über­sicht­lich und ähnelt bekann­ten Spra­chen, was den Ein­stieg erleich­tert. Dank einer kon­sis­ten­ten und ele­gan­ten Syn­tax wird unnö­ti­ge Kom­ple­xi­tät ver­mie­den.

Dart ist voll­stän­dig objekt­ori­en­tiert und unter­stützt Kon­zep­te wie Klas­sen, Ver­er­bung und Mixin-basier­te Ver­er­bung, wodurch es sich für erfah­re­ne Pro­gram­mie­rer ver­traut anfühlt. Leis­tungs­star­ke Werk­zeu­ge wie der Paket­ma­na­ger Pub, die Online-IDE Dart­Pad und die Unter­stüt­zung in IDEs wie Visu­al Stu­dio Code erleich­tern den Ein­stieg und machen Dart pro­duk­tiv nutz­bar.

Das aus­ge­feil­te Null-Sicher­heits­mo­dell ver­hin­dert vie­le gän­gi­ge Lauf­zeit­feh­ler und ver­bes­sert die Code­qua­li­tät, was die Kom­ple­xi­tät für Ein­stei­ger redu­ziert.

Wo kann man die Pro­gram­mier­spra­che Dart als Anfän­ger ler­nen?

Anfän­ger kön­nen die Pro­gram­mier­spra­che Dart am bes­ten durch Online-Kur­se und Tuto­ri­als auf Platt­for­men wie Ude­my, Code­ca­de­my und Cour­se­ra ler­nen. Die­se Platt­for­men bie­ten spe­zi­fi­sche Dart-Kur­se, die ide­al für Ein­stei­ger sind. Zusätz­lich sind You­Tube-Kanä­le und Blogs nütz­li­che Res­sour­cen. 

Wo kann man als erfah­re­ner Ent­wick­ler mehr über die Pro­gram­mier­spra­che Dart ler­nen?

Ent­wick­ler kön­nen mehr über die Pro­gram­mier­spra­che Dart ler­nen, indem sie die offi­zi­el­le Doku­men­ta­ti­on auf dart.dev nut­zen, die detail­lier­te Infor­ma­tio­nen und Best Prac­ti­ces bie­tet. Berufs­tä­ti­ge Pro­gram­mie­rer pro­fi­tie­ren von API-Refe­ren­zen und Anwen­dungs­hin­wei­sen.

Stu­die­ren­de fin­den wert­vol­le Res­sour­cen in Uni­ver­si­täts­kur­sen und MOOCs auf Platt­for­men wie edX und Cour­se­ra, die theo­re­ti­sche und prak­ti­sche Kennt­nis­se ver­mit­teln.

Erfah­re­ne Ent­wick­ler und Mit­glie­der der Ent­wick­ler-Com­mu­ni­ty erwei­tern ihr Wis­sen durch Teil­nah­me an Meet­ups, Kon­fe­ren­zen und durch den Aus­tausch in Foren wie Stack Over­flow und auf Platt­for­men wie Git­Hub.

Gibt es offi­zi­el­le Tuto­ri­als von Goog­le zu Dart?

Ja, es gibt offi­zi­el­le Tuto­ri­als von Goog­le zu Dart. Auf der offi­zi­el­len Web­site dart.dev fin­den sich zahl­rei­che Res­sour­cen, dar­un­ter auch umfas­sen­de Tuto­ri­als von Goog­le. Die­se Lern­pro­gram­me decken ver­schie­de­ne Aspek­te der Dart-Pro­gram­mie­rung ab, von den Grund­la­gen bis hin zu fort­ge­schrit­te­nen The­men, und bie­ten prak­ti­sche Bei­spie­le und detail­lier­te Erklä­run­gen. Zusätz­lich bie­tet die Web­site API-Refe­ren­zen und Best Prac­ti­ces, die spe­zi­ell für Ent­wick­ler ent­wi­ckelt wur­den, um das Erler­nen und Ver­wen­den von Dart zu erleich­tern.

  • Kontakt

  • BlueBranch GmbH
    Albert-Schweitzer-Straße 20
    91080 Uttenreuth

  • Telefon: +49 1514 6659529
    E-Mail: hello@bluebranch.de