This post is especially on a request. The main aim of this post is to help understand people on what’s what in the world of JS and make an informed decision if this arena is a good choice.
I personally think the JS Frameworks are here to stay and they will keep on prospering and progressing in future at least for the next 10-15 years. It will be a long time when there will be something else that will make JS frameworks obsolete. The explosion of JS Frameworks began after the introduction of NodeJS,the glorious JSRE ( Javascript Runtime Environment). It would be surprising to learn that NodeJS was initially introduced in 2009. So,for the past 7 years, many improvements from the open source community has honed it in several ways and recently it has become of the popular demands of the job market.
Before we jump into making decisions on the frameworks,let’s first understand what NodeJS is about. As I mentioned above and in my other post, NodeJS is just an JSRE. Ryan Dahl is the original author of this platform and the wiki on Node is a worth read. Prior to NodeJS, Javascript was used as a front end technology. It was used on the browsers to perform several operations. These included from making the web pages fancy to the introduction of wonderful world of AJAX. Since browsers were needed to render the Javascript, it is a no wonder that browsers have some kind of Javascript engine within them that help run the JS. Such a JS engine on the very popular browser, Google Chrome is called by the name V8.
V8, is top of the line,crème de la crème of Javascript engines and what the authors of NodeJs did is, they extracted this V8 from the browser and with some wrapping code of C++ around it, they were able to concoct a standalone Javascript engine and thus NodeJS was born. So NodeJS, is a standalone JSRE, which could be used just like any programming language like Java,Python,Ruby etc,. There are several advantages of NodeJs over other programming languages but that is out of the scope of this post.
When Ryan Dahl introduced NodeJS in 2009 at the JS Conf, it received a standing ovation. And just like any popular software language, it attracted lot of developers who in turn started writing frameworks around NodeJs. To my knowledge, the major frameworks that came out this sequence of events were MEAN, Meteor, Sails, Koa etc., Of course there are lot more such frameworks and you could do your due diligence before arriving at one, the most popular that are popular today are MEAN and Meteor.
MEAN: MEAN is a full stack framework which stands for Mongodb, ExpressJS, AngularJS and NodeJS. Using this framework, full stack applications could be developed with Mongodb as the database, Express for the web app framework and Angular on the front end and NodeJs for the backend.
Meteor: Meteor is also a full stack framework with NodeJS as its backend and I suggest you to read my post to get little more insight.
What I found personally is, both Meteor and MEAN are designed to be built on MongoDB. Although I don’t have anything against MongoDB, I somehow am not comfortable with the fact that it these frameworks are not database agnostic. Again, this is just my personal opinion and honestly there are about a million apps that are effectively using these frameworks so this formula apparently is a good one.
I have heard from many of my talented friends and colleagues that overall NodeJs and its frameworks are super awesome and they love working on it. So, what does it take a person to start working on either MEAN or Meteor framework? Here are some guidelines that you should consider.
- Do a little due diligence on NodeJS, I mean core NodeJS without the framework. Try to understand the inner workings of the language. Just to get you started, here is how to install it. I wrote it for Mac but it is equally simple and straight steps for Windows. Oh btw, if you are installing on Windows, then choose msi.
- Because both the frameworks depend on MongoDB, due diligence on MongoDB is also essential. Again, to install MongoDB, you can read this.
- Try to get webstorm ( or intellij). This is the best ide for JS development and even if you have to shed a little money on it, it is worth it. Tip: Try to see if you can get hold of a friend who is school. With a school email id, this IDE is free.Shake up all your contacts and find a student who can help you.
- Decide on a project. I am a strong strong believer in this. Think up of a project in your head and start working on using the above technologies.Without a project in mind, all the effort will be in vain and the satisfaction of learning something good can never be achieved.
Good luck.
