Sunday, January 3, 2016

Weekend Reader, New Year's Edition

Microsoft’s modern JavaScript Engine is going Open-Source

Chakra, the JavaScript Engine that powers Microsoft Edge is going open-source!
This is very interesting, since Chakra is currently the fastest JavaScript engine and the engine with the widest ES6 compatibility.
Microsoft already showed that Node.js can run on top of Chakra. I am curious if this will be a scenario picked up by the open-source community …

However right now, the step to open-source has not yet happened. According to the announcement it will happen “after the holidays”.

Visual Studio Code is Open-Source

Open-source, once scolded as “cancer”, is becoming the new black at Microsoft. The sources of Visual Studio Code are available on Github.
Also Visual Studio Code now supports extensions.

Exploring the new .NET “dotnet” Command Line Interface (CLI)

Apart from the fact that .NET Core and ASP.NET 5 will be cross-platform, Microsoft is also working on a simple cross-platform CLI for .NET… It very much looks like Node/NPM!
I am really looking forward when .NET development becomes as accessible as Node development is today. With the possibilities to develop .NET on Mac/Linux and to run .NET application on Linux servers. Combine the elegance of C# and the dynamic compilation of ASP.NET with the simplicity of this CLI and you get a package that looks really productive for all kinds of enterprise applications … hard times for Java :-)

Free eBook: Modern Java EE Design Patterns

Hmm… I did not read the whole book, but I rather skimmed it. In my opinion this book is not about Java EE. It is about microservices, and it claims that microservices are the “modern” way for developing enterprise applications. It shows some interesting patterns for implementing applications with microservices.
But it also shows that Java EE does not offer much for microservices and in appendix A it lists a set of technologies that are (in my opinion) better suited for implementing micorservices.

Free eBook: Professor Frisby’s Mostly Adequate Guide to Functional Programming

A very readable introduction to the concepts of functional programming in JavaScript. Currying, functional composition, functors … learn all those constructs and many more.

Apps: The iPad Pro has an App Store problem

Apps on iOS sell for unsustainably low prices

I really like my iPad Pro. For most scenarios it replaced my iPad Air (execpt reading in bed). However the app landscape of optimized apps for the iPad Pro really is disappointing. This article has an explanation why.

Funny: Bret Victor - The Future of Programming

A really interesting presentation from 1973 … or is it? Funny in a geeky way but also very insightfull.

Tweets of the Week

Sunday, December 27, 2015

Weekend Reader, Christmas Edition

Angular 2 is officially beta

We’re now confident that most developers can be successful building large applications using Angular 2.

The developer guides are already amazingly polished. If you have not yet started to look into this new framework, now is a good time.

We have closed the hype-cycle

The post is a good high-level overview comparing the basic concepts of React and Angular 2.

At the beginning of the year we have seen posts that were explaining React to developers that know Angular. Now we have posts that explain Angular 2 to developers that know React…

Angular 2 for Desktop Apps

Angular 2 promises to be a framework not only for web development but also for mobile development. This article show how the reach can even be extended to the Desktop by using Electron.

Jazoon in Bern: The future of Web Development

On April 4th there will take place the Jazoon TechDays on the beautiful Gurten. Traditionally Jazoon was a multi-track Java conference. For the next year however the organizers came up with a new concept of a one-day conference that focuses on a single topic. The topic for the upcoming conference in Bern is “The Future of Web Development” and they already have an interesting line-up of speakers (and I heard the rumor that there will even be more international speakers announced soon …).
I suggest you should get your ticket for that event soon, even if you are not living in Bern. I was lucky and could convince my employer to sponser my ticket :-)

Redux Screencast

Dan Abramov, the creator of Redux, created an amazing series of screencasts for Egghead. It is one of the most instructive screencasts I have watched the whole year. And it is available for free!
If you want to learn about Redux and how it approaches the ideas of Flux you should definitely watch these short lessons.
But even if Redux/Flux is not a topic that interests you, the screencasts teach a lot about using ES6 and test-driven development in JavaScript.

The future of JavaScript is (almost) now

Every once in a while, a piece of technology is situated in the right place at the right time, and it ends up taking over the world. […] ES6 is new foundation for what may be the most important programming language of the next several decades.

The article is good overview over the JavaScript ecosystem today and its relevance in the future.

The End of Dynamic Languages

Working in dynamic languages is fine if you’re just adding a feature on top of the pile of features. But anything else is impossibly difficult.

Not everybody agrees with the future relevance of JavaScript. According to the article the time for dynamic languages is over and it is time to move on.

Tweets of the Week

Monday, November 23, 2015

Weekend Reader, Week 47

Highlights from AngularConnect 2015

The post is a very good overview about the progress of Angular 1 and 2.

Angular 1 ist still making progress. I am looking forward to the component syntax and also to the component router and the new internationalization features which both are shared with Angular 2.

I am a bit concerned about the ever growing scope of Angular 2:

  • They plan to deliver their own command line interface called Angular-CLI for integrated tooling
  • They want to support APIs in 4 languages: ES5, ES6, TypeScript and Dart
  • They want to support the MV* pattern but also the Flux pattern for separation of concerns
  • They want to support different rendering targets besides html to support native mobile applications
  • They want to use WebWorkers to run most of the Angular code in a seperate process

I am really curious how all these features will turn out in regard to complexity and developer experience.

JavaScript Community in Bern

Just a reminder for the "Bärner JS Talks" happening next wednesday.

Very interesting topics, I am looking forward to all of the three talks.

The Thing about Bower

There is something going on around bower

It was proclaimed dead on redit

One reason for that proclamaition was this discussion on github.

As a reaction the bower team posted the following post: Bower is alive, looking for contributors and started a crowd funding initiative.

Meantime in the Microsoft World, VisualStudio is still betting on the bower horse and improved the integration with a new Bower Package Manager UI for ASP.NET 5.

Personally I am currently a fan of modern JavaScript workflows based on NPM/Webpack or JSPM … no bower for me anymore.

If you want to get rid of bower, the following post might be a good starting point: Why We Should Stop Using Bower – And How to Do It

New Rules for JavaScript

Kyle Simpson ist known for having other opinions about “best practices” in JavaScript. In this video he questions many common practices and rules of current JavaScript programming.

Business: Nobody Wants Your App

An interesting article as an interesting following up on "Don’t base your business on a paid app"

The article shows the story of a startup that wanted to create an app … and was not that successful.
Interesting is that they had a good visibility, but nobody wanted to download for the app:

One download for every one thousand web views.

The conclusion:

The app world is so bloated, it’s overwhelming to the consumer.

I see that effect myself: Some years ago I was browsing the App store to detect new cool Apps, but now I can’t remember when I actually opened an App Store the last time…

Tools: Classeur

I am using Markdown a lot. For my courses and for blogging. But I am still looking for my favorite Markdown tooling. For some time I have been using StackEdit for blogging. Recently I discovered which makes a neat impression. I am writing this post right now in Classeur …

Programming Humor: FizzBuzz Enterprise Edition

Fizz Buzz is a famous programming exercise, suggested to be used in programming interviews. A solution in JavaScript might look like this.

Somebody made an enterprise version of Fizz Buzz in Java … Hilarious!

Tweets of the Week

Saturday, November 21, 2015

Quo Vadis JavaScript?

JavaScript went through a makeover extraordinaire with ES2015 which was finalized this summer.

This is not your grandma’s JavaScript any more:

import React from 'react';

export default class Catalog extends React.Component {
    buy(product) {
    render() {

But it seems this was just the beginning… the metamorphosis is far from done for JavaScript.

For future versions of JavaScript there are many proposed new language features. Among the most outstanding proposals for me are decorators, async functions and private state

Some years ago nobody would have believed that the following snippets are (will be) valid JavaScript.


export default class CatalogStore {
    onSearchLoaded() {

Async Functions:

async function fetchJson(url) {
    try {
        let request = await fetch(url);
        let text = await request.text();
        return JSON.parse(text);
    catch (error) {
        console.log(`ERROR: ${error.stack}`);

Private State:

class DataObj {
  private #data1;

  constructor(d) {
    #data1 = d; 

  get data() {
    return #data1;

I think its now safe to say that Silverlight and Flex were failed attempts to bring other languages than JavaScript into browsers … but looking at the snippets above, it might sure look like some C#/Java infiltration squad sneaked into the Ecma building …

Babel and TypeScript both already support decorators and Babel also supports async functions (TypeScript is working on it). So you can use those language features right now in a modern JavaScript project setup.

Of course the JavaScript ecosystem/community is going through a tremendous development and learning process right now. We are slowly getting the new features piece by piece and figuring out how to use them … while that slow metamorphosis process can be healthy, it can also be painful…

In the future, once JavaScript has completed it’s metamorphosis, people might legitimately ask why we did not just integrate C# or Java into the browsers … ?

Tuesday, November 3, 2015

Karma and Protractor Illustrated

For my JavaScript / AngularJS workshops I created two illustrations to explain how unit-testing with Karma and end-to-end-testing with Protactor is working:

In both setups the code is running in the browser. The main difference is, that with Karma I am testing isolated ‘code-units’ that are run individually, there is no complete running application involved.
In the Protractor setup a complet running application has to be availabe and the test drives a browser to interact with this application.

Wednesday, October 28, 2015

Next Teaching Engagements

During winter 2015/16 I will deliver inhouse courses about development with JavaScript and AngularJS to teams at Puzzle ITC, mtrail GmbH, Mobiliar, Postfinance and SBB.

I will also deliver public courses for DigiComp and TechTalk:

At DigiComp my next course “Frontend-Entwicklung mit AngularJS” is scheduled for December 17th & 18th 2015 in Bern.
There are already enough registrations so that the course is guaranteed to take place, but there is still room for more participants …

I am delivering a three day course “Front-End Development with JavaScript, AngularJS and Visual Studio 2015” for TechTalk.
The course will take place:
- November 16th - 18th 2015 in Vienna
- January 25th - 27th 2016 in Zürich
… there are still places left.

Update 2015-12-01: Here is a nice summary from a participant of the course in Vienna.

Monday, October 26, 2015

Weekend Reader, Week 43

Angular Connect

Last Week was the Angular Connect conference in London.
Unfortunately Angular 2 is still alpha … the highly awaited beta version was not released at the conference.
Besides Angular 2, TypeScript and Reactive Extensions seem to be the technologies that you should start to look into for future develoment with Angular.
The sessions are available on YouTube, I am still catching up, but the qualtity of most sessions is very high.

The Angular team also updated the docs for Angular 2, definitely worth looking at …

JavaScript Community in Bern

Next Meetup of “Bärner JS Talks” is on November 25th.
Next Frontend Pizza is on November 3rd.

Don’t base your business on a paid app

The App and Play stores have turned out to be exceptionally poor places to run a software product business for most developers.

DHH (the creator of Ruby on Rails) argues against the myth of profitability of mobile app development today. Apps are a great distribution channels for services, but they are not the product you should try to make money with.

SVG Porn

Nice logos made with SVG.

A cartoon guide to Flux

Flux is not easy to grasp. This illustrated guide is a funny intro into the pattern.

The State of JavaScript on Android

the fastest known Android device available today performs 5× slower than a new iPhone 6s, and a little worse than a 2012 era iPhone 5

The post is highly interesting. It seems that iOS users are much better off using modern web sites and the Android ecosystem is actually threatening to hold back the progress of web technologies …

Is Eclipse Dying?

Eclipse is not the shiny thing every developer loves any more … but is it really that bad and is the predominant IDE dying?

Video: Web Development in 2020

Web Development in 2020 - Steve Sanderson from NDC Conferences on Vimeo.

Steve Sanderson looks into future trends of Web Development.
An interesting Presentation with a very funny intro.

Tweets of the Week

Related Posts Plugin for WordPress, Blogger...