Angular 2 is ugly!

This is just a rant about Angular 2. You should not take it too seriously, but you should take it seriously.

High hopes

I loved Angular 1. Sure, it was complicated and hard to learn, but the concept was clear. I always had HTML-looking HTML files — no script in between, just tags and attributes. I used CoffeeScript, to get rid of all the distracting curly braces and semicolons of javascript and have more of a ruby or python feel. Code should be easy to read for humans, not easy to parse for a computer. I mean, c’mon, it’s 2016, does a computer really need to be told the end of a line by a semicolon?

Yes, Angular 1 had its problems: the service factory confusion, the scopes, the style guide (after we had one) did not work well with CoffeeScript, … . So I had high hopes for Angular 2 … until I saw Angular 2!

The disappointment

Yes, Angular 2 fixes some of the problems of Angular 1. But it fixes too few and creates too many new ones. I mean, TypeScript, seriously?! I am not against typed languages — they can be very helpful. But who really has problems with types in Javascript on a regular basis? At least I don’t. I have more urging problems. Why do we still need those braces (curly, round, square)? Did anyone of these guys ever look at code with all the brace noise in there? Did anyone of these guys ever think about people with non-US-keyboards, who you need to press several keys simultanuously across the entire keyboard to enter a curly brace? Keyboards were optimized to type letters and words, not curly and square braces!

Javascript

I can still remember the feeling I had, when I saw ruby or python code for the first time. It was just letters and words, more like a book you’d read. Much more pleasing to humans than those special characters in C or Java. Javascript, on the other hand, was always ugly, dirty and seduced people into writing non-elegant code. I fear this will never change with this language. Angular 2 missed a chance here by choosing to push TypeScript.

Annotations

And then there are the annotations. I can still remember when J2EE got out of hands. The framework became too complicated and to create one service, you had to create ten different files. Then J2EE introduced annotations, which tried to fix the symptoms — but the root cause was still there. Why they did not think about their entire design and instead patched it up with annotations is still not comprehendable to me. And now I see Angular 2 doing just the same! Patching up a flawed system with annotations — fixing symptoms without healing the disease. This signals the beginning of the end for me.

IDEs

IDEs — why are all these people jumping back onto the IDE train with Angular 2? I have worked with IDEs for half of my professional life. I didn’t know any better, until I started working without an IDE — what a relieve and productivity boost this was. Today I am happy to not having to use an IDE most of my time. IDEs simply cover up bad designs in a language or framework! If you need an IDE, your language or framework is flawed. Again, IDEs try to attack the symptoms, while leaving the underlying disease untouched. If you can’t remember a method signature without the help of an IDE code completion, then your method signatures are fucked up. Using an IDE to cover that up is simply a psychological suppressing mechanism. Don’t do it, if you want to stay healthy, productive and happy! I am not going into all the other bullshit an IDE „automates“ for you so that you have no idea what’s going on, if it does not go according to plan…

Summary

I come to the end of my little rant about Angular 2. I am disappointed and I cannot fathom, that very bright and intelligent people come up with ideas like that. To me, Angular 2 is just downright ugly — ugly to read, ugly to write and ugly in its concept. What do you think?