Is Blaze still worth it (supported in the future)?


#1

Hi guys,

After a brief stint with both Meteor and Angular a while back, I am trying to get back into the game for an upcoming project.
I know Angular-Meteor, which has passed 1.0, is now supposed to be on equal footing as Blaze, since Meteor 1.2.
I also vaguely remember Facebook buying Meteor a few months ago (may have been an April Fools joke, now that I think about it), but of course there has been this increased effort to integrate React as the front end framework as well.

So given the significant promotion for both of these major front-end players, what is the future of Blaze now? Does it still make sense to build new apps with Blaze, or should we all look at either React or Angular now?
(I know Blaze is still being developed as well, but let’s think 2, 3 or 5 years from now.)

Any opinions or impressions in the community?


#2

This haven’t happened. But I’d go with React


#3

Yea it didn’t sound right when I thought about it. Never mind :wink:

Any particular reason? Is it just that you’re used to it and personally prefer it over the alternatives?


#4

In 5 years from now there may be no Angular and React as well or they may be in version that totally breaks backward compability (which imho they shouldn’t be so afraid of doing, even if there are people shouting about it like in Angular’s case), so honestly, why worry?


#5

I would say no, not unless they update it soon. I’ve switched to writing my components with Polymer a few days ago. It’s similar to React. Coding is so much easier, no more class/id hell with scoping issues. My code is so much more readable and maintainable now. I wish I could get entirely rid of Blaze so I can remove the js dependencies of Blaze and jQuery and use only Polymer.


#6

@brajt I am quite open to any suggestion, really. I have no preconception either way and I didn’t actually ask which framework is better (I know these questions are plentiful everywhere).

What I was trying to get at is that Blaze appears to be pushed aside by Angular and React as the Meteor front-end framework, so my concern is about future-proofing new applications at this point.


#7

batjko sorry, what I wrote earlier (before editing my post) was written without actually reading your question, so I assumed you ask about a different thing. :wink:


#8

@AndreasGalster So you’re still using Blaze minimally in order to be able to use Polymer elements? Are you replacing Blaze’s templates with those custom elements then?


#9

As a newbie I totally LOVE the simplicity of BLAZE!

Keep it stupid simple!

Plus one for Blaze! :smile:


#10

No worries at all, thanks for adapting your response then.
I agree that 5 years is a bit of a stretch to try to predict anything. And it’s true that either Angular or React may be deprecated again two years from now, for all we know.

I suppose I see that trend with Blaze right now and don’t want to be stuck with it down the line when the writing’s on the wall already.


#11

I absolutely agree with you here. It’s probably one of the reasons Meteor rose so quickly in popularity, even and especially for beginners.
But I am trying to get a feel for whether or not it’s still going to be useful for more complex and long-term applications (as opposed to quick prototyping or playground experiments that won’t stay in Production for the next few years).


#12

@batjko have you read that? https://gist.github.com/stubailo/9296dbd39fad0d6bbf58

Personally I’d be all up for an idea of Blaze 2 being based on React as a rendering system, as it would solve few important problems with Blaze. All the rest of them are more or less solved by community packages already.


#13

Interesting, thanks for the link @brajt!
So that sounds a bit like React is definitely here to stay for a while and perhaps Blaze has a future alongside it.

Makes me wonder about Angular, which @Urigo has put so much work into.


#14

It was quite a hard call, but I decided to switch to React for all my projects moving forward.

Personally, I prefer Blaze, and think are a number of things which I think it handles a lot better (or intended to, per the roadmap). But I need to be realistic moving forward, and make smart long term choices. Blaze is still officially supported/maintained, but is not being actively developed.

In the 1.5 years since Blaze launched, there’s been only one major update, the subquery and each..in code which took 8 months to land and whose author is no longer with Meteor (although he’s surprisingly and appreciatively still involved in Meteor stuff :)). The Blaze 2 discussion from 8 months ago led nowhere (officially at least), although did spur the creation of some awesome community projects.

So on that note, there are some amazing community contributions (which you should consider using if you keep using Blaze), e.g. @mitar’s blaze-components, @arunoda’s blaze-plus, template-caching and ssr, @seeekr’s magic-events, @frozeman’s template-var and my started-but-probably-abandoned virtual DOM for Blaze.

But React has community packages too, in fact, many more and a much bigger community around it that’s growing exponentially (from amongst Meteor users too!). More importantly, it’s being very actively developed, officially, by it’s own team at Facebook. So, those two things together give me a lot more faith in it as a long term bet. Ultimately, the leads Blaze has over React (including w.r.t. Meteor) will be addressed, while I don’t believe the reverse is true.

For rapid prototyping however, Blaze is still a clear winner, although it looks like @timbrandin’s sideburns project solves this. Also, although React is a bit of a learning curve, I’m starting to really appreciate a lot of it’s feature, especially the freedom to use more JavaScript in my rendering functions (which breaks some separation principles but I mean more like simple transformations at the beginning of a render rather than needing helpers for everything, and more flexibility in expressions).

And then of course, there’s still Angular :slight_smile:


#15

With Angular it all depends on what framework will Angular 2 actually turn out to be. I started to look at Meteor mainly because I’ve lost my confidence in Angular 1 and wanted to learn something different before Angular 2 comes. Now I don’t even want to go back, Meteor is too much of a fun.


#16

I have tried React (and ES6 modules) for a new side project, and while i get that it probably allow you to write more reusable code, so far i have been far less productive with it than with blaze. There is probably quite a learning curve i didn’t get yet, but while i understand the need to use “dumb” components to make them more generic and reusable, i find it makes you code no so easy to follow, with lot of indirection where you have trouble to find the component responsible for the logic. I also find that the way meteor is integrated with react makes it feel hacky and less at home than with blaze.
Last week i added a new feature to my main (blaze) app, and while i was feeling the god of spaghetti code behind my back, it was so much easier, and i was so much more productive that i don’t want blaze to die for now. Perhaps it should take some inspiration from React, but it got many things right.


#17

Hey wow, this is a super important read, thanks for posting. There’s a comment there from David Greenspan too (the main author of Blaze). I think everyone should read this in full, including the comments (at least up to David’s comment), before posting further.


#18

@gadicc Yes, like I said above, the whole discussion (but particularly David’s status rundown) points at React being the future of Meteor for the foreseeable future, at the expense of further Blaze development.

Now, as pointed out in that thread as well, Blaze still has a lot going for it and great popularity among Meteor devs of the first hour (who have gotten used to it and/or currently run apps with it), mainly due to its ease of entry.
But for major projects (other than quick prototypes or small side-projects), Blaze does appear to be on the way out, as far as I can see.

That leaves me with either Angular or React, with React clearly being favored at the moment.
personally, I have zero experience with React (though a bit turned off by JSX, which is just weird to me). And while I have some experience with Angular 1, it is quite a complex framework to use.

As of this writing, I am leaning towards biting into the sour apple and learn React. hm… :confused:


#19

Yeah, that’s what I did, for the same reasons. It’s a rough start but it does get better. It will help when we have an official pattern for mixing in existing packages written for Blaze. You’re not going to like integrating accounts management :> But obviously all these things are going to get better, and a lot better.


#20

I like your use of “obviously” here. Gives me hope. :wink: