Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
Migration to new Front-end Framework/Library #211
This'll require a bit of work, but the advantages are:
referenced this issue
Oct 10, 2016
I want to bring this back up to attention. We could slowly migrate components to react while not having to rewrite everything at the same time.
You can actually render React component inside blaze. https://guide.meteor.com/react.html#using-with-blaze using
Some highlights to why this framework would be a better choice:
The caveat is making Vue work within a Meteor project but there are OSS projects to make that work out of the box and it would be the same challenges for using React.
I didn't want to hijack this issue but I see we are also addressing the front-end replacement in the refactoring issue #443 so either one works.
Let us know your thoughts. I can work on creating a new branch where we can start playing/testing creating and/or replacing components in Vue.
@lpatmo there is no issue in keeping blaze to be honest. It works for the current state of the project. However, some advantages to switching to Vue (or easily React) are:
Lastly, aside from the technical advantages. I just want to highlight the fact that we have an opportunity to create an open-source project with a tech stack that is keeping up with modern times and allows existing and new contributors to continually learn and grow their skills with applicable job market skills. Plus we might attract more contributors since Vue is a mainstream framework.
Yes, it will be challenging (and a bit painful) to migrate over to Vue but I believe the long-term benefits outweigh the temporary pain. You can argue, "if ain't broke - don't fix it" but I believe this is a bit short-sighted.
I also spoke with @distalx a while back and expressed my interest to pick up Vue.
I have the pleasure of using AngularJS, Angular, React and Vue in my free time and would love to make a quick comparison among them.
AngularJS - it is on the way out of JS ecosystem, Google announced 3-year LTS and will stop maintenance in 2021 completely. I do not recommend it in new project and revamp.
Angular - Very cool framework but it is more suitable for enterprise-scale application than codebuddies that is a medium-sized project.
React - I tried it before but do not like its syntax. The syntax is very flexible but if it is not written cleanly, the render function can turn into spaghetti code and become difficult to understand. Moreover, CSS in JS syntax may not sit well with developers who are accustomed to putting CSS, HTML and JS in separate files.
Vue - Points above. Even though template, CSS and JS are packed in one file, CSS properties still obey CSS specification whereas React applies its own rule to convert CSS properties to camel case and replace hyphen with blank. Template uses HTML 5 syntax with additional vue syntaxes such as v-binding for data binding and v-on for event binding. The initial shock was there for me but it subsided eventually after building few small apps.
I hope it helps everyone to decide the next JS framework to use on front-end side. Thanks.
Thanks for your input, Connie. Let's go for it. Especially since this point @sergeant-q highlighted is true:
My only wish is that maybe @sergeant-q, @distalx, or whoever else starts playing around with Vue in a branch (after the Meteor 1.7 upgrade) for 30-60 minutes can open up a hangout, or let others know that they're in the 24/7 hangout on https://codebuddies.org/study-group/%2523codebuddies-meta/f3tfAb6Y2CEADZaFe, so that other folks in the community who want to observe or want to get their feet wet with vue.js can jump in and learn/observe/even collaborate.
I know I'm guilty of not doing this consistently for every issue I work on, but given the nature of this particular project, I think it'll help with the momentum.