10 good reasons to learn Dart

Dart is familiar to many existing developers, thanks to its unsurprising object orientation and syntax. If you already know C++, C#, or Java, you can be productive with Dart in just a few days.Photo by Will Porada on UnsplashA Quick Google Search

All jokes aside, Dart one of the best languages you can learn in 2k19. It’s also a good first language, (at least easier than Java, in my opinion). I’ve had the chance to learn Dart in order to work on a new project and I loved the language so much that I want to create a whole tutorial series for it. I’ve tried many languages before, but never fell in love with any of them.

Dart is a general-purpose programming language originally developed by Google and later approved as a standard by Ecma (ECMA-408). It is used to build web, server, desktop, and mobile applications. — Wikipedia

TLDR;

I suggest you read the whole post (if you haven’t already) but if you are short on time, then no hard feelings. Here are the key points.

0. Dart is really flexible1. Dart embraced the open source ecosystem2. Dart solved a lot of problems, efficiently3. Dart is a good first language4. Dart has great tooling support5. Dart is a robust language6. Dart ensures productivity7. Dart is used by Flutter8. Dart is backed by a tech giant9. Dart solved a lot of problems, efficiently

How Dart Started

Two engineers from Google launched “Dart”, on 10 October 2011, at the GOTO conference, as a brand new programming language designed to help developers build web applications. Dart 1.0 was released on November 14th, 2013.

And as always, everything that comes out of Google is received with great interest in the tech world. Truth be told, the original Dart project was going through a stagnation since its inception, (because initially, they wanted the Dartlang to replace Javascript, or act like CoffeeScript). But so much has changed since then. Now the prime focus behind Dart has shifted, and Dart is being implemented in a wide range of projects.

Anyway, let’s not get too much in detail about why and how Dart started. Point is, Dart today is so much more than what it was initially intended to be. Sounds familiar, right? Javascript too has become like that. But unlike Javascript, Dart is much much better from a language point of view. If you are wondering why you should even care about Dart, then read ahead.

0. Dart is really flexible.

(Cuz lists start at 0)

Dart is a very flexible programming language in that you can write the code and then run it anywhere without any limitations whatsoever.

Mobile apps written in Dart with Flutter are cross-platform native apps; so they can run on both Android, iOS (like React Native, Xamarin, etc.). You can even write web apps and that code can run on any browser. From a developer’s perspective, the language’s flexibility and portability matter a lot. After all, who doesn’t want to be able to write some code and run it on as many platforms as possible?

Coding in Dart feels natural once you are familiar with the general Object Oriented principles. Still, fully functional programming is 100% achievable in Dart. Asynchronous programming with async/await and “Future” in Dart is consistent and harmonious. If you are a unit tester, then good news for you, because Dart has built-in support for unit testing; no need to add new libraries or frameworks.

Javascript follows a type-less philosophy because according to JS, type-less means flexibility. But devs often say that too much flexibility will kill your software. Sometimes you want to work with types, while sometimes not. And with Dart, you can do it — if you want. With Dart, you get the best of both worlds, plus you can switch to the other world when necessary. 😄

1. Dart embraced the open source ecosystem.

55% of developers said they are contributing to open source projects. — DigitalOcean, 2018

Developers love open source. In fact, the whole tech industry is in love with open source technologies. Dart won the hearts of many devs all around the world by embracing the open source ecosystem on day one.

Dart seems like a direct competitor to Java, which is a proprietary language Google is now having issues with, and in many ways, Dart is a thousand times better than Java.

When it comes to the Dart SDK, if you have an idea, you can implement it yourself or submit a proposal. If you see a bug, you can immediately report it, or fix it yourself. This is something you can’t really do with a proprietary language. That’s why, many a time, proprietary software gets stagnant and stale over time. But open source software is always vibrant and living.

When you use Dart, you don’t need a lot of things as you would in Java:

  1. You don’t need to care about licensing issues
  2. No one is going to sue you someday for using the language
  3. You can forget paying anyone or any company just for using the programming language —

Oracle recently announced that they will start charging Java Standard Edition 8 for “business, commercial, or production” use starting in 2019. To get all new updates and bug fixes, you’ll need to pay by the number of users or per processor.

With the ongoing battle between the two tech giants, more and more companies are trying to play it safe by moving towards OSS. After all, when you put in all your effort and expertise to build and distribute a product and work day and night on it, the last thing you want to see is all your money going to some other company’s bank account.

2. Dart is pretty easy to learn.

Learning a language takes time, effort and patience. It’s not just about learning the language, but also its ecosystem, the terminologies related to it, getting the proper tools and SDKs for the language, and then moving on to the popular frameworks and libraries available for that language. Even after learning so many popular languages like C, Python, Javascript (plus Typescript), Go, PHP, etc. I must confess that even now the thought of learning a new language gives me chills.

But when I had to learn Dart, I realized how easy and familiar it already was. In fact, as many devs have said about Dart:

You might already know Dart.

If you already have some programming experience in any language (doesn’t even have to be an OOP language), then you can already be pretty productive in Dart within weeks. I am not saying there’s nothing new in Dart, but the new ideas introduced in Dart are very intuitive and won’t take that long to master.

  • Dart supports both loose and strong typing: Dart is both a loosely and strongly typed language (without all the quirks of a loosely typed language). This makes it easier for developers to transition to Dart regardless of their programming background.
  • Dart syntax is simple: The Dart syntax seems extremely familiar even at the first shot. Even if you haven’t seen Dart code before then too it can be easily understood without straining. The Dart language is well structured, so if you already know C, Java, or C# then Dart is going to be very easy.

3. Dart is a good first language.

While I didn’t learn Dart as my first programming language, it occurred to me that it must be a very good language to learn before any other language. I wish Dart was there when I was starting out.

First of all, getting started with Dart is easy. If you are just trying it out, you don’t even have to install anything. Just hit the Dartpad URL through the browser. Secondly, the Dart team has a pretty good introduction and tutorial, and the documentation is rock-solid. Their own tutorial is easy enough to follow along and Google made it sure that anyone can get started with Dart as easily as possible. Lastly, the syntax is simple, the community is already pretty amazing, there are more and more people coming to Dart. Also, as Dart is very compatible with Javascript, more and more Javascript developers are finding it easy to transition over.

Thus, as there’s almost zero friction between the language and the developer, Dart has all the features a language needs to be growing fast and being adopted.

4. Dart has great tooling support.

Dart has rich tooling support. Almost every major Text Editor and IDE has great support for the Dart language. You can use heavy IDEs like Webstorm, IntelliJ IDEA, and Android Studio, or use simple editors like VS Code, Sublime text, VIM, Emacs, Atom, etc. So you are free to choose whatever Editor you are comfortable with.

For all the tools available for Dart, head over to this link.

5. Dart is a robust language.

Dart as a language, is very robust. Having been created by Google, its primary purpose was to leverage C-based Object Oriented Programming languages like C#, and Java. As it is also a general-purpose programming language, it compiles fast and is concise.

Dart is an open source, purely object-oriented, optionally typed, and a class-based language which has excellent support for functional as well as reactive programming.

Unlike C# or Java, Dart is not bloated at all. In fact, it’s a relatively simple, modern and highly efficient language to work with. It’s is a compiled language like C, so it’s way faster than Java anyway. Dart is also approximately 2x faster than Javascript. It’s type-safe and compiled with both AOT and JIT compilers (to learn about the benefits of that, keep on reading ). To learn more about the speed comparison, check this link out.

From a language point of view, Dart is pretty robust. It’s fast, reliable, efficient and as it’s used quite heavily by a tech giant, adoption in the community is soaring high. If you want to see how heavily Dart is being used internally by Google (and by other companies) then head over to this link.

6. Dart ensures productivity.

Apart from being simple, Dart takes productivity pretty seriously. Who doesn’t want to get more done with less code?

Primarily, the clean, intuitive, concise and simple syntax makes the Dart language very productive. Also, the built-in support for strong type checking makes it a very suitable language for large projects with a big team of developers. Dart also has a large collection of libraries and frameworks packed with it. You won’t have to recreate the wheel every time you want to implement a new feature. This saves a lot of time. Plus, all you need to do is drop in some code from the documentation and you are good to go. This makes you productive.

Language-wise, even though Dart is fully object-oriented, you can make use of it as a fully functional one. Also, there’s no weird catch to it, as there’s in Javascript. Therefore, you can do both object-oriented or functional programming with the same language. (bliss 😊)

7. Dart is used by Flutter.

Developers got really interested in Dart only when the Flutter project started getting more popular. Even though Dart was an amazing language, with great productivity tools, and amazing documentation right from its birth, who cares solely about the language when it’s not used in production by huge companies? But now, we are at the point where after learning Dart, you can actually do meaningful work with it. Now companies are using Flutter, and by default, devs are using Dart, in production. Plus, there’s a huge community of developers who are eager to share their knowledge, their experiences, and their learning journey with Dart. I believe this is just the right time to start learning Dart if you haven’t already.

I highly recommend you to read this article published on Hackernoon to understand why Google used the Dart language for their Flutter project. Mind you, Flutter is truly a revolutionary project from Google. Everyone knows that Google started the Flutter project to replace Facebook’s React Native. In fact, the Google team rightfully acknowledged that Flutter was inspired by React Native.

React Native devs find it extremely easy to get started with Flutter because all their existing knowledge is easily translatable. I used to develop apps with React Native myself, and I found it very easy to be productive in Flutter right from day one. But, I must say, Flutter has grown to become something more than just a mobile development SDK. Especially, with the announcement of the Hummingbird project, Flutter made it possible to go truly cross-platform. So, when Flutter makes it possible to share the same codebase (fully or partly), I believe devs will start valuing Dart even more.

8. Dart is backed by a tech giant.

When you invest so much time learning some new tech, you want to be extra cautious about the past, present, and future of that tech. After spending months learning something new, the last thing you want is seeing that tech go stale, deprecated or fall out of industry standards.

As far as the Dart language is concerned, you can worry about everything else, but you must never worry about the development and maintenance of the language itself. Dart is one of the fastest growing languages inside Google and is used by its internal products like Adwords, Flutter, Fuchsia, AngularDart, etc. Outside Google, companies like Alibaba, Adobe, MailChimp, JetBrains, are using this language in production.

Often, it’s seen that companies come up with new languages but keep them proprietary. Since Dart was open source right from the beginning, developers never even had to worry about licensing issues and all that nonsense. Hypothetically, even if Google goes bankrupt (yeah, keep smiling), as Dart is open sourced, it should never go down easily.

9. Dart solved a lot of problems, efficiently.

Dart can be compiled both AOT and JIT. Flutter took advantage of this fact, as using JIT compilation speeds up development (through Hot Reloading and stuff like that) and AOT compilation gives better optimization during release time. Part of the reason Flutter makes devs more productive is that it has Hot Reloading enabled by default. If you are a Java or a Swift dev and you have checked out React Native before, then you know how helpful the Hot Reload feature is. Hot Reloading saves a lot of time, and thus boosts productivity.

Dart seems to do what it does in a very efficient manner. I know what you are thinking though, “Javascript is already great, it takes care of every single problem I can think of, I can do everything with it, so why should I care?” Well, as a matter of fact, I’m a javascript developer myself, and I love the JS ecosystem very much. But I’m not blind enough to reject the best tool for a specific task. Javascript was never meant to be used so heavily. It was a simple scripting language created just to add some interactivity while browsing websites. Now Javascript is literally the jack of all trades. You develop web apps, mobile apps, desktop apps, servers, and do all sorts of crazy stuff with it. We are using Javascript in a way it was never meant to be used in, to begin with.

But Dart is different. From the very beginning, the team behind Dart had approached Dart with a cross-platform mindset. Dart solves a lot of problems more efficiently than Javascript because it was meant to solve those problems.

Then, even if JS is quite successful on the server, it wasn’t really designed for that. Dart is — which means that among other things, it has real parallelism in form of isolates. They are [supposed to be] lightweight, so you should be able to run a lot of them, they do run on real threads, and there is no locking, only asynchronous message passing (and if you ask, then yes, isolates in Dart are very much inspired by Erlang). — part of an answer on Quora by Ladislav-Thon

Conclusion

I’ve been developing applications and working on projects for a long while now. Getting paid for your work feels good, but that’s not the only thing you want, do you? Dart has made the developer experience so smooth that there’s almost zero friction between a developer and the dart language.

Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program. — Linus Torvalds

Dart is quickly replacing the need for other bloated languages. It’s fast and easy to pick up. It’s a great tool, solves a lot of problems and ensures productivity. So, let’s use it.

You might not think that programmers are artists, but programming is an extremely creative profession. It’s logic-based creativity.

— John Romero

And here’s a Dart-y poem to make you feel better:

When playing darts, it is agreed,A steady hand is what you need.

A good eye and a perfect stance.(For darts is not a game of chance!)

— The Internet

Outro

Would you like to add more to the list? Express your opinions in the comments or get in touch with me via Linkedin or Twitter. I’d definitely appreciate some claps if you loved the article. After all, who doesn’t like a round of applause? 😄

You can follow me around on Medium, Linkedin and Twitter to get notified whenever I publish a new post.

Who the heck am I, and what do I do?

Hi, I’m Nafis Fuad. I’m a Full Stack Developer and creative individual who designs + develops web & mobile apps. When I’m not coding, I write about tech, entrepreneurship, business, productivity,etc. For development, I generally use React, Vue on the frontend, and Node.js, Express and GraphQl for backends. Had been using React Native for mobile apps, until I fell in love with Flutter. If you want to work with me, or just want to say hello, don’t hesitate to shoot me an email or to drop a line here

10 good reasons to learn Dart was originally published in Hacker Noon on Medium, where people are continuing the conversation by highlighting and responding to this story.

Publication date: 
05/15/2019 - 08:08
Author: