Posts Tagged

meteor

Which Javascript framework should I learn first

This is probably one of the first question that comes into every mind of new developers. The framework world is cluttered with hundreds of Framework, all promising to be the best, the fastest and the easier to use, but which one is the most suitable for new starters.

In this post I am going to share my opinion on where to a new Javascript developer should start and give a small review of the most used frameworks.

What is a Javascript Framework

A JavaScript framework is an application framework written in JavaScript. It differs from a JavaScript library in its control flow:[1] a library offers functions to be called by its parent code, whereas a framework defines the entire application design.[2] A developer does not call a framework; instead it is the framework that will call and use the code in some particular way. Some JavaScript frameworks follow the model–view–controller paradigm designed to segregate a web application into orthogonal units to improve code quality and maintainability. Examples: AngularJS, Ember.js.Wikipedia

In a nutshell, Javascript framework will provide you a complete structure to support your development by forcing specific patterns and guidelines. Even if different framework support you in achieving the same result, the implementation differ quite considerably, and knowledge can not be transferred between them.

What are the best Javascript Framework

This paragraph is going to cover the most used framework available on the market right now. The framework are shared in “No particular order”.

Angular 4

Angular was one of the first frameworks to be pushed to the public bug in 2009. Due to its maturity and the large community, AngularJs is usually the first choice around new developers.

Angular has recently received a complete upgrade. The new version, due to be a complete rewrite, is not compatible with the old one. This means that many of the example that can be found around the internet, may not work. This problem will fade overtime, but now, it can obscure proper result.

Pros

  • Mature with 8 years of experience
  • Two way data binding
  • Highly testable
  • MVVC architecture

Cons

  • Complete rewrite of version 2, so old example may not work
  • “Scope” in angular can be tricky to learn at first
  • MVC could be hard to learn if not familiar with it

 

 ReactJs

I will start this paragraph by specify that for many people reactJs is not accepted to be a framework, as it does not fulfil the definition above. React ( if used by itself), is just a view engine. Due to its popularity, and the amount of available plugins I have inserted it in this list.

React has been created by the creator of Facebook and instagram, and has been firstly been released in 2013.

Even if younger than angular 2. React is catching up quite quickly.

Pros

  • Very efficient
  • Good with SEO, because Server side render is possible
  • very active community

Cons

  • It is only a view layer
  • It needs other components to fully work
  • Learning curve quite steep, due to its different approach in creating components.

MeteorJs

Meteor has been initially created in 2011, and like the other framework has a large active community. This framework offer full stack capacity covering all aspect required for a successful Web/Mobile App.

Pros

  • Easy to scale

Cons

  • It is designed to work with Mongo DB
  • Need good understanding of NodeJs

 

VueJs

Vue has been created in 2014 uses the MVVM design paradigm and offers two data binding. Vue is one of the youngest framework around, but it is gaining speed and growing it community.

Pros

  • Easy to understand
  • Good Documentation
  • Small in size

Cons

  • Offer too much flexibility
  • Most of the community is NON english speaker

My preferred framework

Now that we have defined the framework above, it is time to share, what are my personal opinion on this matter. I had the change to try a couple of the framework above. Both cases the learning curve has been quite steep to start, and it made me realise that most of my energy where used in learning the Framework requirement without using lots of Javascript.

In my case, this was not a problem as I have a strong JS knowledge, and therefore could focus on the framework requirement. But I personally think that all new developers should not really use any framework until they have fully embraced the basic javascript knowledge.

As I mentioned above, all the javascript framework available, uses slightly different structure and implementation, reducing your employability to a specific market share.

This may not seem a problem at the start when everyone is looking for the greatest and coolest, but things ca go wrong, and in a very short amount of time, and in that case having experience on a framework that is not in use anymore could be a problem.

Conclusion

It is essential to be comfortable with plain javascript first, before moving along and learn different framework.

Having the basic knowledge will be a great advantage when learning a new framework.

All framework have a specific segment of the market, and as such, deep research should be done before adopting one as the decision should be made by a project by project bases.