Angular Review - lennartdeknikker/frontend-applications GitHub Wiki

My experiences

Angular might not have been the right framework for this assignment since it automatically adds a lot of files and components that aren't necessarily useful. When starting to work with this framework there seem to be a lot of things magically happening, but later on, it became much more clear what every file does and how to apply changes to those files. I had no time left to start working with features like angular routing, services and pipes, but I'd still like to try and find out more about those.

Comparison with other frameworks

The guest lectures on frameworks made it seem like Angular was the worst of all frameworks, but it helped me to understand the concepts of frameworks in general. Angular uses typescript and is kinda pushy in using the right structures. A lot of people think those features are annoying, but when starting to work with a framework for the first time, those features are not that bad, since it makes it harder to make mistakes or get bugs that are not that easy to fix.

Course Discussion

In class we compared the different frameworks by standing together and talking about our experiences. The consensus was that every framework has it's pro's and con's depending on the application it would be used for.

Angular

Angular is perfect when building enterprise software, but might be too big when building simpler applications or one page views. One of the more unique features of Angular is the use of two way bindings. In most other frameworks bindings only go one way.

React

React seems to be a bit similar to Angular, but has better support and is better for Facebook-like applications. We discussed the fact that we might not want to use software that is created by Facebook and thus would be less trustworthy, but you could say the same about Angular's creator Google. Most frameworks are open source. Anyone can propose changes. Point of discussion was what would happen when one of the people that created and/or maintain a framework would disappear. Probably some other people will take over when something like that happens, but it's uncertain what something like that would mean for the future of a framework. That is something you should consider when picking a framework, because Amber, once one of the most widely used frameworks for example is now not that well supported anymore.

Vue

Vue would be better for building applications from scratch. There's not a lot of 'magic' happening and it does not create any unnecessary files by itself. There's a lot of support for this framework, since it's most used at this moment.

Svelte

Svelte is the new kid on the block. Svelte applications do not include framework references. Instead, building a Svelte application generates code to manipulate the DOM, which may give better client run-time performance. There's not a lot of support, but it's way simpler in design than angular. The people who have been working with it for the past few weeks say they had a lot to figure out themselves.

Documentation

The Angular documentation at angular.io has been really helpful. When starting this project, I followed the tutorial at angular.io, which was easy to follow and explained all concepts very rigorously. There were a lot of things in the tutorial that were applicable to our own projects. I had already followed the tutorial a while ago, but it was really easy to only just go over the steps that I needed to refresh my memory on. The tutorial also formed a good base to start building your own application on. A lot of the components and services that were created in the tutorial were easily transformed to be used in our own applications.