1

I am curious as to the fundamental reasons why we choose MongoDB, Node.js, Express.js, and AngularJS?

Here are the reasons I can think of: MongoDB works well with JSON and data models, is faster than SQL; Express and Angular gives the stack one language in Javascript; Node.js is non-blocking, event based, and supports concurrency; Angular is a wonderful front end framework.

Any other reasons? Also, how would you address the people who have an innate disdain for server side Javascript?

Thanks!

OneMoreQuestion
  • 1,693
  • 3
  • 25
  • 51
  • 1
    It actually depends upon your project requirement, node.js is an awesome platform to build scalable web apps but its not a solution for every problem..same is true with mongodb – swapnesh Jul 27 '15 at 17:22
  • @swapnesh what kind of project is Node.js best suited for? – OneMoreQuestion Jul 27 '15 at 17:25
  • 1
    Upvoted. Don't know why everyone else is hating. I actually remember you from another Q. My understanding is "simplicity." We use MongoDb for custom fields. We use AngularJs because it's easy to get data and bind it to the model. We do not use express or Node. I think for every piece of the stack - the answer is "speed and ease of development." – VSO Jul 27 '15 at 17:28
  • @OneMoreQuestion I haven't downvoted you and I believe you can check prev stack answers http://stackoverflow.com/questions/5062614/how-to-decide-when-to-use-node-js – swapnesh Jul 27 '15 at 17:28
  • @VSO I dont think `speed and ease of development` is a primarily cause of choosing the stack – swapnesh Jul 27 '15 at 17:32
  • 1
    Firstly you need to think asynchronously and secondly for heavy DOM manipulations you need to know Angular well – swapnesh Jul 27 '15 at 17:33
  • 1
    @swapnesh: I would absolutely argue that speed and ease of development is the reason for angular in complicated CRUD applications. The databinding is way easier than with anything else available. It also plays well with bootstrap to make simple layouts fast. For MongoDb - all I can say with certainty is that it allows users to make custom forms far easier than SQL (in which case we have JSON to fields and parse it every time and it's a mess). – VSO Jul 27 '15 at 17:35
  • _MEAN_ means _JSON_ everywhere without any translation from one format to another. Just _JSON_. Uncle Douglas should be proud. – Ivan Jul 29 '15 at 21:00

1 Answers1

4

Well, people wanted to replace the LAMP stack (Linux, Apache, MySQL, and PHP/Python/Perl) for a very long time. When JavaScript was made possible to run on the Server side ie NodeJS, it paved way for a full development stack which is the MEAN stack.

The first advantage of the stack is the single language throughout the whole application - JavaScript. This made it easier for a person with JS knowledge to create a full on working application. This also made way for front end developers to explore more into how server side programming works.

Some startups and organizations thought that using a stack with one language will help them in limiting their resources. And easy delegation of work among the developers.

Even though MEAN stack is an awesome alternative to the traditional LAMP stack, it is still in its early stages. It is adopted only by few ambitious startups, but not by bigger organizations. They are still sticking to the legacy technologies. Also the components of the MEAN stack which is Angular, Express and Node are still in their childhood stages. There are no proven and complete use of the MEAN stack on a full scale solution.

Well organizations like Walmart etc. used Hapi.js and were successful in it, it tempts the other organizations to go forward with it , but also makes them skeptical on using it since replacing the already existing technology will be a bigger headache.

Also since a lot of the current employees are trained in Java, Python etc, developers in JavaScript are very few and JS is almost considered as an additional language to be known for a Java developer and the likes. JS hasn't been considered as a single language on its own.

Maybe few years down the line, the MEAN stack will prove itself a noteworthy alternative to the traditional stacks.

I work in the Retail Domain and a big organization. We are actually planning to use the MEAN stack for our inside projects. But no one ever gave a simple thought of using the MEAN stack in PROD.

EDIT: One more important reason these stacks are tempting is because they are all Open Source. Say MongoDB for example. Owning the software license every year is a big hit on the profits of the organizations with DB's like Oracle SQL etc. Going with an Open Source DB is a very cost effective option. But still they are skeptical on using it for Production.

v1shnu
  • 2,211
  • 8
  • 39
  • 68