Dart is Exciting

I’ve been a Web developer for a long time and I only remember three moments in my career that excited me this much. Let me talk a little bit about them

The First Time

I discovered web development a while ago, I used classic asp with vbscript to do stuff that was pretty cool back then. Enterprise web applications were in their infancy and the Internet boom was about to explode.

This excitement took a long time to dissipate, the explosion of web technologies available didn’t slow down, EVER. I moved on to PHP, tried .NET, worked on Java, got a job doing Coldfusion, went back to .NET when C# took over Java, and finally PHP+Laravel hit me in the face.

But this doesn’t end here, then jQuery came along, and development moved from the back-end to the front-end. That was cool.

Node

Years after, the second time in my life as a developer that got me really excited. Node.js showed up, and JavaScript in the back-end got my knees shaking. Tens of thousands of developers pouring great packages, hundreds of companies and startups backing the technology.

Angular

If Node.js wasn’t enough, suddenly JavaScript evolved from the jQuery spaghetti poison that was spreading, invading the Internet, to the glorious heaven of MV* client-side frameworks.

Two way model binding, routing, view engines, directives, shadow DOM, web-gl, and don’t forget SVG graphics. All in the browser, all in the JavaScript that I love.

Then Dart Happened

But Angular wasn’t enough, the newest most exciting moment in my career has come in the form of Dart. Open source structured web programming language that makes JavaScript developers look like amateurs.

I read a list of things that Seth Ladd loves about Dart a while back when the language was still in technology preview and TypeScript wasn’t even publicly around. I have to agree with him after a lot of playing around with the tools I have, oh by the way, if you use WebStorm for serious web development, the Dart plugin is amazing at the time I write this story. I’ve reached a point where the only thing I need to use the Dart editor for is to check for SDK updates.

  1. Dart is class based. Single inheritance only, but who cares. Interfaces declaration, libraries definition, most of the patterns you know from using JavaScript translate instantly and easily to Dart classes.
  2. The syntax is very familiar. If you are a JavaScript, Java, PHP, Ruby, or even C# developer, you will take less than two hours to learn the syntax. Yes that is true, I was writing a web sockets library on day 1.
  3. Types. Types are optional in Dart, but they help an awful lot. Types only express your intent to the compiler, but during development they help to check for errors. The editor will detect those errors if you religiously use types and save you a TON of time that you would otherwise spend on the Chrome Developer Tools trying to find why that string in JavaScript is not behaving as a string.
  4. Exports to JavaScript. Yes, only features fully supported in JavaScript will ever make it to the Dart language. This might sound like we are going to miss a lot, but trust me when I tell you that is a wrong statement, Dart even has reflection!
  5. Works on the server. Oh yeah, I didn’t have enough with Node.js no, now you can work on the same language in the front and back … ends. Start sharing the code baby!
  6. Generics, interfaces, inheritance, modules (libraries), lambda expressions, and reflection. Because a real language is not a real language without them. You will drool when you realize that you are using generics and reflection in your browser code.
  7. AngularDart. This is just the chocolate covered strawberry on top of your butterscotch ice cream sundae. The guys at Angular were not happy being the coolest guys in the Valley, they had to port their magnificent framework to Dart.

Those are my reasons, there might be more, or the might change. The guys at Google are adding a lot of stuff and changing some things around after listening to the devs working with Dart, however they are not going to be changing one thing any time soon:

I freaking love Dart, and I want to build cool things with it.