It’s with heavy heart that I’m deciding tonight to leave Meteor in my dev toybox - and it’s funny but it’s not even about how it uses MongoDB (I know a lot of detractors say MongoDB sucks).
My brother and I have been trying for the past two weeks to get a project off the ground and every time we want to expand a feature we run into issues with outdated packages, hunting around for blog tutorials, and just plain old working against the code rather than working on our core idea.
I’m going to keep tabs on Meteor because I think it’s core idea is fantastic and a breath of fresh air in the web development world. But for projects that pay the bills and personal projects I’m just going to use Rails and Ember.
Instead of just whining and leaving, here’s what drove me away:
-
Packages slowly became outdated and worked only with other old packages that the community had moved on from. Example: A pretty neat login package only worked with IronRouter, and IronRouter is no longer maintained properly. Too many choices none that were properly backed by MDG.
-
No baked in Router. Again, the entire Meteor ecosystem split into two groups: IronRouter or FlowRouter. Too many choices none that were properly backed by MDG.
-
Blaze discontinued, React is the way forward (for now lol). Again, the entire ecosystem is split, and just when I was getting the hang of Blaze, React is declared the way forward. I have very little time to dedicate to my side projects, I want to flesh out ideas, not play around with code.
-
No model validations, no models? A lot of options to choose from (notice a pattern?) but none officially supported. I know MongoDB is a non-relational database, but still - no validations of any kind?
-
Look what’s currently trending: Why Meteor needs a new Data Layer? - #12 by jeffm - A new data layer? People barely grasp the one in place at the moment.
Basically it boils down to this: Meteor’s tutorial is fantastic, show it’s strengths immediately, but falls short when you want to build anything of significance. If you want to keep going and build something that’s worth something good luck sifting through sketchy README files on Github and outdated tutorials. Then when you finally have a feature working, look: Meteor has moved on to $flashythingX
.
I will most definitely come back in a year and see where Meteor is, it has an awesome idea, but it’s slowly losing it’s focus pandering to the hipster programmer and not the actual “9-to-5”.