Meteor Community-Driven Fork

This isn’t a bad idea… it could go really well. Node.js vs io.js comes to mind. If I am understanding the history correctly, io.js was a very popular fork, and its success basically forced Joyent to push responsibility of the node.js codebase to an open source foundation. I wasn’t following that drama too closely, but I understand that there is fairly universal agreement that it has been a hugely beneficial move for node.

Alternatively, a fork could just fizzle and die or worse lead to confusion.

@aadams from watching the forums, it certainly seems that most of the meteor heartache stems from the impending deprecation of blaze. What do you think about forking blaze (and/or other packages that may be retired) to make sure they stay alive in future? Or even moving it to an NPM package so that it could be used with generic node projects? Just thinking out loud here. It might be a stupid idea.

[quote=“aadams, post:7, topic:15932”][quote=“sacha, post:5, topic:15932”]
Why would a community-driven fork be any more successful at accomplishing the goals you have in mind than MDG was with dozens of employees and millions in funding?
[/quote]
Simple, because by definition a community driven fork will have the Meteor Development Community’s (MDC) best interests always at the forefront – not the VCs.
[/quote]

I see what you are saying, but I would be careful with this line of reasoning. For example, politicians (for the most part) have the best interest of the citizens in mind. But they have wildly different philosophies on WHAT is best. Point being, because someone or some group claims to have the best interest of another group in mind, it simply does not follow that they will make better decisions. Intentions count for something, but not much in the tyranny of the masses.

All in all, pretty interesting idea. Not sold either way, but I wouldn’t ignore it if someone did it.

2 Likes

Sorry, but if MDG says that React is better than blaze, so be it, i won’t write Blaze code anymore.
I doubt very much that a Meteor fork would be sucessful, as some have said there are two many agendas which are not compatible.

2 Likes

now that is not a stupid idea, and a direction I’d assume it would take anyways, so blaze is at the same level of react, angular, polymer etc which are sourced from npm. then from there it can be maintained in a node js community style fashion, and can be used in apps with a distribution like meteor or other integration stacks, builders and bundlers

1 Like

Two things. First, if they wanted it or not, they’ve built a framework. They seem to be reversing course and dismantle it to the dismay of many. Second, some in the MDC were/are super productive in the current framework, don’t want to see it dismantled, and would like to remove bugs and enhance what we have.

I don’t think this is what MDG is saying. It’s simple, MDG wants to grow Galaxy and Developer Support Services. In order to do this MDG thinks they must grow Meteor. In order to grow Meteor, MDG wants to dismantle the current framework (as fast as they can within the resource limits they have) and instead build a distribution made up of the most popular (and secondarily best) JS tech at any given time.

How viable/feasible do you think a Community-Driven Meteor Fork would be?

Thanks @gaurav7

Great feedback @generalledger!

Thanks @vjau

1 Like

Actually, it’s not hard to fork Meteor. Just create some good packages to solve different problems.

But the problem is finding users and maintaining it. So, if you wanna use Blaze, I think it’s not about doing a fork. Just try to improve Blaze or templating, if MDG is not going to do that. Eventually, you (and the team) will take the lead of that development and everyone wins.

It’s much better starting something now rather than commenting here and there.
Try posting some agenda and user will join and help to fine tune it.

If there is not enough users, either they are with the React move or not trust you guys. If that’s 1st. Try to do something else. If that’s 2nd, convince them. Do blog posts. (You can’t identify if it’s 1st easily, so follow 2nd)

13 Likes

On the subject of our business plan, and what the VCs want: as MDG CEO, I can speak authoritatively here :slight_smile:

  • They want to see Meteor be used as widely as possible, and eventually become the industry standard for writing the user-facing parts of apps. They’re hoping that more and more people will choose JS for their apps (as opposed to, or alongside, ObjC/Swift/Java); they hope that more and more of those people will choose an pre-integrated platform rather than building their own from pieces; and they hope that Meteor will be the standard for that.

  • They want us to sell commercial products, ideally SaaS services, that are complementary to Meteor and that are so compelling that anyone using Meteor would want them. And they want us to bundle up those services into a variety of packages or plans, targeted at developers just getting started (free), up to comprehensive platform packages with 24/7/15 minute support targeted at the enterprise. We plan to build these offerings piece by piece, with Galaxy as centerpiece or hub. For now, we’re focused on rolling Galaxy out to everyone.

  • They want us to become more open and work more closely with, and communicate more openly with, the community. (And they want us to balance conversation in forums like this, with 1:1 conversations with top production customers, and with people who aren’t using Meteor but should be.)

  • They want us to focus on professional web developers, and helping to enable them to build the next generation of applications.

We have really great VCs who are in for the long haul and have a lot of open source platform experience. Rod Johnson built Spring. David Skok was instrumental in JBoss. Dan Scholnick was one of the first investors in what became Docker. They get it. I’ve learned a lot from them and I have a lot still left to learn. And they understand that they will get the best return on their investment first and foremost through building a healthy ecosystem and providing value to it.

We’re really fortunate that, thanks to the support from all of you, we’ve been able to attract these particular investors, because there are also a lot of investor out there who don’t understand open source app platforms and would push us to monetize aggressively in the enterprise as early as possible.

Happy to answer any questions about any of this or go into it in more detail. We need to be much more transparent about this, not just in conversations with paying customers but with the whole community. It has not been a desire for secrecy, but a perceived lack of time, that’s prevented us from sharing this kind of information in the past, and that’s a priority that needs to change for us in 2016.

Geoff

55 Likes

Awesome!

Question / Concern #1: Meteor Guide, Alternate Stacks, and MDG’s maintenance of parts of the current Meteor stack.

  • Will the current Meteor become a stack (Blaze, Tracker) be available in the future? The Meteor Guide recommends it.

  • Will the entire Meteor stack be completely decommissioned (aka handed to the open source community without MDG maintenance)? Pub/Sub, Tracker, DDP? I

  • Which parts of the current stack can we expect to have support moving forward?

  • Will the Meteor Guide recommended best practices for different kinds of stacks? Can there be more starter apps that follow the Meteor Guide for a particular stack.

Question #2: Will there be some kind of relational database support directly by MDG soon? I ask this both open ended and specifically regarding the existing stack–reactivity, accounts package, etc.

Question #3: How will Atmosphere (also recommended by the Meteor Guide) play along with NPM packages?

Thanks!!

3 Likes

These are one of the most positive statements about Meteor. The goals are consistent to the community and most of Meteor users. The arguments can be resolved under the flag of same goals and principles.

It’s already happening, to some degree, with the Clinical Meteor release. So far, we’ve:

  • prototyped probably ~20+ apps over the course of its design
  • included ~30 community packages into distro ‘core’
  • developed a guide with 1500+ stars (Meteor Cookbook)
  • created our own fork of the meteor-tool package
  • identified and staged 2 dozen community-requested tools in the StarryNight utility, in preparation of migration to the meteor tool
  • are in the process of developing 3 industry-specific reference apps
  • have a roadmap with 100+ additional objects that are planned to be added to the API

They’ve already done this before with D3, which was a major motivation for starting on the Clinical distro. It wasn’t the end of the world. Kinda sucked for us; but things are fine now that D3 is back in the Clinical distro. We’re excited about moving forward and doing a lot more with D3 and the map/reduce/aggregation pipelines.

Has MDG considered to what extent it’s in the Bay Area Echo Chamber? Speaking as someone who organized the NY Meteor Meetup for quite a while, and who’s now out here on the West Coast, my sense is that the definition of “best” that MDG is working with is disproportionately skewed/amplified by the startup / tech industry.

For example… React is probably the best technology to create a Facebook or Flipboard style app, or an Angry Birds style game. Lots and lots of Bay Area startups are trying to create such apps.

But there are completely other kinds of webapps out there in the world… the one that I and many of my clients are particular interested in is the web kiosk. Think airline check-in terminal. Yeah, you could use React for such a web kiosk; but the fact of the matter is that it’s a fairly old architecture, well understood, and Blaze works perfectly for it. We’d far rather have the ubiquity of Blaze and be able to pull in the occasional Nurse or Rad Tech to work on a project, than squeeze every last bit of performance optimization out of the UI layer.

Also, if it were true that inclusion into core was simply a JS popularity contest, then D3 with 45K stars would be there instead of React with 34K stars.

The first inkling of Clinical Meteor distro/fork began when I was working at a NFC advertising company, and we had a problem with the account Id generation and integrating our Meteor app with a legacy Mongo database. Instead of complaining, we put together a fully-tested pull-request, and it got shot down. Over $100K of work was eventually scrapped on that project, in large part because we couldn’t get that PR accepted. That was the first hint that MDG was going to do it’s own thing, and we couldn’t rely on getting mission-critical patches accepted into core as a matter-of-course.

Since then, I’ve been involved in maybe two dozen projects in the healthcare industry, and the following goals are some of the underlying motivations for the work that’s been going on with the Clinical track:

  • We want long-term stable releases
  • We need a slower rate of change; and to be able to ‘leap-frog’ unstable versions
  • We have industry specific legal requirements we are obligated to meet (FDA, HIPAA)
  • We have industry specific standards (HL7) that are informed more by standards committees than the success of any particular company
  • We need to know that when a critical patch is created (that may likely affects patient care), there is a transparent process to get it accepted into the distro
  • We need ensure a continued clean API that won’t raise eyebrows during audits or training sessions

Excellent advice. I’ve forked meteor/meteor probably four or five times now, and it got difficult each time. There’s a lot of ancillary technology and processes needed to support the fork.

Having clear distro goals, well defined example apps, a suite of packages we wanted to include, a ‘practice’ utility to tinker with, clear legal standards to work with, and funding from clients… they were all necessary to get to where Clinical Meteor is today.

Excellent question. The real issue (in my opinion) is the package manager and build pipeline. To the extent that the fork is using Atmosphere and the same version of the isopack/isobuild system; then a release track (aka distro) will suffice, without needing an actual fork.

If people just want to keep Blaze and Tracker and continue developing them, then just release Blaze to the community like D3 was, somebody can take clinical:METEOR as an example, and all they need to do is create blaze:METEOR or react:METEOR or whatever.

If, however, people want to include webpack and rewrite parts of the build pipeline; then things become way more tricky. In that case, they may need to start deploying their own package catalogs and other infrastructure.

This boggles the mind, and on first blush makes it seem like MDG doesn’t understand what the most used assets are from the day-to-day programmer’s perspective. On the other hand, if MDG is serious about getting out of the framework business, and is seeing projects like clinical-docs.meteor.com spring up, maybe it makes sense. Maybe this is part of handing things off to the rest of the community.

Exactly. For those people stepping up and willing to manage distros/forks/frameworks, it would really help to have an idea of what the ‘Platform API’ is. Is it simply going to be the command line tools? The package.js format? The ecosystem of environment variables?

11 Likes

JavaScript is a functional style of programming.

2 Likes

What part of this will suffer if docs.meteor.com becomes an API reference and loses the “concepts” section?

Oh. Is that all that’s being suggested? Then no complaints here. Sort of sounded like the docs.meteor.com site was getting decommissioned.

To use an analogy, I was just trying to say that having a copy of the Chicago Manual of Style doesn’t mean an author doesn’t still need a copy of the Oxford Unabridged Dictionary.

2 Likes

Sorry, I should have been more specific - my mistake!

A community fork can keep Meteor packages from being dissolved by using npm modules. It is convenient to add packages from Meteor app instead of using import inside the source code files. These relations can be complicated.

A ultra stable Meteor and a fast change Meteor are target different developer groups. There.are no reasons to adapt one and exclude another completely. A platform should contain as many kinds of apps as possible.

Hey man, I will pay whatever the price for Galaxy if it means being part of these conversations! I have about 5 consumer apps that I plan to build this year, and more in the next 5 years, and I’m leaning towards Meteor as my go-to tool, but sometimes it’s not clear what’s happening and that pushes me away from it. It’s good to know that there are thoughtful investors behind Meteor, and I hope to hear more from you on what the future of Meteor looks like.

10 Likes

This thread has a lot of overlap with one from last week, MDG as two separate organisations - would it be good idea?

I definitely suggest reading that thread…

I think forking meteor would be beyond counterproductive. Especially now amid all this uncertainty, fragmenting the meteor community could be catastrophic.

The aforementioned thread discusses the possibility of MDG devoting itself to meteor as a platform and having that seperate from the team focusing on meteor as a PaaS, Galaxy. There I make the following point:

I’m glad to see that several other people (looking at you @aadams ;P) here are cognisant of the reality of MDG’s motivations. That being said, I think a community fork is the same sentiment, just on the other end of the spectrum. Really the question in both of these threads is, who should be in charge?

 MDG              ???           Community
  !________________!________________!
                   ^
                  /_\

Can’t we find a happy medium? Here’s my proposal:

TL;DR

  • Community fork is bad idea, too likely to fizzle out
  • We shouldn’t rely on MDG or any other entity to be the sole decision makers. But, we still need that group, a group to be actively working of meteor, organizing collaboration, and making the final decisions
  • MDG should democratize meteor’s roadmap.

And please don’t mistake my sentiment: MDG isn’t tyrannical-far from it, nor would a mutiny be a good idea. But some things ought to change.

4 Likes

I’d agree to some extent. We’ve seen splits in other open source projects in the past and… I hope it doesn’t happen to Meteor.

However, MDG should definitely stay in total charge. Without someone leading the project, it can stagnate. Not because nobody wants to do anything, but because discussions might never come to a solution that satisfies everyone (as is the case right now). I believe in MDG and they know themselves that if they mess up Meteor, there will be no MDG anymore either.

And honestly, Meteor is doing everything that it should be doing. When I first used it, I felt like everyone not using it is behind the times. This is what Meteor promised and it delivered. Currently, the Javascript ecosystem is evolving fast and I’d rather see Meteor keep up with it rather than stay behind it. It’s a bit painful but part of the world of Javascript right now.

For me, I’ll just trust MDG right now.

1 Like

Lol you see, if people actually needed blaze that much they would have forked it already.

And then we get people ranting on the forum instead of taking action.

If you think you can fork it and make it better, then do it.

3 Likes

I agree with everything you say, except for this small distinction…

Yes, MDG should be in charge. There needs to be an authoritative arbiter; some someone/thing to say, “Okay you do A. And let’s do Z in X way,” someone to keep the ball rolling, and have foresight to make the right decisions despite the public’s “fleeting passions” (shout out to Hamilton, Madison).

Example: Should meteor embrace GraphQL?

  • Is that going to pay off in the long run? or is it just going to be superseded in a year?
  • How does that fit in with the rest of the platform?
  • How would its adoption affect future decisions? ie: Tracker?
  • Would it lock meteor into a certain path for the future?

Those questions are not simple ones to answer. That is not something where a bunch of random, disparate people on the internet are going to make the best decision on. There has to be someone to make that decision, or else the community is going to end up with 10 different solutions that don’t work as well as one Official solution, and 1 or 2 minor community alternatives.

Meteor’s just not in a position to be community lead, but it should be community driven. So when you say, “total charge,” that irks me. I know it’s just phrasing… semantics… yet, words do matter. I want MDG to lead us, but I don’t want to mean be towed along in their wake.


lmfao. :joy: But it all seriousness, considering how things stand now, that wouldn’t be a wise move IMO. If I were into blaze, I’d certainly want to see how things played out before I made my move.

1 Like

Exactly the point I made in an earlier comment! A fork is not necessarily a mutiny, a lot depends on the mission statement and its execution. But for the reasons presented by @aadams, it seems a bit premature to go down that path now.

@awatson1978’s “Clinical Meteor Track” seems to be a good example of agreeing to disagree in harmony. @aadams, does it look like something that could address your concerns? I’d urge you to strongly consider that possibility before starting a new fork.