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
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.
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.
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:
- You don’t need to care about licensing issues
- No one is going to sue you someday for using the language
- 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.
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.
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.
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.
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.
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
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
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? 😄
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…