Programmeertaal Dart 2.8 uitgebracht

vond plaats vrijgave van programmeertaal Dart 2.8, dat de ontwikkeling voortzet van een radicaal opnieuw ontworpen Dart 2-tak, opnieuw gericht op ontwikkeling voor web- en mobiele systemen en geoptimaliseerd voor het creëren van componenten aan de clientzijde.

Dart 2 verschilt van de originele Dart-taal door het gebruik van sterk statisch typen (typen kunnen automatisch worden afgeleid, dus typespecificatie is optioneel, maar dynamisch typen wordt niet langer gebruikt en het aanvankelijk berekende type wordt toegewezen aan een variabele en strikte typecontrole is vervolgens toegepast). Voor de ontwikkeling van webapplicaties aangeboden een reeks specifieke bibliotheken, zoals dart:html, evenals het Angular-webframework. Er wordt een raamwerk gepromoot voor het maken van mobiele applicaties Flutter, op basis waarvan onder meer de gebruikersschil van het nieuwe microkernel-besturingssysteem dat bij Google wordt ontwikkeld, wordt gebouwd Fuchsia.

In de nieuwe uitgave:

  • Middelen toegevoegd om de Null-waarde veilig te gebruiken, waardoor de achterwaartse compatibiliteit wordt verbroken. Er zal nu bijvoorbeeld een compileerfout optreden als er wordt geprobeerd de waarde “Null” toe te wijzen aan een variabele van een niet-ongedefinieerd type, zoals “int”. Er zijn ook beperkingen geïntroduceerd op de compatibiliteit van variabelen met Nullable- en niet-Nullable-typen, zoals “int?” en "int" (aan een variabele met het type "int" kan een variabele met het type "int" worden toegewezen, maar niet andersom). Hetzelfde geldt voor variabelen die worden geretourneerd in de instructie "return" - als in de hoofdtekst van de functie aan een variabele met een type dat de status "Null" niet toestaat geen waarde wordt toegewezen, geeft de compiler een fout weer. Met deze wijzigingen kunt u crashes voorkomen die worden veroorzaakt door pogingen om variabelen te gebruiken waarvan de waarde niet is gedefinieerd en is ingesteld op 'Null'.
  • opslagplaats pub.dev passeerde de grens van 10 pakketten. Als onderdeel van de Dart 2.8-inrichtingscyclus zijn de prestaties bij het ophalen van pakketten uit pub.dev aanzienlijk verbeterd door ondersteuning van het ophalen van pakketten in meerdere parallelle threads bij het uitvoeren van de opdracht "pub get", evenals luie precompilatie bij het uitvoeren van de opdracht " pubrun"-opdracht. Het testen van de opdracht “pub get” voor een nieuw op Flutter gebaseerd project liet een afname van de bedieningstijd zien van 6.5 naar 2.5 seconden, en voor grotere toepassingen zoals Flutter Gallery van 15 naar 3 seconden.
  • Een nieuwe opdracht "pub verouderd" toegevoegd om alle afhankelijkheden van geïnstalleerde pakketten up-to-date te houden. Met behulp van de opdracht "pub verouderd" kunt u, zonder wijzigingen in het pubspec-bestand aan te brengen, evalueren of er nieuwere hoofdversies zijn van alle afhankelijkheden die aan een opgegeven pakket zijn gekoppeld. In tegenstelling tot "pub upgrade" controleert het nieuwe commando niet alleen versies die overeenkomen met pubspec, maar ook nieuwere branches. Voor een pakket met vastgezette afhankelijkheden "foo: ^1.3.0" en "bar: ^2.0.0" zal het uitvoeren van "pub verouderd" bijvoorbeeld de aanwezigheid van zowel beschikbare branches als nieuwere branches tonen:

    Afhankelijkheden Huidig ​​Uitbreidbaar Oplosbaar Nieuwste
    foo 1.3.0 1.3.1 1.3.1 1.3.1
    bar 2.0.1 2.1.0 3.0.3 3.0.3

Kenmerken van de Dart-taal:

  • Bekende en gemakkelijk te leren syntaxis, natuurlijk voor JavaScript-, C- en Java-programmeurs.
  • Zorgen voor een snelle lancering en hoge prestaties voor alle moderne webbrowsers en verschillende soorten omgevingen, van draagbare apparaten tot krachtige servers;
  • Het vermogen om klassen en interfaces te definiëren die inkapseling en hergebruik van bestaande methoden en gegevens mogelijk maken;
  • Het specificeren van typen maakt het gemakkelijker om fouten te debuggen en te identificeren, maakt de code duidelijker en leesbaarder, en vereenvoudigt de wijziging en analyse ervan door externe ontwikkelaars.
  • Ondersteunde typen zijn onder meer: ​​verschillende soorten hashes, arrays en lijsten, wachtrijen, numerieke en stringtypen, typen voor het bepalen van datum en tijd, reguliere expressies (RegExp). Misschien het creëren van uw eigen soorten;
  • Om parallelle uitvoering te organiseren, wordt voorgesteld om klassen te gebruiken met het isolate-attribuut, waarvan de code volledig in geïsoleerde ruimte in een apart geheugengebied wordt uitgevoerd, en interactie heeft met het hoofdproces door berichten te verzenden;
  • Ondersteuning voor het gebruik van bibliotheken die de ondersteuning en foutopsporing van grote webprojecten vereenvoudigen. Implementaties van functies door derden kunnen worden opgenomen in de vorm van gedeelde bibliotheken. Applicaties kunnen in delen worden opgedeeld en de ontwikkeling van elk deel aan een apart team van programmeurs toevertrouwen;
  • Een reeks kant-en-klare tools ter ondersteuning van de ontwikkeling in de Dart-taal, inclusief de implementatie van tools voor dynamische ontwikkeling en foutopsporing met on-the-fly codecorrectie (“bewerken en doorgaan”);
  • Om de ontwikkeling in de Dart-taal te vereenvoudigen, wordt deze meegeleverd SDK, pakket manager cafe, statische codeanalysator dart_analyzer, set bibliotheken, geïntegreerde ontwikkelomgeving DartPad en Dart-compatibele plug-ins voor IntelliJ IDEE, WebStorm, Emacs, Sublieme tekst 2 и Vim;
  • Extra pakketten met bibliotheken en hulpprogramma's worden via de repository gedistribueerd cafe, die meer dan 10 pakketten heeft.

Bron: opennet.ru

Voeg een reactie