JonAbrams / synth

The first back-end framework specially designed for single-page web applications
http://www.synthjs.com
MIT License
968 stars 70 forks source link

Combine Synth with another project #52

Closed dancancro closed 10 years ago

dancancro commented 10 years ago

Hi Jon,

I don't have your personal contact info so I'm doing this this way.

Synth has some cool features. The trouble is that when someone chooses to use it for their project they miss out on the different cool features of alternatives. Unfortunately, they can only use one thing to start their project.

As far as I can tell, the top cool features of Synth are 1) Preloading data 2) Works with any JS framework

I think Preloading data could be added to another project. It might be the case that the second thing, Working with any JS framework, can't.

So, is the value of that benefit more than the value of what you miss out by not using any of the alternatives?

To help answer that question, I made this spreadsheet. It has separate sheets for comparisons between Synth and the top other generators. There's also a sheet with my thoughts about why we need to reduce the number of alternatives.

The spreadsheet attempts to give values to each benefit, so the whole generators can be compared. The lists of what benefits each one has are objective, but the importance weights are naturally subjective. Take them for what they are worth.

It makes sense for Synth to exist as a distinct generator under two conditions: 1) The benefits of Synth cannot be integrated into another project 2) For any project, one's personal value of the Synth benefits outweigh those of alternatives. For example, the work involved and performance cost in not using Backbone is more than the work involved in re-implementing everything Synth doesn't do that another generator does.

If (2) is never the case, then it will only make sense to keep Synth as a separate project if enough benefit is added to it to make it the case. That seems like it would be a lot of work, but I don't know.

So two questions: 1) Can the distinct benefits of Synth be integrated into another project? 2) For any project is the sum value of Synth's distinct benefits greater than the sum value of the distinct benefits of each other generator?

To me, the idea of adding JS framework flexibility to the richest generator makes more sense in the same way that inheritance in object oriented programming makes sense - you only need to make the differences and you get what's common for free. What do you think?

JonAbrams commented 10 years ago

Can anyone suggest a concrete way to roll Synth support into another project? If so, which project? I'll continue to modularize components of Synth so it can be used by other projects, but so far I don't really see how to do what's being asked in this issue.

dancancro commented 10 years ago

Hi Jon,

I had read your message from #51 on my phone and didn't see your email address. So my comment above probably looked weird.

Anyhow, this question of how to do it is a technical one that I, as a beginner, can't answer. But I have a collection of all the contact info from those who can. I think the best thing to do is for all of you to confer about this by Google Hangout or some other way. I'm missing a couple of them. I'd like to have Brad Green and Miško Hevery in the discussion too. I don't have an email address for Eddie Monge and Brian Ford from generator-angular either.

I am happy to collect facts and create the case for joining forces, but nobody knows me, so it doesn't really matter what I say. I sent out one message so far to 20 addresses I had found looking for some input on my facts collection and only got replies from the rails-api guys who wanted to be dropped from the list.

The technical effort has to follow a political one, which I think is going to be harder. It's great that you're at least open to the discussion. If you have any pull with anyone with some clout, getting their interest would be the best next step in my opinion. How to do it is more like step 10 or 20.

JonAbrams commented 10 years ago

Thanks for the suggestions Dan, but I don't have the time right now, nor the vision, to combine Synth with some other project. I'll keep my options open though if a good opportunity arises though.

dancancro commented 10 years ago

Linux succeeded because it had a dictator. Plenty of people wanted to run Unix on pcs. Without a dictator, we would have had a hundred failed, inadequate and competing attempts to do it and the world would be a much worse place.

This new situation with app starters doesn't have a dictator. That's not a bad thing. Who likes dictatorship anyway? All it takes is dialog. Just talk to each other, understand the humungous gains of cooperation and you will find a way to agree. As far as I know, nobody has even tried talking to each other yet.