Next steps on Blaze and the view layer

This sounds very good to me, as I’m not a fan of Blaze. Not because there’s anything inherently wrong with it, but because the mindshare is so small!

Blaze is meteor-specific. Nobody else seems to be using it. Nobody outside meteor ecosystem is building libraries and extensions for it. React? Completely opposite, it seems to be the thing many different projects are finding common ground around.

Same as my views on package management and how I wish to see simple NPM packages as the main distribution medium of meteor libraries - the more standardised the solution, the easier it is to find and re-use something already existing, over re-implementing things yourself.

After initial excitement and subsequent pains in real projects, my opinion of meteor is starting to go back up again.

4 Likes

I personally have to maintain a few very large code bases which are written in coffeescript/jade.

Moving to React would be a huge task since the jade code would have to be converted to jsx and the coffee script to jsx-flavoured js. It would be a rewrite of the entire applications. It’s unthinkable.

Whatever you move to for the future please ensure that existing apps remain supported.

11 Likes

I’m a meteor noob and I haven’t learned React yet but … One thing I’m curious about. Today I’m using the useracconunts package. In it there was a “privacyUrl” configuration option which if added showed up as a link (as in an anchor tag). Clicking that link exited the website and went to the link (even though it’s on the same site). In other words it’s just a plain link.

Using meteor as is it was very easy to fix that.

Template.atForm.events({
  "click .at-terms-link": function(e) {
    e.preventDefault();
    e.stopPropagation();
    // do something else here
  },
});

When I hear that React emphasizes components it makes think something like the useraccounts package will become a component and that reaching into it and changing behavior like I did above could become difficult. Instead I’ll have to download the source and modify the internals.

Is that a valid worry? Sorry, like I said I haven’t used React so I have no clue. Maybe this is a rare type of issue and/or a rare enough solution that it doesn’t matter?

I’m totally for not getting left behind if React is going to have all the community then Meteor should probably go there.

It sounds like you’d prefer @manuel’s ViewModel instead.

2 Likes

For me the best option would be a mix between @arunoda flow components and react. Components, better rendering and invalidations control, better api but still using spacebars.

It seems that the MDG group lost a battle by have stopped being creative. And now as the React became more famous, you let them win.

I think it’s laziness or difficulty to be creative and to reinvent itself and build a Blaze 2.0 better than React, not equal.

I do not want to write HTML mixed with JS without at least one quote. I love Meteor and Blaze, and vehemently hate the React and Facebook.

I don’t like do learn one most language. I just want to use Blaze as before, with new ideas.

12 Likes

@gschmidt I am glad you are going forward and Meteor won’t stop as it is today. We love it, sure, but it still needs some improvements. Meteor is still not good at things like:

  • Lazy loading
  • SSR
  • Loading order

One of the best Meteor features is, without any doubt, the first steps. People gets hooked because they are building complex apps in hours. Then they just keep learning it.

Autopublish and insecure packages are a big part of that magic. That model has proven to work, so my suggestion is: use it to solve the complex issues Meteor is facing today.

For example, for Loading order, create an autoinclude package which includes everything by default, good for small apps and prototyping. Then people can remove it and they start using ES6 modules to include something if they want to use it. Same for Lazy loading (load everything unless package is removed) and so on.

That way you can provide expert devs better tools and keep Meteor first steps as great as they are today.

6 Likes

The future of Meteor will be melt into the React.

Blaze is just one small part of the Meteor framework. It’s not the entire product. In my opinion it makes a lot of business sense for MDG to make Meteor as good as possible and if other frontend frameworks already exist and you’re not going to improve on them, then why create another framework?

As a developer I’d like to see as many packages available to my projects as possible. If I’m able to make use of all the React packages out there and the Meteor community is also focused on creating Meteor-React packages that would be great.

For the Meteor community to be split into 3 groups (Blaze, Angular and React) is a bit of a problem. We could potentially create 3 times as many packages to drive Meteor forward if we were all focus on one frontend framework. Angular and React do look like the future in the world of web development, Blaze will never go beyond the Meteor community (IMO). Like the original post said, if MDG can combine the advantages of Blaze with the advantages of React surely that would be the best solution for everyone.

5 Likes

You don’t need to worry about this. React is more than capable of handling things like this without you having to modify components.

1 Like

I honestly wanted to start writing on React.js
But when I faced with form, required validation and localization, when I needed to use observers for adding new markers to the map, I realized how much easier and more intuitive Blaze, than React.js

10 Likes

so what should we do now? I have 5 production apps running now in meteor using Blaze & 80% of the new app is completed using blaze. should i stop now and begin the app from scratch with react , stop using packages that uses blaze?

5 Likes

no definitely not @sikanx
The only reason I hear over and over again from people who are against react/blaze 2 is because they are too lazy to switch over their old code base.

are you serious ? if we are start to build new app then its fine we can start with react.js or blaze2 thats fine the only question here is there must be backward support for previous app. there is no question about laziness its about the investment made to the project and time consumed to make those project. are you ready to switch the code base on which you have been developing from past 8 months & near to production plus other already deployed one?

16 Likes

Some questions:

  1. When do you plan switch from node.js to, for example, Rails/Django? (-:
  2. Why React? Why not Angular?
  3. What about router? Which one I have to start learning now??

Guys from MDG, where I can find example, how should I use cursor.observe() in React.js component? I really need it.

3 Likes

I can’t see any problem if Blaze 2.0 breaks the old API? You can’t stay on old components while the web is moving - and if you don’t like Blaze 2.0, I think you can still stay at 1.0 for a longer time.

I really like Blaze and it’s seperation of HTML/JS code. Manuel (author of ViewModel) just posted a nice code comparison of Blaze (with ViewModel) and React (go to https://viewmodel.meteor.com/ and scroll down).

In my opinion, Blaze should stay as a solution to deliver fast results with a small amount of code. If it uses React in the core, but also delivers still the easy syntax, that would be a great solution.

@manuel @evanyou Would it be possible to integrate ViewModel in Blaze 2.0 - or would it conflict with React?

1 Like

“It seems that the MDG group lost a battle by have stopped being creative.”

It is vision problem. They do not think Blaze as Meteor’s core value. So without improvement of Blaze in two years then let React developed from nowhere. Today there is still opportunity but again MDG made wrong decision. We could see how Meteor was dissolved by itself. At first stop the evolution of Blaze and adapted to React and Angular, then make Meteor adapted to more databases, furthermore adapted to more public cloud platform like Google Cloud, Microsoft Azure. Any productivity in these development? The result is to destroy the coherence of Meteor ecosystem.

Ask your own question why select Meteor? For me

  1. because of smooth integration of MongoDB with native JSON.
  2. because of account and router package of Blaze.
  3. because of easy data binding of Blaze.
  4. because of Bootstrap and Material package
  5. because of Javascript

There are two frameworks of web design, one is to embedded JavaScript inside HTML like Blaze and Angular, another is to embedded HTML into JavaScript like React. Both frameworks have their pros and cons. Angular framework is good at form and complex UI design. React framework is good at mobile and dynamitic UI design.

Blaze have opportunities to replace Angular and React in Meteor platform but … Today everything is pushed to React style framework and the most valuable Blaze package system is stopped to evolution in the future. Nobody will develop Blaze packages anymore. What is the value of Meteor? To use Angular I do not need Meteor, to use React I do not need Meteor either.

Lost tech edges means lost platform. So how Meteor to become a JavaScript Platform?

12 Likes

+1

Just to make it clear I really dislike this decision from MDG and I am disappointed. I thought MDG were more creative then that. Why can’t you simply take the same concepts and transfer them to Blaze? I don’t like Facebook because of its politics. And I don’t like React because of missing separation from JS code and html markup. And I don’t like jsx the same as coffeescript. Not because it’s bad, simply because it separates all of us in those who use it, and those who don’t. To say that we can still use pure javascript is not a valid argument from my point of view. Because it still depends from what components are you using in your project which are not written by yourself. And the majority of people will use jsx, because it’s build to be more efficient this way. And we all end up using coffeescript, jsx, typescript and javascript all together in one project. Or you need to write a lot by yourself. The community will simply not speak the same language anymore. And it is bad not only for Meteor it is bad for all of us.

Blaze was a main reason why I have choosen Meteor for me and my company. And now I feel myself forced to learn React and stick to it. And this just two weeks before we wanted to start a new big project build on top of Blaze. So my main question is what should we use right now to be better prepared for the migration later on? blaze-react? sideburns blaze? or something else?

p.s. (sorry for my bad english)

20 Likes

And what we all have to do, when, and this can not be excluded, React.js suddenly will stop to be free?
(-:

7 Likes

Am I missing something here?

The main thing that sucks about React is it’s patent clause:

The license granted hereunder will terminate, automatically and without notice,
if you (or any of your subsidiaries, corporate affiliates or agents) initiate
directly or indirectly, or take a direct financial interest in, any Patent
Assertion: (i) against Facebook or any of its subsidiaries or corporate
affiliates, (ii) against any party if such Patent Assertion arises in whole or
in part from any software, technology, product or service of Facebook or any of
its subsidiaries or corporate affiliates, or (iii) against any party relating
to the Software. Notwithstanding the foregoing, if Facebook or any of its
subsidiaries or corporate affiliates files a lawsuit alleging patent
infringement against you in the first instance, and you respond by filing a
patent infringement counterclaim in that lawsuit against that party that is
unrelated to the Software, the license granted hereunder will not terminate
under section (i) of this paragraph due to such counterclaim.

7 Likes

Exciting news! +1 for Inferno

Blaze is not only a frontend framework to Meteor, it is the glue to make all Meteor app together.
Blaze and its package and plugin system is the meat of Meteor.
Blaze makes web design in clear architecture and layout instead of scatter HTML in React.
Blaze can be easily done data binding which is important for form applications.
Blaze allows thousands Bootstrap templates available instantly. React can do either?
,

17 Likes