Next steps on Blaze and the view layer

Its true! A possible point of disagreement: I for one think the one issue, the database, is extremely important. The difference between React and Blaze are smaller than the difference between Mongo and Postgres.

Not even having React at all won’t stop anyone. Not having an official relation database offering is keeping a large community of pretty serious entities away from Meteor.

React Router or Flow Router? React or Angular? One can get the job done either way. No SQL = forget it for many clients and technical decision makers.

6 Likes

Totally. Good point.

I’m pretty sure they’ll consider this and provide both worlds.

With this discussion about React and Angular, doesn’t anyone think that W3C standards are important anymore?

No. If W3C standards say I can’t use the “subtemplates for everything” approach in Blaze, then screw W3C standards.

The example provided by @SkinnyGeek1010 is no different from how I do things in Blaze or how are many popular packages constructed with Autoform as the best example.

The only difference is that React and Angular use <element> while Blaze uses {{>element}} or with Jade it uses simply +element.

2 Likes

I understand your position. W3C standards don’t move as fast as we’d like, so we have to count on different artifacts/libraries to reach a same end result.

I’m not sure what you’re suggesting here.

I chose meteor because it was a complete solution. I didn’t choose one of a thousand library for X + one of a thousand different libraries for Y + one of a thousand different libraries for Z, etc … because that requires months of knowledge for how to integrate those libraries and not screw up the integration.

What I want out of meteor is a working full stack out of the box. Ideally with all the basic features that 99% of all webapps need (user accounts, external account authentication, seo integration, routing, templates, forms, validation, database, etc…). I don’t want “here’s an engine, a transmission, a dashboard, a frame, some seats, now build it yourself”.

7 Likes

I am sorry to say, but Meteor was never a complete solution. Today you have to choose between community packages and read at least docs for routing, schemas, validation, forms, etc. Some of this docs are really huge.

Maybe Meteor 3.0 or 4.0 will be a more complete solution, but not now or in 2016. I’ll be happy too, but this are just dreams :wink:

5 Likes

I can wholeheartedly sign under every line!

Besides this, I expect that Facebook and Google will develop their own full-stack solutions based on React and Angular

This is clearly inevitable. And MDG is making a fatal and shortsighted mistake by dropping its own technology in favor of adopting someone else’s. I don’t think FB or GOOG will adopt Meteor the same way; it will simply be sidelined and obsoleted. What a disappointment… really.

10 Likes

That is why I hope we can come up with an incremental migration strategy that doesn’t force you to fix everything at once.

I would rather you didn’t force me to migrate to anything at all - instead making all the bells and whistles of future releases (like security, build time, performance improvements) being compatible with Blaze 1. As I am quite comfortable with it, but uncomfortable with some other aspects of the framework.
I’d rather you directed your efforts there, eg fixing 850+ open issues on github… instead of focusing on smth like view-layer which already works FINE.

6 Likes

Thank you and it makes sense :slight_smile:

About the Ecosystem… I meant also all these people who developed “Blaze 1” apps, after all that is what we have today. We need to know that the one important app we develop today, still upgrades without effort in* 3-4 years *to come…

We like to spend time on our end users, not on chasing the next big thing. Too many technical willing people killed open source projects by neglecting their end-user intentions and the money and effort needed to service them over longer periods of time.

3 Likes

Let me guess… you are technically very savvy ? :wink:

The point for many is not about the technical challenges of one versus the other, it is about changing course and hinting on incompatible upgrades. As soon as some previous decision is not compatible, or no longer maintained, there are costs associated with the project. Even 1 line of code is troublesome, let alone 10!

But worse of all: it becomes very hard to Google/Stackoverflow around solutions. Already today when we Google Meteor problem I see coffeescript answers. While this is not too hard to overcome… Iron Router is worse to translate to Flow and now you want React to kill all Blaze answers on the forums ?

Really, it is not just about programmers in this world, no matter how intelligent they are:) Marketing, budgets, consistency and end users also count )

6 Likes

Many good words… but still missing, sadly, the main point here.

You are breaking something that was not broken in the eyes of many.

What was broken? For example that you fuzz up coffeescript versus js, assume 50/50 for this arguments, all the time, that there is no core-router but Flow/Iron 50/50. Each of these non- decisions divide your eco-system, Google, Stackoverflow, by half: So here your choices unnecessary translated 100% into 25% already.

So… happy happy: lets confuse even more by going Blaze/React/Anglular: 33% each? … .what is that of 25%? 8%?

What you are doing is with open eyes reducing your impact to the world to 8% of what it could be. The most worrying that MDG’s top management defend these choices… with… ahhh… technical arguments… !!

10 Likes

Hmm, but from business point of view Galaxy needs large projects. If Meteor will become platform for complex corporate apps this will be good for MDG. Blaze is just not good enough for complex solutions, to add components, state and other stuff is more expensive than just letting community to go to React. React is really solid solution and works well for complex projects. Also React and Angular is already well known and used by many people who can switch from their Rails/Django/.Net + React/Angular into Meteor.

Small projects? Who cares about small projects and rapid prototyping (which for startups is especially important)?
Beginners? For them anyway is better to start doing things in “right way” which is React. Isn’t it?

Current projects, hundreds of popular packages (like autoform or easysearch) and their migration into ‘Blaze2’? I believe MDG will try to help them for easier migration, but unfortunately it will cost. Especially if somebody is depending on packages such as autoform, @aldeed already told, that most probably it will not work for ‘Blaze2’.

3 Likes

Hm, ok, maybe I am naive but I always gravitated to the solution where I could get from A to B with writing as little code as possible. I think current blaze with ViewModel is a rather smart and elegant way and doable for people who don’t have that much time to sink into a computer because you’ve got a job, a kid, etc.

I was doing Django for a few years before Meteor and left because it got to fat and complex to work with - also the entire community got hang up discussing tiny things for ages, progress wasn’t possible anymore.

I kind of feel the same when I read this, initially Meteor seemed to be something tiny but smart and agile. This idea with react is probably a good one (not enough of an expert to tell) but from a weekend programmer point of view it seems I’ll end up with yet another hippo really soon now and thus have to look out again for something less complex…

Of course, if you have 20+ hours a week to spend then Meteor is probably going to be the go to thingy for you, even more so after that react plan springs into existence. For people like myself with a day job and kids, blaze and ViewModel is something that attracts me because it’s within my time frame I can invest. I look at the react site, the code examples, scroll down… pause a little and leave, never come back. To much, to complex.

3 Likes

I like:

  • legibility
  • conciseness
  • gentle learning curve
  • separation of concern (doc structure separated from behavior logic)

Hence I:

  • Love Jade (thanks Maxime Quandalle!)
  • Can read Spacebars OK because it’s HTML + minimalistic logic the rest being nicely left in the helper code
  • Dislike JSX and React
  • Dislike Angular even more

One can add components to Blaze without adding the incidental complexity and proprietary syntaxes of React/JSX and Angular.

The things that made me like Meteor are:

  • self-containment (a SINGLE isomorphic framework for client and server code)
  • conceptual minimality yielding painless adoption
  • dependence only on standards (HTML5) and libraries that have (a) passed the test of time (jQuery, MongoDB) and (b) are not maintained by tech giants which technological choices come more from internal political battles rather than genuine usability insights.

Meteor needs to continue to be a self-contained, full-stack, do-it-all, turn-key, rapid dev, easy adoption, tech giant INDEPENDENT framework that emphasizes simplicity for the core and community packages for all the rest, including interoperability with other partial frameworks hyped by the PR machine juggernauts of tech giants (Google, Facebook, Microsoft). These have the habit to abandon their million strong dev communities from one day to the next by killing their techs or creating backward compatibility and stability nightmares as a result from internal power struggle reversals between departments, executives and sharesholders, as opposed to real productivity gains.

If Meteor becomes dependent on N other frameworks, then it loses its edge over assemble-it-yourself MEAN stacks. If it becomes dependent on frameworks from tech giants, then it betrays the trust that its devs community has put in it which is in great part IMHO based on a hope that it will not cannibalize its great tech by doing callous bait and switch to its dev community every time a new hype comes along pushed by some tech giant funded propaganda.

15 Likes

Ah, sorry. I didn’t add the part where Input is defined. That would be a component the user would make. Also the point is that it’s easy to know what it is by looking at it.

Adding propTypes acts as documentation and makes it easy to know what you can pass into your custom component (something I hope Blaze 2 utilizes).

That would be something like:

Input = React.createClass({
  propTypes: { // optional but recommended for documentation
    name: React.PropTypes.string.isRequired,
    label: React.PropTypes.string.isRequired,
    type: React.PropTypes.string.isRequired,
  },
  render() {
    let defType = this.props.type || 'text';
    return (
      <div class="form-group">
        <label for={this.props.name}>{this.props.label}</label>
        <input type={defType} class="form-control" name={this.props.name}>
        <span class="err-msg"></span>
      </div>
    );
  }
});

> With this discussion about React and Angular, doesn't anyone think that W3C standards are important anymore? I'm not convinced with React, it's just not seem to be contributing to an "open web".

I mean technically React outputs more standards compliant code that I write normally. Sure JSX is a bit different as they use DOM attributes like className instead of class but that’s not the output.

When web components ‘finally’ gets here they’ll make a React 2.0 that compiles a component to a standard ‘web component’.


> You seem to have a lot of experience with React so I'd like to ask a truly honest question: Do you think something else will start to replace React in 12 months?

There will def. be other options but React brings more than a template to the table and that’s what will keep them in the top of choices. They bring:

  • Huge community
  • Large array of components (react.parts), more than Atmosphere
  • Ability to render JSX to non-browser env (server, iOS, TVs)
  • Paradigm shift in how to ‘think’ about the UI (declarative & functional vs imperative)
  • Stability (FB/Instagram uses this itself and has to keep it stable for quite a while)

[quote="chompomonim, post:196, topic:13561"] Current projects, hundreds of popular packages (like autoform or easysearch) and their migration into 'Blaze2'? I believe MDG will try to help them for easier migration, but unfortunately it will cost. Especially if somebody is depending on packages such as autoform, @aldeed already told, that most probably it will not work for 'Blaze2'. [/quote]

I’m working on a example project that shows how easy it is to do this with Tabular Tables and Autoform. All you’ll need to do is write Blaze-1 for the things in Autoform. The ‘migration’ is a 5 min. tops.

Also most components are note quite this coupled to Blaze so the majority won’t be extra work.

Outside of the scope of this but using these highly coupled packages like those comes at a huge maintenance cost. They’re quick to install and very slow to change/modify. FlowRouter is not coupled and switching view layers is a one liner. (though autoforms would be hard to do with this admittedly)

3 Likes

There’s a lot of talk regarding if React is just the new shiny thing. This reminds me of the skit ‘The Stone Age vs the Bronze Age’. It pokes fun at both sides but there are some parallels to Blaze vs React IMHO.

Sometimes a tool can be clearly better than another but it’s hard to see until it’s too late.

https://www.youtube.com/watch?v=ZHGafC7zOUE&feature=youtu.be&t=18s

20 Likes

the ancient Romes had superior technology too
they had toilets nearly like we do but they were lost for nearly 500 years

Thanks for the explanation. The skit is hilarious btw, spot on! :joy:.

1 Like

Well, I’ve spent last couple of days (and nights) trying to comprehend what are implications of @gschmidt’s statement as well as following discussion and here’s what I came to.

When I first read the statement, it hit me as: “Hi guys, we’ve been hard at work to sell to Google, but Firebase beat us to it, so we’re on our way to Facebook now. Ain’t that awsm?”.

It’s clear that the current state of technology stack will not bring customers to Galaxy. Period. At least not at current (enterprise) price tags. Something needs to be sacrificed. So investors say.

It took me a couple of days to calm down and I’m still kind of pi*ed. Not because I may personally dislike “The Big f” or React (duh!) for whatever my personal reasons might be, but because of the fact that you bought many of us because YOU DID (re)invent the wheel (I’d rather call it innovation), you shifted paradigms, you changed our ways of looking at problems and solutions and all that by NOT just adding another layer on top of some MEAN or whichever stack to make our sorry lives easier but by doing it in a (radically) different way!

You were a game changer. You inspired us.

And now you’re bailing out?! Instead of sticking your “F.U.”-tattooed middle fingers up the big boys’ pompous behinds, whispering in their ears: “We can do it better!”, because… err… YOU CAN, you (and the rest of us) are getting ones up ours!

We don’t want you to wrap other technologies in colorful paper to sell it to us. We want you to continue to create, innovate, disrupt and inspire us.

So, take Ractive, integrate it with Blaze… hell - hire Rich and do it right. And we’ll continue to help you.

Otherwise, soon there will be no apps to host on Galaxy.

9 Likes

Blaze is not without issues. On github, there are:

The hackpad on Blaze 2.0 ideas attracted quite a lot of attention.

Numerous requests from the community members to improve Blaze and fix bugs support my point: Blaze needs work.

I see your point: a lot of other parts of Meteor require more work, and I don’t think Evan’s or Geoff’s posts contradict this idea. The idea I get from their posts is that “we would rather reduce the amount of work on Blaze 2.0 by reusing react’s work to spend more time on improving everything else”.

13 Likes