Latest news about Bitcoin and all cryptocurrencies. Your daily crypto news habit.
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:
- 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.
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.
Disclaimer
The views and opinions expressed in this article are solely those of the authors and do not reflect the views of Bitcoin Insider. Every investment and trading move involves risk - this is especially true for cryptocurrencies given their volatility. We strongly advise our readers to conduct their own research when making a decision.