I create things by typing nonsense into a computer. Some call this programming. Senior Engineer @PlayStation. Creator of msngr.js and http://BinaryIdiot.com
The DOM APIs are, yes, a bit awkward but if you structure your application well it's quite powerful and most of the times is how you can get the maximum amount of performance out of your application.
Personally I like mixing a little bit of messaging (with something like msngr.js) and straight up DOM APIs. However, if I have to work with a large team then I try to find what their strengths are and I go whatever that direction is because, sometimes, being productive is all that matters and you can make a great application in any framework.
I've fallen in love with vanilla JavaScript the past year. With webpack and ES6, it's enjoyable.
And I love your point about team strengths. Decisions to use a specific framework can have costs that span years. It can change the whole dynamic of your team if you're not careful.
Mechanical engineer who dabbles with Vanilla Javscript and web development as a hobbby. I don't use any libraries or frameworks as they take the fun out creating your own solutions.
I've been an Angular dev for over a year now and I really like. Albeit that, I'm starting to shift to/learn React, and I must say they are both great. Somethings I prefer the Angular way, and some others I would definitly choose React.
Never experienced Vue or Elm, but Elm's functional nature does intrigue me.
Cycle.js. When I was looking for a new framework for a project at work, I evaluated Angular and React first. Angular had too much "magic", ie stuff that " just works" (except when it doesnt and you spend hours decifering errors and asking what you did wrong). React had a cool idea with the virtual DOM, but the execution is lacking. It never actually was "just the V in MVC". You write classes that have render and lifecycle hooks just like a normal framework. Also Redux sucks when it comes to either deep nested state or asyncc stuff.
Then I found Cycle.js. It was using the virtual DOM idea from React but better. No Components, just factories creating POJOs that are evaluated in patch. Also the stream based programming make it easy to do async logic which was nice because to add life updates via websocket, I just had to add 50 LOC and then merge the data stream of the websocket with my existing data stream from HTTP without changing the rest of the logic. Also it uses purity as advantage when testing so you have an easier time there.
Half a year later, I spoke at the first CycleConf and joined the Core Contributor team.
I've had great joy working with Stimulus this year. It feels nice and light weight. It works seamlessly with turbolinks if that's your jazz. It pushes you to keep one set of HTML templates, adding a layer of JavaScript on top of them.
If you're already using standard Rails views, it's easy to throw Stimulus in the mix.
One of my favourite solutions are web components. So currently I'm using mix of Polymer and lit-html for templating. It is very performant combo, has small footprint and "is native" to browsers/DOM model.
I prefer Ember. Its documentation may seem difficult at first glance. The learning curve is hard, I agree.
When I made my first project with Ember I felt pain. Because it was just getting data from Github thanks to API.
Vue doesn't support Model system such as Ember. Anyway, I built my project with minify options I was shocked. Because although only one component, although there is no another library but output size 70kb?
Why? I don't have any idea. But nevertheless, I love Ember. My favorite framework is Ember.
I used Vue, Angular and React in my work projects. I didn't use Ember my work projects. I was scared. Because our projects are very large.
I use React + mobx. My favourite combination to build frontend apps.
That said, I am more interested in the philosophy that Sapper (Svelte) has taken to solve frontend problems. I am not using them yet but I follow the projects with great interest. "The magical disappearing UI framework", it's just that cool :)
I've worked with angular 1, and angular 2 in the past, but since the end of 2016 I shifted to React and nowadays I make it my choice for personal and professional project, always.
The first thing that makes me enjoy React is that it is not a framework, but a library, so it gives me freedom to choose the other pieces of my application without opinionated matters.
Also, I like the functional nature of React and how it makes simple to compose functionality.
I recently even made an example showing how we can use react, stateless components, a state container solution and higher order components to make a controllable walking cat: codesandbox.io/s/github/armand1m/w...
But yea, Vue is gaining attention, and today I've even tweaked a little bit with Vue + JSX. Still, I have no idea of when I'm gonna shift from React, but as it's history has been until now, I would expect React to become some kind of pattern instead of dying actually.
Top comments (58)
What, no vanilla JavaScript love in here?
The DOM APIs are, yes, a bit awkward but if you structure your application well it's quite powerful and most of the times is how you can get the maximum amount of performance out of your application.
Personally I like mixing a little bit of messaging (with something like msngr.js) and straight up DOM APIs. However, if I have to work with a large team then I try to find what their strengths are and I go whatever that direction is because, sometimes, being productive is all that matters and you can make a great application in any framework.
I've fallen in love with vanilla JavaScript the past year. With webpack and ES6, it's enjoyable.
And I love your point about team strengths. Decisions to use a specific framework can have costs that span years. It can change the whole dynamic of your team if you're not careful.
look at my comment a few above this one.
We're a Preact team. Can't say what my "favorite" is, but I trust the community in thinking that Vue must be great. It's so well-loved.
Elm sort of counts in this discussion and I've played with it and really like it too.
I'm also the fan of Vue
You did tag this post with vue 😂
Elm is so great! I use it whenever things get more complicated than custom mini-libraries written in Neapolitan JavaScript.
I've been an Angular dev for over a year now and I really like. Albeit that, I'm starting to shift to/learn React, and I must say they are both great. Somethings I prefer the Angular way, and some others I would definitly choose React.
Never experienced Vue or Elm, but Elm's functional nature does intrigue me.
Cycle.js. When I was looking for a new framework for a project at work, I evaluated Angular and React first. Angular had too much "magic", ie stuff that " just works" (except when it doesnt and you spend hours decifering errors and asking what you did wrong). React had a cool idea with the virtual DOM, but the execution is lacking. It never actually was "just the V in MVC". You write classes that have render and lifecycle hooks just like a normal framework. Also Redux sucks when it comes to either deep nested state or asyncc stuff.
Then I found Cycle.js. It was using the virtual DOM idea from React but better. No Components, just factories creating POJOs that are evaluated in
patch
. Also the stream based programming make it easy to do async logic which was nice because to add life updates via websocket, I just had to add 50 LOC and then merge the data stream of the websocket with my existing data stream from HTTP without changing the rest of the logic. Also it uses purity as advantage when testing so you have an easier time there.Half a year later, I spoke at the first CycleConf and joined the Core Contributor team.
I've had great joy working with Stimulus this year. It feels nice and light weight. It works seamlessly with turbolinks if that's your jazz. It pushes you to keep one set of HTML templates, adding a layer of JavaScript on top of them.
If you're already using standard Rails views, it's easy to throw Stimulus in the mix.
One of my favourite solutions are web components. So currently I'm using mix of
Polymer
andlit-html
for templating. It is very performant combo, has small footprint and "is native" to browsers/DOM model.polymer-project.org/
Vue by far is my favorite. It really works well.
I've changed to loving Svelte v3 the most. It is much easier to use than Vue. It also helped my projects to be super small and fast! Check it out.
I prefer Ember. Its documentation may seem difficult at first glance. The learning curve is hard, I agree.
When I made my first project with Ember I felt pain. Because it was just getting data from Github thanks to API.
Vue doesn't support Model system such as Ember. Anyway, I built my project with minify options I was shocked. Because although only one component, although there is no another library but output size 70kb?
Why? I don't have any idea. But nevertheless, I love Ember. My favorite framework is Ember.
I used Vue, Angular and React in my work projects. I didn't use Ember my work projects. I was scared. Because our projects are very large.
I use React + mobx. My favourite combination to build frontend apps.
That said, I am more interested in the philosophy that Sapper (Svelte) has taken to solve frontend problems. I am not using them yet but I follow the projects with great interest. "The magical disappearing UI framework", it's just that cool :)
I've worked with angular 1, and angular 2 in the past, but since the end of 2016 I shifted to React and nowadays I make it my choice for personal and professional project, always.
The first thing that makes me enjoy React is that it is not a framework, but a library, so it gives me freedom to choose the other pieces of my application without opinionated matters.
Also, I like the functional nature of React and how it makes simple to compose functionality.
I recently even made an example showing how we can use react, stateless components, a state container solution and higher order components to make a controllable walking cat: codesandbox.io/s/github/armand1m/w...
But yea, Vue is gaining attention, and today I've even tweaked a little bit with Vue + JSX. Still, I have no idea of when I'm gonna shift from React, but as it's history has been until now, I would expect React to become some kind of pattern instead of dying actually.