Want to develop in MeteorJS? sure just paste this in your console and everything you need to get started is all set:
curl https://install.meteor.com/ | sh
Compare that to other on which you need to install wamp, xampp, mysql, php extensions, java, rvm, ruby, python, NodeJS, virtualbox, vagrant, gulp, so on and so forth. It is just way too much and pain in the ass, while in MeteorJS, is just a matter of simply copy-pasting that one line of code and you are done.
Project creation and management is very simple
Want to create a new project?
meteor create-project myproject
Want to run the project?
Want to reset data of the project?
The commands are very intuitive and really easy to remember. Nothing is been easier than that if you compare the workflow to other frameworks.
Setting up the database is really easy
In normal circumstances, you need to install MongoDB first in some virtual machine or directly to your laptop. But the good thing about MeteorJS is, the moment you create a new projet, it comes with a MongoDB database with it. You can access it by
Instant HTTP JSON API
In normal applications SPA (single page applications), you have to do the following:
- Create the migration files to create the database tables
- Develop the classes that manipulates those tables via some ORM
- Develop the RESTful JSON API that will retrieve the data from database and serve the data as JSON
- Tables/fields being created on the fly the first time you referenced it in the code. So the database is the one that is actually adapting to your code changes, not vice-versa. Made possible by NoSQL technology.
- There is no need for ORM, since the JSON objects is being stored as is in the MongoDB. Thus no need the process of conversion of relational data to Object Oriented data.
- MeteorJS handles the fetching of data from server to client, called DDP ( Distributed Data Protocol ). DDP has a JSON-based syntax and sends messages similar to the REST protocol. Additions, deletions, and changes are all sent across the wire and handled by the receiving service/client/device. Since DDP uses WebSockets rather than HTTP, the data can be pushed whenever changes occur.
- You don't have to manually write codes that calls AJAX request nor DDP. Since MeteorJS maintains a mini-database in the browser. You only insert/update/delete this mini-database as if you were changing a local database. MeteorJS handles the synchronization of that mini-database to the actual database in the server using DDP.
Those features is something extra-ordinary compared to other framework out there but it comes with a price. Since all the components is bundled together, it is usually hard to introduce 3rd party tools to your infrastructure. For example, it is using its own packaging instead of the usual NPM, Blaze instead of ReactJS among other things. It might fit in some cases but use it with discretion to not overdo it.