The Dart Programming Language

Dart 2 (https://www.dartlang.org/) was a huge improvement over the previous Dart language releases and helped launch Dart into a category of being a mainstream programming language. The success of Dart 2 is largely due to the hard work of Google’s Dart Team and some key advocate users of the language. Dart is free, open-sourced and developed on GitHub here: https://github.com/dart-lang

Dart is still somewhat unique, as a computer programming language, due to the fact that it offers both a virtual machine (VM) and it can compile to native code or cross-compile (transpile) to JavaScript.

The language itself has a C-style syntax and is considered a general-purpose language, meaning you can use it to build web, server, desktop, command line and cross-platform mobile apps (via Flutter).

The Dart language was originally developed by Google and later approved as a open standard by Ecma (ECMA-408). Learn more on the Wikipedia Dart (programming language) page here: https://en.wikipedia.org/wiki/Dart_(programming_language)

Dart is an object-oriented, class defined, statically typed, garbage-collected, interface supporting with mixin classes.

  • Object-Oriented: meaning the code is structured inside classes that hold data and have methods.
    • Methods are subroutines that can manipulate and do operations on objects or classes.
  • Class Defined: meaning that the classes act as template definitions of the methods and variables for each particular kind of object.
  • Statically Typed: meaning that the type of variables will be known at compile time, making for a sound type system that helps us write safer and more predictable code.
  • Garbage-Collected: means there are automatic memory management features of the Dart language that attempt to reclaim memory occupied by objects that are no longer being used by the program.
  • Interface Supporting: meaning that Dart supports interface-based programming architecture, which is a sort of architectural pattern aiming to modularize and structure code to help make your application easier to test and maintain.
  • Mixin Supporting: means that Dart supports classes that contain methods for use by other classes without needing to be the parent class.

Dart has plenty of solid mission-critical production use examples, such as Google’s Adwords, AdSense and AdMob. Supposedly, over 75% of Google’s revenue flows through these platforms, so it would suffice to say that Google is heavily invested in the Dart language and further proves it by introducing the cross-platform mobile framework called Flutter, which allows the creation of iOS and Android app development from a single codebase. Read more here about who uses Dart: https://www.dartlang.org/community/who-uses-dart

Using the Dart programming language can increase productivity and efficiency due to having a just-in-time (JIT) compiler, which allows the ability to compile code on-the-fly that hot reloads your application. But, Dart also comes with an ahead-of-time (AOT) compiler, which will compile your code before runtime to make it execute faster.

You can easily start trying out the Dart programming language for yourself using a free online editor called DartPad available here: https://dartpad.dartlang.org/