I’ve shared a prediction for Meteor in 2019. Anyone in to share this? Give Meteor some credits and publicity?
I’d switch Imba to Svelte in this prediction. The latest and greatest in the making, v3, is going to be stupid awesome if all goes well!
I find both Svelte and Imba super interesting. Imba syntax looks really easy on the mind and both libraries are skipping the virtual dom and even frameworks at run-time and compile to “low-level” optimized JS at build.
But the virtual dom is a great example of the JS hype in action. Just few years back virtual dom was hailed as a faster way to implement the view layers and the entire front-end community organizes around this premise and build all the leading libraries on it just to be proven wrong in less then 5 years! here is an article explain why something like Imba is faster. I don’t know if it’s just me or I’m missing something here, but I find that to be a form of large scale insanity.
Did anyone look into GlimmerJS?
It claims to be the fastest in the web and it uses handlebars, so in theory it should be prefect evolution of Blaze.
so in theory it should be prefect evolution of Blaze.
A Blaze 2.0 that keeps tight to Meteor but is based on a fast and thriving framework could gain it’s popularity back by doing so.
Yes exactly, it supports component and it is blazing fast, surely faster than react and vue, and it also standalone and supported by Ember.
I think it should be Blaze 2.0, we can keep the same syntax since it’s handlebars.
Sadly there’s a little more to it, but I get where you’re coming from! I toyed with the same idea regarding MarkoJS six moons ago…
Well, if React and Vue can be integrated then I’m sure GlimmerJS can as well. It doesn’t have to be exact Blaze functionality. The same conversion hindered the adoption of vue with meteor, since a lot wanted first-class integration like blaze with some magic.
The same conversions hindered the adoption of vue with meteor, since a lot wanted first-class integration like blaze with some magic.
Should we have 1 getting started guide for all frameworks? As in: One page with all the steps for all the frameworks.
Sure, it’s relatively easy to get any frontend framework working with Meteor. I’ve setup Svelte and Hyperapp from scratch just for the fun of it.
I was talking about creating a real drop-in-replacement for Blaze with Glimmer or MarkoJS, which seems like a… little bit larger task, even if the template syntax is handlebars.
But I’d love to see this happen.
Do you mean the tutorial or the guide? I guess you mean keep the common sections and have a dropdown with the desired view layer?
Yes exactly. It will give a quick glance about Meteor support.
Awesome idea, I highly recommend this.
Care to offer more details ?
Np. Ofcourse it has to be taken with a grain of salt. React will remain very popular, but I think Vue and other atm less popular non virtual dom view layers will make their way in/back or continue to rise. Interesting read (as shared by @alawi):
What I’ve faced by switching from Blaze to React (I had to unfortunately) was that I suddenly had to do a LOT of stuff myself. Stuff that Blaze did for me for free… React recently updated its API to suppert hooks. Last thing I remember about Blaze was this beauty:
Template.someTemplateName.helpers({
someVarFromHook() {
return Session.get('someVarThatWasSetSomewhereElse');
}
});
It does exactly the same and is much simpler. The only downside was that if you did not come up with proper names, it was not always clear from where the updates originated.
React was the first
An independent view layer that can be build in a SOLID way and that makes in-efficiencies ‘forgivable’ by providing a virtual dom. React was the first view layer that actually achieved that. At least, the first marketed one. (I’m not aware of any earlier ones at least). Later that time Angular (the biggest and most popular at that moment) broke with its V1 version, upsetting the community, making a lot of developers switch to the new kid that already gained a huge momentum.
Angular did recover and is now on solid ground again. Its actually used in huge companies and for a reason. Its a framework. Highly opinionated and if you like typescript and observables, you might like Angular too.
Developers like freedom. Most developers became software developer, because only time and their creativity was the limit. That’s why a lot of developers tend to stick with React atm. Though you have to do a lot of things for yourself, its exactly this freedom that makes it popular.
Vue arrived on the scene
Vue has only just arrived on the scene. For 2 years now it has been steadily rising, but in usage its no where near React or Angular. Did it come too late? Companies in the European and American regions have mostly adopted Angular and React already. However, there is something interesting going on. Though usage is relatively low, the number of github stars is higher then both Angular and React!! What is going on here? Here’s the stats from Github at time of writing:
- React: 118.942 stars
- Angular: 43.993
- Vue: 123.879
If it works why change it?
You see. Companies have a different mindset. Like I mentioned in another thread: “Business people have a different mindset then developers”. In this case, its about reducing risk. Since a lot of companies were using AngularJS (v1) and were happy with it, why now not use Angular (newer versions)?
“Most of the developers in my company are Angular developers so it’s safe to continue using it.”.
Developers love Vue
If you ask developers that have tried Vue. Almost no one will reply that they have anything against it. They either like it or don’t hate it. Angular is hated by some, adored by some and most people have a love hate relationship with it. React is in a better position. Developers love it, but face a high learning curve, because of its JSX syntax and Javascript everything approach. What does not help either is that documentation is scattered everywhere.
In contrast, Vue’s docs are well designed. Its ecosystem of libraries are “plug and play” and consistently documented. It even has a style guide! Vue has a very involved and active community of Passionate People. It has a much more complete and better documented rendering framework - NuxtJS then React’s NextJS. The team is the most ‘agile’ team I know of, because of its open source and I can do what is most valuable mentality. (Thank you @akryum for your integration packages with Meteor). I did not mention the CLI tools.
Vue has been rewritten from the ground up ~2 (almost 3) times. When React came up with Hooks, @evanyou came a few days later with “I’ve played around with it” and now its a thing.
Not there yet, but the trend is clear
This illustrates just how fast VueJS development goes. Developers love it and companies are starting to love it. If you look at the trends from top down, you might not notice it. React and Angular are simply still too big in numbers, but bottom up, you can see that the developers love it. The community is thriving and contributing and it will continue to do so in the next years.
conclusion
React remains strong, but a couple of its biggest advantages over other tools are disappearing. VDOM, component based, state management, jsx. They all are already being replaced or abstracted away by webcomponents, non vdom frameworks and templates like that of Vue’s.
Its a big sign. Microsoft Windows was defacto, until Apple released a shiny macbook that worked really nice with its operating system OSX and its mobile equivalent on the iphone. A bit like how vue works really well with the rest of the ecosystem.
Thank you for the time you dedicated to respond to my inquiry.
I still don’t understand how React isn’t simple and elegant. That reactivity thing you wanted I do something like, using mobx. Same elegance much clearer abstraction between presentational vs injector.
const Session = observable.map({});
@observer
const Wrapper = () => {
const value = Session.get('xxx'); // When 'xxx' variable changes, this rerenders
return <Item value={value} />
}
I’ve checked Vue multiple times, I prefer React, it’s more aligned with the way I like the code to be written. The fact that I have ReactNative and can re-use the components in mobile is also a big plus. I can’t understand why people have a big learning curve with React. I believe they simply didn’t watch the right tutorials
WebComponents and React try to solve different things. They are no mutually exclusive, they can work together.
Cheers!
I still don’t understand how React isn’t simple and elegant.
It is. React is a very powerful tool, but in the right hands. MobX is awesome, but you have to be aware of it. just like Redux. On the elegance part though I think that its part of a bigger discussion. Some people love Javascript everything. In that case JSX and things like styled-components are huge. However I find for example this way of working cumbersome. It gives me overhead to figure out what part is about representation and what part is about logic or data.
This is just an illustration. Fact is that React has a abundance of tools. Vue, Angular and React overlap hugely, but have some distinct differences in their approach. Angular is the framework, React the toolkit and Vue a bit of both.
I’ve checked Vue multiple times, I prefer React, it’s more aligned with the way I like the code to be written.
With you, many more. Time will tell what people prefer on the long run. My prediction in that sense might prove to be entirely false. I’m just aware of a small part of the world
WebComponents and React try to solve different things. They are no mutually exclusive, they can work together.
I know. Its just that… before webcomponents, vue or other component libraries out there, there was only one alternative and that alternative was React. Now its possible to write webcomponents and use it with other libraries to do the state management.
Do you have some recommendations?
I have been learning from a couple of Udemy courses, but still don’t really understand props and the spread instruction (…props).
I saw hooks demo’d on a YouTube video, and I thought “finally, that makes sense!” (and I hope it means that I don’t have to learn Redux!)
As a coding noob, I am learning so much all at once: javascript, meteor, jsx, React, mongoDB, HTML5, CSS, SaSS, Github, debug tools, NPM, ATOM. It is breathtaking, but an exciting new canvas and tools to paint my future.
Any suggestions that you may offer would be appreciated. Also, if you know an experienced Meteor developer who is interested in being co-founder of a startup, I am seeking one or more. I am an experienced Product Manager with a strategy to solve a huge business problem faced by > 40,000 companies worldwide.
If I have to build the solution on my own, I will, but a partner or two would abbreviate time to market and increase odds of success.
Well don’t hold back with questions here. Happy to help out wherever I can. Hope that you will succeed and ofcourse with Meteor!
Btw, focus on javascript related books and tutorial first. A lot of the stuff that you see is purely javascript. This is the same for Meteor, Vue, React or whatever you write. The more you understand javascript, the more you understand the frameworks built with it.
Personally I think If you’ve that experience and the domain knowledge, you’re better off finding a technical partner (unless of course you want to learn for the fun of it), you already bring a lot to the table and the odds of success for you and your technical partner will increase.