Meteor vs. Ruby On Rails
Originally posted on Quora by Yad Faeq:
- In their core, both of them have brought a group of packages Rails from Ruby gems, Meteor from npm packages and packed them together to serve a a modern Web Framework.
- Ruby On Rails is a web framework that is widely known for asserting the MVC architecture, which sometimes Meteor can be referred to as well for being a Framework asserting a neat approach at Web applications.
This is an interesting question and topic.
MeteorJS and Ruby On Rails might have some similarity, but it can’t exactly be compared regarding their technology and approach to serve as a framework. That being said, each of them can be used to build interesting solutions with proper design patterns.
Meteor is an ambitious approach to build web applications, but it’s not actually a framework exactly. It contains a set of Packages (npm)s that claims to introduce a new pattern for web applications, or let’s just say an organized / compact solution to avoid the headache that would be needed to build from scratch with NodeJS.
Here is what their docs say:
They’ve built them the hard way(Older frameworks). Meteor makes it an order of magnitude simpler, and a lot more fun. You can build a complete application in a weekend, or a sufficiently caffeinated hackathon.
Meh! If it was by this description, it would only be good for prototypes and not sure how one can use it as a web framework to build something like early Twitter, AirBnB or SoundCloud, compared to Ruby On Rails bringing Ruby gems and packing them together in a more solid shape & form.
While for Ruby On Rails, it’s actually a mature framework and still being developed, currently at version 4.2 soon 5.x.
Early Rails version did lack of some essential server tools, database implementation so and so. But from version 2.x above, it has introduced a list of popular yet efficient gems (npm in JS) as a part of it’s Framework, which always makes it more settle compared to Meteor due to it’s community.
Here is a breakdown of what Meteor offers:
Meteor components are:
- CLI: Isobuild
- Server: Node.js, Connect, LiveQuery , Fibers
- Com. Layer: DDP+ EJson
- Browser: Tracker , Spacebars, MeteorBalze, Minimongo, Session
The Cordova section can be used for the mobile apps perhaps.
The simplest form of Ruby On Rails diagram would look like something like this:
Or:
As you can see Rails itself contains Ruby gems that offer most of what the JS frameworks on top of NodeJS haven’t had a chance to offer. Hence Meteor is trying to bring some of them together and build some others like Tracker andBlaze.
Here is what a version of Ruby On Rails in npm packages would look like:
- Node.js
- Express
- Grunt or Gulp
- Mongoose
- A pub/sub package
- Websocket
- Karma or Jasmine
- account/oAuth libraries
source: What is Meteor.js?
Well, now Meteor offers all this as a one product using the existing ones or building some of them in house.
Few things to keep in mind:
Web applications had this mantra of MVC and every one have to follow MVC or else. Nowadays, there is more happening in the view, patterns like MVM, MV-V, M-API, M-Middleware-API have been introduced.
There are things that Meteor and it’s collection of packages can offer which Ruby On Rails might not. Specially when it comes down to real-time & noSql stuff.
There is a hype around everything these days, the same way there was one big hype around Rails and developers trying so hard to use it for everything.
I don’t know how Meteor can actually be called a killer solution (Why Meteor will kill Ruby on Rails) with some serious limitations (my opinion).
Also, I don’t want to sound biased or like beating on Meteor, because I use both Meteor + Rails actively and in some cases Meteor on Rails, or having Rails listen to Meteor forming an API.
Meteor is still version 1.1, I’m sure in near future it will adopt lots of new patterns and packages that can be relied on 100% for bigger web solutions.
Meteor and it’s future project is interesting and how it’s community helping it come up. Some stats:
As of February 2015, there are 9,600 questions tagged “Meteor” on Stack Overflow,[18] 3,100 followers for the Meteor topic on Quora,[19] and 22,700 stargazers on GitHub.[20] On November 6, 2014, over 4200 developers from 134 cities in 40 countries gathered in person to celebrate Meteor Day.[4]
However, if this tiny cute shadow was Ruby On Rails in the world of Web Frameworks:
This is what comparing Rails to Meteor would look like:
Again we are just comparing to understand the two :), but if I go into a little detail, Rails 5 and it’s upcoming updates offer crazy wide amount of features.
Here is an interesting read from a developer that moved from Rails to Meteor:
Beginning My Meteor Journey, from a Rails Guy
If a someone turned into a web developer where their first step have been NodeJS, then Meteor is endlessly useful to be used as a their solid Framework. While for folks whom have used Rails, or Django or even older frameworks, they would be fine to mix match npms to give the same solution.