Friday, February 6, 2015

Weekend Reader 6

Agile Critics

The current state of agile is critizised by some more prominent figures:
Martin Fowler: Not Just Code Monkeys

Developers should not just be passive receivers of product backlog items. This is where most Agile transitions fail.

Dave Thomas: The Death of Agile
The first ten minutes are hilarious, where Dave is mocking the commercialisation of Scrum in the past and the new trend of selling “Enterprise Agile”.

Facebook announces React Native

With React Native Facebook invented yet another approach to program mobile applications in JavaScript. They promise to combine the best of native apps and the web. As far as I understood they use native components of iOS/Android (no HTML, no browser, no WebView), but they wrap them in JavaScript/JSX and use the JavaScript runtime on iOS/Android to orchestrate the application including the rendering. A very interesting approach …
However they are not chasing the “pipe dream of write once - run everywhere”. You will write apps dedicated for iOS or Android, however the programming environment will be the same. They call it “learn once, write anywhere”.

On a side note, the React Native presentation comes with a strong statement in favour of native app development and against web/hybrid mobile apps.

Yet Another JavaScript Framework with big Ambitions

Aurelia is a next generation JavaScript client framework, created by Rob Eisenberg, the creator of Durandal. Rob was for a short time part of the Angular team, but he changed his mind and decided to go his own way … the result is a modern framework that builds on ES6 and WebComponents. Sounds interesting, but sceptics might say:

The JavaScript ecosystem is broken

In the interesting article Generation Javascript the desolate state of the JavaScript ecosystem is revealed.

Not every week-end project should be made public and available through Bower. The Javascript community needs to learn to filter itself.

In the same direction goes: Why we should stop using Grunt & Gulp or my own post: Gulp is the Wild West

Client Side Templating: Good or Bad?

There has been some recent discussion about client side templating (like it is done by most modern JavaScript frameworks like Angular, Ember and also React):

The challenge was
- The problem with Angular
- Angular and templating

It reminded me of a debate from some years ago:
- Progressive Enhancement is Dead
- Progressive Enhancement: Still Not Dead,
- Progressive enhancement is faster

This time there was a very interesting reaction:
- Experimentally verified: “Why client-side templating is wrong” .
I like the conclusion that is backed up by data: For typical (line of business) web applications the advantages of the client-side rendering approach outweight the disadvantages by far. For public facing sites, where displaying initial content matters and functionality is only a second aspect, client-side rendering can be slower and optimizations with server-side rendering can be worth the effort.

You should start looking into ES6

ES6 will bring a lot of changes. JavaScript codebases will not look the same once ES6 catches on. Features like the arrow functions, template string and especially generators will change the face of JavaScript substantially.

The following videos give a good introduction to what is coming in ES6.

ES6 the future is now:

Netflix JavaScript Talks - Version 7: The Evolution of JavaScript:

To get started quickly with using ES6 now, this is a good tutorial: Javascript in 2015

Learning Promises

Promises in JavaScript are not the easiest concept to grasp. However due to the asynchronous nature of JavaScript they are a very important concept, that can and should have a major impact on the architecture and structure of JavaScript applications. I learned a lot from the following presentation: Promise-Based Architecture

Tuesday, February 3, 2015

Angular 2.0

When I am teaching my AngularJS workshops, there is usually a question about the future of AngularJS.

The Angular team announced Angular 2.0 at ng-conf Europe . There was quite some buzz after that announcement.

I think most of those reactions were premature. I am pretty sure there will be a sensible migration scenario from Angular 1.x to Angular 2. The Angular team at Google themselves will come up with a migration path as soon as Angular 2 will be better defined. And there is such a big community around Angular, that I am pretty confident that this migration will be pretty well supported and documented.

For current projects, I therefore recommend to use Angular 1.3. I would not wait for Angular 2.0, since it’s future is still pretty unclear and it will take a while until it is released. I would not recommend evaluating another framework just because of the announcement of Angular 2. As I said above, I strongly believe that there will be a viable migration path once Angular 2 is released. Also the concepts that build the fundamament of Angular (like databinding, directives, dependency-injection …) are not changing from Angular 1.x to 2. Therefore if a team learns to write Angular apps now with 1.3, this will be a good investment also for Angular 2.

I recommend to listen to episode 16 of Adventures in Angular for more information and assurance about the future of Angular and the topic of migration.

Related Posts Plugin for WordPress, Blogger...