Why I am choosing Meteor for the foreseeable future for my projects

Hi everyone,

The last weeks there has been a lot of drama everywhere about Meteor. Like, this thread for example: Why I'm not choosing Meteor for the foreseeable future for my projects - #63 by shock

I got exposed to Meteor not so long ago; in fact, when I heard about it - I was unaware of its very existence. I’ve been a Rails guy for quite a long time, and I have been working in the technology field forever. I love to create new things. I am not a fanboy that runs behind a new library because other people think its awesome. I look at technology with the perspective from a development point of view and the commercial aspects when adopting new ones.

I completely understand why there has been such a negative spiral of talk lately. And, I would lie if I wouldn’t partially agree with most arguments and emotions. However, I believe there should also be an unbiased opinion about why I am choosing Meteor for my projects. I do not draw the crowd for a blunt medium article, but I believe I can at least balance it out by sharing my thoughts here.

1. Nothing has really changed at the moment
Yes, the roadmap has been announcement (poorly) and the way it has been, was quite damaging (of course, no official response on that will ever see daylight I guess). Even though the future is all about React according to MDG, I’ve seen so many announcements and promises, it wouldn’t surprise me when the very the next thing would simply replace React at the very last minute. So, if you are a big Blaze fan who does killing with Jade and Iron, well, nothing is going to stop you.

2. Nothing compares at the moment
Yes, there is Phoenix and Rails and yada, yada, yada. However, Meteor is still one of the best working platforms out of the box. Period. It’s living up to the seven principles it promises:

  • Data on the Wire
  • One Language
  • Database Everywhere
  • Latency Compensation
  • Full Stack Reactivity
  • Embrace the Ecosystem
  • Simplicity Equals Productivity

Of course there will always be someone who disagrees. However, if you ever read the manual at least once, these principles are perfectly dumbed down to understand for anyone that Meteor is living up to them. It doesn’t promise MVC, it doesn’t promise other things.

3. Vendor packages that have already reached maturity

With vendors like Kadira, Xolvio, Meteor Toys and many, many others, the Meteor platform is a force to reckon with for additional tooling. I’ve worked with Rails for years, and touched TDD only after years when the right tools came available. Monitoring for web applications have been lifted up to the next level; from console output to visible graphs; following what is really happening. Toys to quickly tweak and track what is happening with cute buttons. Tools that have forever changed the way I look at web application development.

4. Reactive programming
Rails for example is still scratching the ice of the truck outside in this regard. Face it. I hate to use MDG marketing slang - but it is what it is - tomorrows solution today. There will surely be another Meteor-like thing next year. But how will you deal with things now? Web application development has always been fast paced, and I bet someones mommy on it (sorry, mine has been archived) it will be all about being reactive.

5. Integration
With methods and DDP, consuming and integrating data is a piece of cake. DDP clients are available for Ruby, Python, Java, C# and JS. Meteor has a lot of features that aren’t even tapped in yet.

6. Serious production apps
Already have various companies Meteor projects running in production. They have evolved the future of Meteor as a platform by sharing their knowledge and made pavements. Its no longer 0.x (the platform, not the company), and even if there are many, many things to improve (which is normal to any software solution), there is no real pain involved. If you think that a couple of gigs of memory are a huge pain, you probably have never tried clustering a WAS or JBOSS before.

7. Enough material to go around
A lot of complaints are about tutorials, documentation and being outdated. Well, the manual is very complete and - admitted - not perfect, it has been my best friend. Other initiatives like the Meteor Cookbook might include outdated examples, but it has been a compilation of experience for over two years. Don’t start learning to make risotto when frying an egg is still on your TODO. The Meteor homepage has good startup tutorials, and you can find a lot on MeteorJS Club
and start learning. If you worry about production applications, you should be open for investing in your projects by learning and purchasing resources.

There are plenty reasons why you shouldn’t choose Meteor for your real projects:

  • you have no experience with web application development and all the pains that come with it
  • you want a super all featured product, open source and free and expect premium support and fit your specific use case
  • you want to import Photoshop templates by typing in some magic command and have a fully animated website with parallax fancy banners and never worry about events
  • you have found a better alternative

Just wanted to share this.

:heart:

57 Likes

great post.
I was initially sold on Meteor by its documentation. I was trying to build a project with websockets and node.js somewhat ‘manually’. Browsing the left hand column of the Meteor docs was pretty much everything I ever needed at the time, all in one framework! I couldn’t believe it.
It really does let me focus on my application specific goals.
I love Meteor and I’m so thankful for what the folks at MDG have put together.

10 Likes

Really ? What can you “embrace” in practice ?

From the manual:

Meteor is open source and integrates with existing open source tools and frameworks.

Starrynights. Iron CLI. Meteor-io. Etc. Etc.

CoffeeScript. ES2015. Stylus. Sass. Less. Jade. Bootstrap. Etc. Etc. Etc.

Cucumber. Mocha. Jasmine. Etc. Etc. Etc.

Webpack. Angular. React. Material. D3. Raphael. Etc. Etc. Etc. through packages. But you can also integrate with Phoenix, Rails and Express. Etc. Etc. Etc.

Oh and just to add some non-commercial: webSphere, Oracle, SAP. Etc. Etc. Etc.

Hail DDP. Hail JavaScript.

2 Likes

Great testimonial. When I discovered Meteor, it was the only data visualization stack that connected Mongo to D3 with pure Javascript. There were other implementations of Mongo+D3 by way of projects like Lithium PHP, but Meteor was the first to offer a data visualization stack that was complete Javascript. Even moving D3 into the community for support, Meteor remains maybe the best open-source data visualization platform for healthcare apps that I know of.

5 Likes

I remember the first days looking how to MVC things and do Railsie magic with Meteor. It took six to seven weeks to actually understand why it was really awesome. It took another six weeks to grasp things I saw as quirks and oddities to useful and educational. How painful it was not to read the manual, how great the help was from MeteorChef and MeteorJS Club. I was death scared for all these new things, like Velocity (just announced as official testing solution at the time) - and still fighting Cucumber.js to play nicely. Hah, remember scaffolding :wink: :wink: :wink:

Meteor will never be perfect, however the people I have met online and in real life while being busy with Meteor have made it so.

1 Like

Remember that thrill when you installed Meteor the first time, created a project, and then you opened up several browser windows and watched the magic happen?

I still get that.

13 Likes

Totally agree with you. I’m already some years (three in March) in Meteor dev and it’s still my favorite hammer for many nails. It makes prototyping fast and finishing up nice looking web apps easy enough. It’s fun. I’m concentrating on what we need and don’t have much to do with the plumbing.

I don’t like React and even less Angular, though. If MDG drops Blaze completely it wouldn’t be a huge problem either, as long as someone maintains it, I wouldn’t mind. It’s quite good as it is today.

But if something else pops up I wouldn’t mind giving it a try, as well.

4 Likes

I have been struggling with a side project that i choose to write with React and Meteor. So far, it’s interesting but hard. And Meteor doesn’t really help with it.

And then i went back on my main project, written with Blaze, where i had to add a feature with some UI stuff i had never touched before. This was surprinsigly easy and fast (with Blaze !)

I still think Meteor got something very right with Blaze and Tracker. However if they choose to dump Blaze, all that remains is some backend tech i don’t find that exciting. Hopefully, 1.3 with true modules support will bring back the fun.

2 Likes

Great post @miningsam ! I think I’m in the same boat at this point. To me Meteor provides rapid prototyping and fits the need for most projects I pursue. At this point in my career, those single facts I believe give me (or any Meteor Developer) a distinct competitive advantage when pursing jobs. I’m not out to make the next Twitter so why do I need a tool built for that. I need to be able to make a great, reliable product fast, and at this point, Meteor seems to be the best tool to do that.

I haven’t dived into React, although I’m quoting a project now that I may use it for. However, I would use it simply to learn React (not because I think it’s going to produce a better product). At the end of the day, I could get the job done in Blaze in a more timely manner, but I can’t keep pushing off React since that’s the direct it appears MDG is going. I agree with @vjau that it just seems like MDG got a lot right with Blaze, and while I understand the reason for getting away from it, it’s still frustrating.

1 Like

Embrace the Ecosystem

That’s a strange conclusion.

  • Meteor is based on nodejs. The nodejs world is moving to node 5.x, meteor is still using 0.10.x
  • When using nodejs, the ecosystem is npm. Yet, there is no easy way to include a npm package. Of course there is a meteorhacks/npm but still we should not rely on a hack to use npm packages

I’m looking forward 1.3 too. 10s to rebuild the project each time I save a file is frustrating.

But Meteor is still a solid framework to me, thank the team. Sometimes I doubt my choice though.

4 Likes

Blaze is super-simple, easy-to-use and very nice in general. I love it. Its only problem is that if your project grows in size, it’s going to pose some problems that are solved in React.

In my project, at some point I had to work around Blaze not work with it. I just needed more things (most importantly managing UI state). Blaze is meant to be simple, yet simple didn’t cut it for me anymore. React offered everything that Blaze had, plus more. So I rewrote everything. The problem was that the UI portion of the project was already some 5k-10k lines of code and it took weeks to rewrite everything, but it was worth it.

I also have gone through the troubles of rewriting Iron Router code to Flow Router code. I think that took 1-2 days.

But compared to all of the other frameworks that I’ve used… Meteor offers so much flexibility and simplicity that the time spent on rewriting those few things is incomparable to the time I’ve had to spend on finding a way to do something a little bit out of the ordinary in any other framework. Before I used Meteor, in another project I built my own WS implementation to push updates to clients. That took a whole week to implement, secure, test it etc. Ridiculous. Meteor lets me do 10x more than any other framework.

For me, these changes in direction (e.g. leaving Blaze for React) are exactly what I want to see from Meteor. All other frameworks are left sitting in the dust, because they are doing things the old way.

2 Likes

I have worked with many different frameworks using many different technologies and programming languages and I must say it has never been so fun, quick and a joyful to get things done than with meteor.

Meteor is innovation and the best modern day framework for working on projects that need to be modern. There is no other framework out there that works as well as meteor that can deliver integrating such a wide existence scale across so many platforms ( iOS, Android, web, desktop, etc). It also like someone mentioned very well with existing systems per DDP.

2 Likes

Working on my second commercial Meteor project. As long as it suits the project, then use it. If not, then use a different framework.

For em its easier to get things done than PHP, even though PHP has more “support”.

I realy love Meteor and the (now old) meteor way, but the deal breaker for me was the lack of official SQL database support.

1 Like

Nice write up. Cross post and tag on Medium, please!

1 Like

very insightful post !

1 Like

Per last week’s Meteor Night, Meteor is officially moving toward Apollo as a fully-supported data access technology. So sql will be as accessible as Mongo. :slight_smile:

Hi Sam @miningsam

overall nice post!

Could you please elaborate the quoted part a moment. I am not sure if I get what you want to say.

Thanks and cheers
Tom