Another Bye-Bye post

Hello Community,
recently I was trying to get along with react way of doing things
and it didn’t work out at all. Considering Blaze was getting a feeling of outdated (some stuff could be done much simpler), I had to try something new, like React that is the recommended option to go with. But after several weeks I realized that doing stuff with React is even more complex and sometimes things that should be made easy look ugly. So does JSX.
When I read something about React - I usually see (considering my marketing and advertising past) that some of these topics look like someone’s good effort to make people believe that React is superior to anything else.

As for myself - I don’t like “corporate” stuff, because it’s boring. Instead of getting fun from coding - you just get the job done, and you can easily get replaced by anyone who knows the same technology with minimum effort from the management.

Considering all above, I started to look for some alternative for something for the front.
Tried Angular2 (I was not a big fan of the 1st one), it looked too complex for my needs.
Ember didn’t look like a good choice either. I tried Riot, it didn’t work out too.
Also, I don’t have the feeling that we’ll have the revive of Blaze. (yeah, I’m quite pessimistic, but that’s how you can survive in 2016, considering all the hype around different technologies, that you put effort into, and then realize it was no good)

So I decided to try Vue, and it was love from the first sight. (Actually, from the second)
I just felt like I discovered meteor 2 years ago, and the fun of doing stuff, that was impossible to do with other frameworks.

I’ve learned a lot, thanks to Meteor and it’s way of doing things and got addicted to an approach, when you define the rules, there were many interesting patterns that could be done, or even some crazy experiments (like storing helpers into the minimongo for them to be dynamic).
After some time I got experienced with Node and Sockets.io, so making my own reactive backend was no problem anymore.

Now for me it looks like that Meteor is not in the good position, it’s either burning into the corporate atmosphere, or just hitting the ground of being outdated on many points (I know there is GraphQL, that is an overkill for my needs).

Anyway, I hope that someday Meteor Team will drop off the chains of corporate stuff and make something really good on their own.

Good luck everyone!

3 Likes

Ok, you are simply growing as a developer and discovering tools that better suit your needs. I can commend that.
But I simply cannot grasp what’s the problem with Blaze that it needs to be dropped as a front-end tool… You say that you love Vue, but imo Blaze + ViewModel combo can do all the same stuff rendering-wise. So why do this ‘fair swop’ in the 1st place?

1 Like

If I understand correctly you dropped Meteor so you could use Vue? The first part is al about the View layer. You explain why you no longer wish to use Blaze and that you dislike React, which is fine of course. No Angular2 or Riot, ok. And Vue is a nice alternative. But you can use Vue with Meteor. So I don’t understand why the first part is relevant for dropping Meteor.

I kinda like the fact that Meteor helps me get the job done. I like Blaze for it’s simplicity and like React for it’s control and safety. I would love to use Vue, but don’t have the time / project for it at the moment. But all are possible to use with Meteor. There are also reasons for me to drop Meteor, because it has it’s quirks here and there, but the View layer isn’t one of them. And it’s still the easiest way to get up and running with ecmascript.

I’m not saying you should keep using Meteor though. Use whatever you like. I’m interested in what the real pain-points were for you. You say it’s outdated for example. Can you tell something about the things you’re missing or think are in need of an update? Code splitting perhaps? Not being on npm?

Hope you’ll enjoy Vue and good luck to you as well :slight_smile:

I know I can use Vue with Meteor, but there are also some technologies that I really miss.
There is a Redis caching support, still there are alternatives that we use on my current job. (Aerospike for example). Or Rethink db (I know they are “reorganizing”, but still it’s a nice piece of technology)
Also running stuff via Meteor methods sometimes is cumbersome, like wrap async and fiber stuff.

I don’t say that Blaze should be “dropped”, it should be improved, but looking on how things go, I’ll prefer to transit to something else that wait until Blaze gets components or some other nice things.
There are some libs for that, but well, it should be a monolithic piece of stuff, not just some libs that are maintained for now, but who knows what will happen in the future.
(As it happened with FlowRouter for example).

I don’t like dropping stuff just to adopt “something new and cool”, but more to put effort into one tool. Like first you learn Iron Router then everyone says it has flaws (and it did), then you use FlowRouter and the arunoda quits. Every time you have to lelearn (i have no problem with that, until I don’t need to support stuff that I’ve already shipped)
What I’ve wanted is something that doesn’t put sticks in your wheels on your way of doing stuff.

I know that my transition is quite not logical, but I’ll try to list what I miss.

  1. Easy deployment to third-party servers.
  2. Official key-value caching.
  3. Seamless integration with Meteor methods, sometimes it’s quite cumbersome because you have to use wrap async or fibers.
  4. Sass support would be nice, though it can be added via third party plugin that works nice.
  5. The whole reactivity point sometimes is a pain to turn off. (I know about .fetch()).
  6. File uploads are a big pain, I usually use a separate node process for that stuff.
  7. Blaze is fine, you really can be up and running in no-time, but for example some stuff is not working properly, like getting an object from the query on Template created and putting it into the local collection gives an error.
  8. jQuery is a really nice lib, and I like it, but sometimes the project starts looking ugly due to it.
  9. Recently I’ve compared my productivity with Vue and Blaze, and understood that I’m never going back, considering that everything is a reactive object in Vue it’s super simple to do tedious stuff.
  10. Sharing things via helpers and actions via Session or minimongo, or some kind of store also is not very nice.
  11. There are many posts about scaling, but no official solution except for Galaxy. Also Mongodb sharding is not the thing I would like to do again :slight_smile:
  12. I have a feeling that sometimes comparing to “pure” backend on Node Meteor is slower.
  13. Not big fan of SQL, but my clients sometimes don’t want to use anything except it.
  14. Performance - when you have 50-100+ users on the app, usually it’s a signal that you need to scale. With sockets and some sort of custom implementation of “live query”, or by using Rethink tat amount is dramatically bigger.
  15. Meteor built for client only usually weights about 1mb, which is quite big.

I understand that most of these are mostly specific to my way of using things, and the aesthetic thingy on how “code should look like”

In all I could say that I really like Meteor way of doing things, initially it was simpler to use Meteor for me to solve every task, but now it looks like that it’s easier to make a specific backend and divide it from front, than to make a nice backend with Meteor, considering that still I’m going to use a lot of third-party npm modules and getting them together.

I understand that Vue is just a view layer, but for some reason it just made the decision for me, considering all the nice stuff I can do just on the front in no time + the framework has everything I ever dreamed of to be in Blaze. Documentation is superior with no need to use any other sources of information. That’s the first time when I could learn something just by reading the docs.

So it looks like the current Meteor flow is going towards complex things, not making the whole thing easier, but making things easy for the end-user is what a framework is for.

3 Likes

How can you use Vue with Meteor? There’s almost no information online about how to do it in detail. There’s a few libs that can help, but they’re in beta and you’re on your own if you run into issues it seems. There’s considerable hurdles (compared to using Blaze with Meteor for example) to using Vue with Meteor ATM.

1 Like

Thanks for the detailed answer. I have some of the same issues, like having to wrap all things in fibers and the scalability issues. React is solving some of the issues you mentioned, for me at least.

Anyway, this list has some clear points that MDG can maybe learn from and others might also experience. So thanks for writing them down!

IMO, you’re weird. Most of your statements are actually false.
And it actually feels, like you weren’t present on these forums lately.
In case you clearly missed out Grapher, Redis-Oplog, Meteor-files, FlowRouter forks, discussions on using different routers(in case Flowrouter wasn’t actually a router but a complex app-state controller), while switching to something like React Router is a matter of few hours; and even quite highlighted things like good old Viewmodel and Apollo itself.

Feels like you just passed by, but for some reason still decided to write a post.
That makes me uncomfortable because you make all the efforts of meteor community undervalued.

I should metion i’m not using blaze and belong to few guys who likes “JS in HTML” concept.
But if I decided to switch to Vue I’d think of switching to vue-viewlayer, not throwing my stack into trashbin.
Good luck. @majorius

1 Like

There’s an excellent akryum:vue package which integrates Vue 2.0 into Meteor. I’m building an app using it right now and I’m really liking it so far! Here’s an example app using this configuration.

2 Likes

I thought it was better these days with some active development. Haven’t tried it out yet, so my apologies for making it sound too easy.

1 Like

No worries mate! I was just wondering if there was a resource I wasn’t aware of is all. :slight_smile: I’d really like to use Vue with Meteor, but just can’t make the jump ATM.

The advantage of Meteor is that you can do everything from one place, including mobile apps! I still like Blaze and see it improving. Vue seems like the next big and it’s getting its place. As for scalability, have you tried using redis-oplog? Mongo sharding is an issue? It’s one of the best features of Mongo scaling.

The rest of the arguments can be answered easily. But what it comes down to, is whether you like it and enjoy using it.

At this point, I frankly can’t see us moving away from Meteor. And I applaud MDG for focusing on corporate. We are serving 1000’s of users and growing every day, we can’t have a flimsy patched-on platform of random node packages. We need production-grade. And I agree that Meteor is no longer suited for single-player boutiques, so more defections are expected.

9 Likes

Mongo sharding is a problem for Meteor oplog, but redis-oplog will solve that :slight_smile:

Different strokes. I started with Meteor and development in general back in May and have progressed an incredible amount in that time. All thanks to Meteor. I personally love the direction Meteor is going. Moving to React was the best thing I’ve done since adopting Meteor in the first place. It simplifies everything.

1 Like

Lol, is every dev writing bye bye posts these days? :joy:
And we should be worried about Meteor because…??

Great point, ramez !

1 Like

No, just a bunch of attention seekers who have an exaggerated view of their self-importance and/or regret that people who once cared about what they had to say no longer care about them today.

They think that the appropriate way to express their ignorance and/or frustration is by spreading negativity through the online community - like a hoon doing wheel spins and showering people behind them with dirt.

The rest of us are busy getting productive work done with Meteor.

I and my company Delivery Command started using Meteor in April 2015 back when version 1.1 was current. Our apps are now running perfectly under Meteor 1.4, using Blaze, Iron Router and a bunch of other classic packages that do their job perfectly well.

The maintenance work required to keep things running smoothly following Meteor major version updates has been trivial.

To all those people who are reciting incantations, casting spells, sticking needles into voodoo dolls in the hope that these classic packages will magically stop working, I say get a life and find something productive to do with your time.

Our apps use a few NPM packages alongside those hosted on atmosphere. It is simple enough to create wrappers for asynchronous functions using Meteor.wrapAsync() when they are required.

I am most proud of our work enhancing Meteor’s support for MySQL, which we have been delighted to share with the community - the least we can do in exchange for everything the community has shared with us.

To those attention seekers thinking of posting their own negative bye-bye posts, please don’t.

If you don’t want to be part of the solution, the best thing you can do is to not be part of the problem. Leave quietly and enjoy your new-found (likely temporary) bliss in one of the other countless MEAN frameworks and NPM packages out there.

15 Likes

Thanks for this. But would it possible to use the akryum:vue package in an existing Blaze/FlowRouter application?

My goal would be to migrate screens over to Vue when I can. As for new screens, would I would use Vue only.

I know there is some issues with Vue and FlowRouter (and it is recommended to use VueRouter), but I can’t abandon FlowRouter right now. Also, these issues with FlowRouter should be negated because I don’t pass parameters over the URL and do not use nested URL either.

Vue plays quite nice with others, and you can definitely use it with Blaze. The easiest path would probably be to create your Vue components in ’onRendered’ method of a Blaze template. Something like this: https://github.com/Akryum/meteor-vue-blaze/blob/render-blaze/client/main.js

1 Like

Break up specific questions or topics of discussion into separate threads please!