What is the Dart programming language?

Submitted by Karol Djanashvili on Tue, 26/05/2020 - 11:25

What is Dart?

Dart is an open source language developed in Google with the aim of allowing developers to use an object-oriented language with static type analysis. Since the first stable release in 2011, Dart has changed quite a bit, both in the language itself and in its primary goals. With version 2.0, Dart's type system went from optional to static, and since its arrival, Flutter (we'll explain later) has become the main target of the language.

 

What makes Dart special?

Unlike many languages, Dart was designed with the goal of making the development process as comfortable and fast as possible for developers. So it comes with a fairly extensive set of built-in tools such as its own package manager, various compilers / transpilers, a parser and formatter. Also, the Dart virtual machine and Just-in-Time build make code changes immediately executable.
Once in production, the code can be compiled in native language, so no special environment is required to run. In case of web development, Dart is transpiled into JavaScript.

As for the syntax, Dart's is very similar to languages like JavaScript, Java and C ++, so learning Dart by knowing one of these languages is a matter of hours.
In addition, Dart has great support for asynchrony, and working with generators and iterables is extremely easy.

 

Where can I use Dart?

Dart is a general-purpose language, and you can use it for almost anything:

  • In web applications, using the art library: html and the transpiler to transform the Dart code into JavaScript, or using frameworks like AngularDart.
  • On servers, using the art: http and art: io libraries. There are also several frameworks that can be used, such as Aqueduct.
  • In console applications.
  • In mobile applications thanks to Flutter.
     

Flutter

Flutter is a Dart framework for creating cross-platform applications with a single code. Unlike other multiplatform frameworks such as Ionic, the code of a Flutter application is compiled into native code, so the performance achieved is superior to applications based on web-views. Also, unlike React Native, Flutter doesn't use native components, instead it comes with its own components, called widgets, so the same app will look the same on any device, regardless of its operating system or version. Thanks to this, the developer does not have to worry about the design of his application looking bad on older devices.

In addition to mobile applications, Flutter can also make web pages and desktop applications, although support for web pages is in beta, and for desktop applications in technical preview, so whoever wants to use them will have to wait a while longer. to make it stable.

Here are some examples of applications developed with Flutter:

For those interested in learning more about Dart and Flutter, then there is a list of various resources that may be helpful:

  • Dart webpage,where you can find all the language documentation and various tutorials. In particular, the Language Tour It is very useful to see a brief introduction to the syntax of the language.
  • Dartpad,which allows you to experiment with the language from the browser without having to install anything (you can also write Flutter applications).
  • Webpage of the packets repositori, where you can find all the community packages.
  • Medium pages of Dart and Flutter, with many articles that can be of help.
  • Flutter's webpage, where is the documentation of the framework, and how to start using it.
  • Flutter's Youtube Channel, with a lot of videos that can be useful. In particular, the video series of Widget of the Week, a series of short videos of a couple of minutes each one explaining a widget, quite useful if you are starting and you are not very clear what widgets exist and how you can use them, and the series Flutter in Focus, with longer videos explaining key concepts from both Dart and Flutter.

Segueix-nos a

Els nostres articles del bloc d'inLab FIB

         
         

inLab FIB incorporates esCert

Icona ESCERT

First LogoCSIRT Logo

inLab is member of

inLab és centre TECNIO

ACCIO