Kicking The Tires on AngularDart

Posted on by Tero Parviainen

I've been playing around with AngularDart, the up-and-coming Dart web framework from the Angular team. Not only because we have a Dart Flight School event in Espoo this weekend, but also because it's an interesting piece of technology to me as an AngularJS developer: Many of the ideas and features that will eventually ship with AngularJS 2.0 are already in AngularDart today.

In this article I'll talk about a few of the observations I've made about AngularDart, mainly comparing it to AngularJS. For a prior article about similar subjects, do take a look at Victor Savkin's excellent "AngularDart for AngularJS Developers".

Read more →


The Three Watch Depths of AngularJS

Posted on by Tero Parviainen

Update: A revised version of this is now in the official Angular docs.

There are three different mechanisms for watching a value on an Angular scope: Reference watches, collection watches, and equality watches. The difference between the three is in the depth in which they watch their values.

Choosing the most appropriate watch mechanism is important, not only because the three mechanisms behave differently, but also because they have very different performance characteristics.

This short article describes the differences between the three watch depths.

Read more →


Make Your Own AngularJS, Part 1: Scopes And Digest

Posted on by Tero Parviainen

Update: "Build Your Own AngularJS" is now available as an early-access eBook.

Angular is a mature and powerful JavaScript framework. It is also a large framework with many new concepts one needs to grasp before becoming truly effective. As web developers flock to Angular, many of them face the same hurdles. What exactly does the digest do? What are all the different approaches to defining a directive? What's the difference between a service and a provider?

While the Angular documentation is getting very good, and there's an increasing number of third-party resources, there's really no better way to really learn a technology than to take it apart and see what makes it tick.

In this article series, I'm going to build an implementation of AngularJS from the ground up. As I take you through it step by step, you'll gain a deep understanding of exactly how Angular works.

In this first installment of the series we'll see how Angular scopes work and what things like $eval, $digest, and $apply actually do. The dirty-checking logic of Angular may seem somewhat magical, but it really isn't, as you'll see.

Read more →


What I've Learned About Making ClojureScript Applications With Pedestal

Posted on by Tero Parviainen

Pedestal is an interesting beast. It aims to provide tools for building single-page ClojureScript webapps with the simplicity and elegance we've become accustomed to in Clojure. It is also perceived as a difficult technology to master with several new concepts to grasp, some of them quite subtle.

I think there's some truth in both claims. In this post I'll share my experiences with Pedestal so far. It is loosely based on a talk I gave at the ClojuTre event earlier this fall.

Read more →