A few weeks ago, I went to a Meteor meetup. On this occasion, I had the chance to attend a highly instructive debate about the future of a framework I like. I will try to give you a quick summary of everything I heard.
Of course, without sponsor, there is no event, I would like to thank 42mg's team, an open source software which aims at helping people with project management. I would also like to thank the PCF to provide us a place for this meetup in its headquarters, a supernatural concrete building erected by Oscar Niemeyer. The inside of the building is particularly inspiring.
Finally, I address a special thanks to Breaz.io, a platform for developers to meet recruiters, for their help.
Why people use MeteorJs?
The main lesson I learned from my MeteorJs experiences is that it is freakingly simple. If you doubt this, I invite you to read another article I wrote a few weeks ago about how to deploy a MeteorJs application in less than 10 minutes.
To quickly summarize this point, I would say that by nature, Meteor is strongly monolithic, it limits the number of technologies you can plug on it. The consequence entailed is Meteor works out of the box. If you need to add a component, go to Atmosphere and if you find your package, add it in one command line and it will work.
This makes Meteor the quickest framework to bring value into your application you started from scratch. One of the attendees told us about his experience: "Using Meteor made me save 2 work-months on my project"
The criticism we hear about Meteor
- The thing I heard the most about Meteor is that it is slow and heavy.
- One attendee explained that the inner Meteor builder, when operating a large number of files, can become slow and that he even had to use Webpack with meteor to operate on his builds.
- The package manager, Atmosphere, is nonstandard and not npm compliant, so, if you want to add a npm package, rewrite it, or wrap it yourself.
- You can't add easily add every technology on a Meteor, for example, you are almost married to MongoDb
- There is currently no bright example of large Meteor application used by a strong company mainly because its package ecosystem is too much insular against the overwhelming npm's one.
- We also heard that you can't plug a technology and play. You can't use a part of the solution and use another templating solution for example. It lack modularity. That's the monolithic part.
What is planned for the future and why it is uncertain
- React is coming with its packages and community to shake the little Meteor ecosystem.
- NPM is coming.
- Meteor nested methods are still using callbacks instead of promises, but it may change soon.
- As a result, Meteor is initiating a transition phase to get close to npm. This entails the frustration of the trained users that see the features of their beloved framework relocated. These guys are worried to see Meteor loose Blaze and become very far from what it was initially.
- According to a guy in the assembly: "The migration to Meteor 2, if that ever sees the light of day, has all chances to be a tough one".
But it has all chances to be bright
- Has money. The company raised more than 11 million dollars at its beginning and still has money left, furthermore, they won't stop here.
- Has an active community
- Is moving forward. Contributions, patches, versions, evolutions are happening relentlessly.
- Is adapting and evolves quickly
- Has a promising 1.3 version
The 1.3 version of Meteor is really willing to change the framework, indeed, it opens to asynchronous comportment, but better, it adds a package import supporting npm that seems stronger than Webpack
- Meteor is a full stack boilerplate solution for js web project. With it, you have a backend AND a frontend solution to develop. It was shown as the only viable competitor since SailJS hasn't enough traction.
- Has an outstanding adoption curve
A lot of people want to try Meteor, it shows that this framework generates interest from developers.
Meteor is blessed with a great community, far more active than Sails' one. It also offer a good usability and a fine kickstart for your project, saving about 2 months with no business value.
Meteor needs guidelines
A nice project, Mantra, showed up, it is aimed at providing guidelines to build a cutting edge scalable application based on Meteor. It allows npm uses and provides a testing environment which is great for Meteor newcomers
As one might understand, Meteor is on the brink of a revolution. Its identity as a framework is at stake and it may regress to a rather complete kickstart. But, in the current process, we can witness hope from its community, the company who backed it and the technical choices of its maintainers.