Meteor is great! Why is not more popular?

Huh. Meet wakanda.org When some new guy joined the team and decided they needed to chase Angular because it is popular, the community has become 50% pessimistic. Because while it was positive in absolute terms, in relative terms it was like abandoning 90% ready product to chase Google fad.

Guess what they did then? Deleted the forum. Now they communicate via some slack clone.

Now when I have checked how they’re doing, I see that they have even abandoned Visual IDE developed for years. Though they could’ve become Sencha competitor (Meteor could too)

So I don’t think we should underestimate the reason of the crowds especially intelligent developer crowds and call for Orwellian PMA.

The irony is that the takeaway from your post is as pessimistic as the ones you’re complaining about. But yeah last year there was a lot of FUD, people don’t like lots of major sudden changes and uncertainty and it was reflected on this form as you noted.

But I think this will improve in the coming year, most of the FUD was emotional/social rather than rational and all the changes were to the better. Also those who complain the most are the loudest on this form, I’m sure there are many who are silently satisfied and busy producing.

3 Likes

But I think this will improve in the coming year, most of the FUD was emotional/social rather than rational and all the changes were to the better.

I completely agree. I’ve been maintaining a couple of smaller and bigger meteor projects without too much legacy leftovers throughout Meteor’s entire transition. Some of them use Blaze and others user React. For me the biggest worry was about Kadira. I loved it and still love it. Its clear, user friendly and very easily integrated into any Meteor project. Arunoda stopping let me into a thorough investigation about what equivalent I should use, but there was none… Not because its Meteor, but simply, because there is no out of the box SaaS that allows me to drop a package and use it without going trough some setup pains and including multiple agents.

So… no. Meteor was not to blame anything in that sense besides maybe their communication towards future plans that up until now have been very smoothly integrated without pain.

Its typical human behavior. Compare it with the EU economy. If everyone shouts that the economy is failing. The economy is going to fail. If spirits are up, the economy goes up.

I’m sure there are many who are silently satisfied and busy producing.

True that!

6 Likes

What problem did you have? I just deployed a few days ago if you have any doubt

It’s mostly the 2 things I discussed above - the uproar when they considered switching to React primarily, and the uproar when NPM support was finally delivered, but the tutorial became more much difficult and they stated we should refactor our projects because the backwards compatibility is “not permanent”.

This also raised the question of “well, when is it not going to be backwards compatible anymore, and exactly how?”. For example, Atmosphere. We all rely on so many atmosphere packages. If they move to full NPM are those just gone? Will there be any way to convert them?

Also our primary project is very big, and having to suddenly add import statements to hundreds/thousands of files, and reorganize our entire project, was a change we did not want to do. We actually held off (and still are holding off). Management does not see a reason to do it if we have no need, and I agree.

Now with lazy loading coming soon, that actually gives us a benefit/reason for doing the refactor, so it seems reasonable. But if they were to remove backwards compatibility before delivering a feature like this? That would not have been good imo.

In the end, it’s hard to convince someone to invest much time in learning a system that is going to be changing, and noone wants to start a big project just to refactor in a few months.

While I have been a big Meteor fan (who fought to get it as our main platform at our work place) I can’t say I was content the whole time either, I had a lot of worry about the direction. MDG just isn’t the best at communicating, but as of so far, while I had my periods of worrying, no major issues have came up yet that have made me unhappy with Meteor.

Prior to all these issues, Meteor had a very good name, and I seen it being talked of positively on reddit a lot, etc. But considering the React and 1.3 things happened within 6 months, it kind of ruined the name, then Apollo got focused on and ppl thought Meteor was dead. If you check google trends, Meteor was steadily growing until around this time.

If you want more information about what we worried about, feel free to check my posting history. I wasn’t always a happy camper, and wrote a few novels on here expressing my concerns lol. But all is good still!

Sounds more like people had a problem with the JavaScript community moving fast than with Meteor (and the hate was misdirected). As things evolve and new standards form, Meteor would have no choice but to change with those things or face extinction.

Eh, to a point. But to be honest, a LOT of the problem was very bad communication.

Let me take you on a trip of what went through many of our minds…

It wasn’t just “React support” at first. They said they were going to do a complete switch to React. And for Blaze support, they were going to make a package to use Blaze inside of React.

React was pretty new at this time, and of course, there’s going to be a backlash as people don’t want to be “forced” in to a specific view layer, and it seems other users would be out of luck. They updated their comments on the situation, but it was still somewhat vague, and for months people didn’t really know what was going on in to the future.

Then with 1.3, all they talked about for months was NPM support finally coming. You can use NPM packages in Meteor. Awesome, right?

The excitement died very fast when people went to check out the new guide/tutorials, and rather than “Meteor with NPM support”, what they seen was very different. The “my first Meteor project” tutorials had nearly double the amount of code that the original had, to do the same thing.

Unluckily, we hired employees right before this to assist with our project. Our job applications were simply looking for front-end developers who knew JavaScript. That’s all you really needed to know pre-1.3 and it was easy enough for them to pick up. But the tutorials were no longer targeted at that type of user. The tutorials confused the heck out of our new employees. Before, you can just hop in the tutorial, with little code you see so much magic, and really have a general idea of the Meteor mindset. Now, taht’s not the case. And a big problem for us, we had just hired employees that had to be trained.

I had to end up training them myself, as DiscoverMeteor was too old, and the new tutorials were not sufficient.

A number of us mentioned this wasnt really good for a “my first project” tutorial - it definitely did not help users in that situation. We recommended multiple tutorials - one similar to the old for new users, and put the new one in the guide for “Best practices”. I don’t believe they ever did this, and I’m sure it hurt many peoples impressions of Meteor.

Furthermore, even experienced Meteor users were surprised at what they seen in this “New user tutorial”. Import statements everywhere??? The response was “This is not Meteor - I moved to Meteor to get away from having to do import statements! What’s going on?? Is my project even going to work???”

I was personally afraid to even update.

It’s only through comments on the forum where I found out that there was backwards compatibility for the old Meteor file structure (client/lib/server folders and no imports). But there was a catch - “backwards compatibility is only temporary because we’re moving to NPM”. No more information than that really.

Now put yourself in the position of a business with a large application with thousands of files. How would you feel to know that you are only going to be compatible with Meteor for an undetermined amount of time? And what would the benefit of this new system be? It would not help our project at all. (Lazy loading was not yet announced, so there was no true benefit, it was just a refactor we “had” to do.)

Around this time, they announced Apollo, the new data layer. Also, they modified the actual Meteor page. They used to have a bunch of key points about what Meteor was - including things saying how it was easy and pleasurable to use, and fast to work in JavaScript (I do not recall exact wording). Basically, they completely removed those things from the marketing.

Again, horrible communication. It looks as if Meteor was dropped for Apollo. It looks like they aren’t even targeted the few things that made Meteor “Meteor”. Is Meteor even going to be the same thing in 6 months? Are they just going to keep making you refactor without any more focus on being pleasurable to use or quick development time? Are they really betraying their whole user base who loved what Meteor is NOW, and are they giving that up to potentially get some more hits from NPM users…?

Then take a look at Meteor. Now Blaze they officially announced was not supported anymore. They seemingly are still focusing on React (even though they said Blaze/Angular/React would be “equal”). They are going to be dropping Atmosphere for NPM in an undetermined amount of time (with absolutely no information on what we are going to have to do once that happens - do we just lose all the atmosphere packages???). They seemingly were not focusing on speedy development anymore after changing their marketing. So what’s left of Meteor that made it great? The data layer.

But what about Apollo? The team moved to working on Apollo. That IS a new data layer. And their marketing thought this was a wise time to focus on how Apollo will be available for ANY NPM project to use… WITHOUT having to use Meteor, you can just use Apollo in any NPM project!

What does logic say at this point? Meteor itself is seeming to lose support on every aspect of itself. And now the team has moved to Apollo, which is the new data layer, which was the single best part of using Meteor, and anyone can install Apollo in to their project by itself without needing Meteor???

Looks as if Meteor was abandoned at that point.

Of course we see now, that Meteor was not abandoned. But the whole situation did not seem that way for much of the time this was happening. Poor communication made every step look worse and worse. It made users worried (including myself). Rather than saying something to alleviate these worries, they either responded vaguely, indirectly, or did not respond at all.

Even to this day, I don’t really have an idea what’s going to go on with Atmosphere. I hope they would have some sort of tool to help convert the packages to NPM, but I have no idea if that will happen. And if it’s anything like the NPM support in Meteor, you might have to jump through some hoops to refactor some of the packages to work (if bindEnvironment-similar code does not work).

Regarding imports, they should have prepped users beforehand. They were excited expecting Meteor + NPM, not a trade-off. They did not even annoucne anything about backwards compatibility officially - we had to find out on the forums. They have lazy loading soon, so that’s not as painful. But it would have been much better if they just communicated that they will be keeping backwards compatibility going until at least lazy loading is ready.

Regarding all this refactoring required, it would be nice if they give us some tools to assist with any major refactors.

Regarding tutorials, it was an easy fix, I’m not sure why they still have those god forsaken “My First Meteor Project” tutorials up there that are much more difficult than someones first Meteor project should be.

Regarding Apollo… that whole situation should have been a positive thing, but the way it was communicated made it more worrying than anything, especially when the marketing changed directions at the same time. Just made it look like Meteor was dying (this is where those rumors actually came from).

Without any communication, most of the changes proposed just seem unnecessary more than anything. People want the software they love to become better and better, and it sucks if your software begins to lose the things you love, just to add some new features that will not help your project at all. Makes users feel like fools for supporting Meteor, if they will be abandoned in order to try to make Meteor reach further. It loses trust. In marketing, there’s not many things that hurt your image more than losing trust of your customers.

Again, I want to stress that MDG still hasn’t made any major mistakes (outside of communication), and I hope it stays that way.

But I can’t say users did not have a legit reason to complain, or blame it on JavaScript. Most of these issues could/should have been handled better.

6 Likes

The funny/ironic thing is if someone started using Meteor a while ago, and was living on an island with no clue what was happening in the JS world for the last ~1.5 years, they’d still be a happy user :slight_smile:

Nothing has changed, the stuff that worked before still works, there are just many more ways of doing things now and choices to make. Just like in regular JS where a new framework/lib becomes popular every week.

jQuery 3 was just released - I bet there are a 100000 mission critical sites still using it, but you won’t hear a peep about it online because its not cool anymore and hasn’t been for a while. A new lib from Facebook is going to be headline news and cause companies to abandon their current stack and jump ship.

This is just how the crazy web world works these days. You can’t please everyone. Its like a bloody social network, to stay relevant you have to keep doing something new and get those Likes aka Stars :smiling_imp:

1 Like

Great post on the history of meteor and explaining why people doubt using it. This is the answer to why meteor is not more popular and/or looked down on.

1 Like

I agree - a totally complete analysis, Spyridon. I opened this topic saying how much I love Meteor. I do. It was its simplicity that I love. A telling point is that on none of my projects have I moved beyond 1.3.4.1. I appreciate the ability to use nodejs, but too many changes make me suspect of later versions, and I refuse to upgrade until I hear otherwise. I take advantage of ‘Meteor Classic’ binding, still use Blaze, and use only import for when I need them for npm modules.

1 Like

I think this is something you can pinpoint as MDG making a bad decision (“everything global!”) and then correcting their mistake (“no, actually let’s use imports like every other Node app”), except that part of the community had trouble adapting to the new, “better” way. Blaze vs React is another example of this.

It just goes to show how hard it is to find a balance between keeping things simple (globals, Blaze) and embracing the ecosystem (imports, React). Personally I think MDG made the right call, but I can see why there’s a debate.

2 Likes

Meteor is so cool, I have already finished three projects with meteor and blaze, i don’t care about that it’s great or not, i heavy hope meteor grow up always. I think about the ruby on rails is very fast to develop before i meet meteor, but it changed when i try to create my first project, I was shocked by the meteor design and the meteor packages, awesome meteor, thanks to meteor creator and contributor.

I really enjoyed this article that closely relates to this forum topic. https://medium.com/@rkstar/a-journey-back-to-meteor-6fa513bd42c0

2 Likes

Good capture @Spyridon. But I think you answered very well the question “Why the existing users got concerned last year and half?” but not “Why Meteor is not more popular?”.

Meteor started very early, the Node.js ecosystem and NPM were still growing, React was not even there, the ecosystem was very different and fresh. Today npm is the largest package registry in the world and React made the 11 years old promise of web components a reality. Furthermore 2015 introduced major changes to the JS language with ES2015.

If MDG didn’t open Meteor to NPM and ES2015, the framework would’ve been detached and competing with the NPM ecosystem and that’s not wise. Thus the changes were necessary and they were to the better, but as you noted, the communication with the existing user base could have been much smoother.

But folks, this is behind us now, we know how the events unfolded and I firmly believe that today’s Meteor is much better positioned to be popular then the one two years ago. Yes there was uncertainty, yes the refactoring was painful, yes we’ve to write extra import statements, yes the communication could have been smoother, and yes the trust was shaken at some points. But major changes are never easy and I firmly believe MDG did the right thing to keep Meteor relevant. So I’d urge the community to move forward and inject some positive tone to this form to make the experience much more pleasant for the newcomers and everyone else thus contributing to making Meteor more popular.

Looking at things objectively, as of today, we’ve a much more flexible and capable framework then what we had two years ago, it’s still backward compatible, we’ve a better guide/docs, new packages, redis-oplog, Galaxy hosting, access to NPM packages, Apollo data layer, open source Kadira, dynamic imports, and the core is still improving. Meteor came a long way in the last two years and we’ve many reasons to be positive, but I don’t think it’s getting the marketing and credit it deserves.

A more fitting title would be: Meteor is great, let us make it even more popular :slight_smile: .

4 Likes

I think there is also another reason, it has to do with the business model. This depends ofc on how IT companies work in different countries but in many countries its the same. Big key players in the IT industry have a big network of authorized resellers and partners. Microsoft, oracle, ibm are really good with this. Companies tend to try to become partner (gold silver etc) with these key players in order to gain access to opportunities and connections. Then goverments, big corporations , banks etc tend to buy things from big resellers based on these key players. The reason they do it is because of trust, many years in the market, connections etc. So if you want to go in the big boys arena you might need to work with a key player and become a partner. In that case forget about open source things or startups. This is why asp mvc is really popular today among enterprise business applications (Example). When you go to make a sale and you tell these dudes, its based on a new open source you get the red card straight.But if you say its based on ms/oracle/ibm etc then you get their attention. The same then goes for further sales. Sales people usually say things like “buy this, bank A and bank B has it already for years”. You get the idea. Also there is a ton of professionals around these key players. E.g. there are microsoft certified IT professionals, these dudes cant just quit their experiece and certifications. Same goes for all key players. Some companies prefer professionals with certifications, if you hire an oracle certified professional what will he propose as the development platform? It is how the IT industry works. In my opinion perhaps any new platform should try to get access to this key players perhaps through some sort of collaboration or partnership. It will open doors to a whole new world of people there.

and things get really more advanced from there on. e.g. now some companies are moving to the cloud. whos cloud will they trust? obviously knowing how these customers think they will go for a key player. Its about trust, years, brand name etc. But its even more about knowing that even 10 years later this company will still be a key player. Just as an example about the cloud options please check which cloud option has implemented what it needs for the new european law on privacy and data (known as GDBR). Immediately half of the cloud providers are taken out. I remember for instance people knew and worked on knockoutjs. The minute microsoft placed knockout on its asp mvc template alongside jquery , suddently everyone and i mean everyone acted as if they discovered the wheel.

By the way, where’s the Meteor Manifesto gone? I cannot find even cached copies anywhere. It was really nice ‘dream’ which came true but disappeared afterwards.

Do you mean the seven principles of Meteor?

  • Data on the Wire. Don’t send HTML over the network. Send data and let the client decide how to render it.
  • One Language. Write both the client and the server parts of your interface in JavaScript.
  • Database Everywhere. Use the same transparent API to access your database from the client or the server.
  • Latency Compensation. On the client, use prefetching and model simulation to make it look like you have a zero-latency connection to the database.
  • Full Stack Reactivity. Make realtime the default. All layers, from database to template, should make an event-driven interface available.
  • Embrace the Ecosystem. Meteor is open source and integrates, rather than replaces, existing open source tools and frameworks.
  • Simplicity Equals Productivity. The best way to make something seem simple is to have it actually be simple. Accomplish this through clean, classically beautiful APIs.
17 Likes

Oh man. I wish I could press “like” more times or there was a “love” button or something.

MDG totally delivered on those seven principles. And this was over four years ago. Since then, I’ve never seen anything come within a bull’s roar of Meteor for full-stack developer experience and productivity.

In my opinion, the only things missing from complete perfection were 1) keeping the initial uncached payload to a reasonable size and 2) cheap scaling. The first one is being fixed in 1.5 with code splitting. I think I’m going to have to rely on Moore’s Law for the second (or redis-oplog).

“Meteor classic”, as outlined in those seven principles, still floats my boat.

5 Likes

Couldn’t agree more. Fully delivered back then and still delivering today.

Loving 1.5 BTW!

6 Likes