Echo JS 0.11.0

<~>
goblinking 2984 days ago. link 3 points
React and redux have achieved their prominence by holding their resolve with the Node philosophy: do one thing and do it well.  React provides us with natural language and tooling for composing declarative interfaces (be they web component, native UI elements, or experiments like react-music) without seeking to blur its own lines.  You've got a view.

Redux establishes the same clear line: here lies the data.  Either describe its changes, provoke them with middleware, or implement an alternative side effect model (redux-observable, redux-saga, and friends) but here is absolutely not the place for your view. 

Redux without React is still a monumentally useful library that falls under the "simple but profound" umbrella, which is also true of React sans redux. 

I highly doubt that Vue will manage to provide a superior model for both of these separate but foundational concerns.  When one also considers that React and redux both excel in their composability and that neither library entails commitment to the other (to use React and Redux gains you two ecosystems of community support and development, neither married to the other), it seems to me that Vue will become another Angular (beloved and used wholly by very specific shops) with a few less trappings.

It looks clean enough, and as a library even quite nice, but in the bigger picture it is trying to solve answered questions with poor solutions: why are we trying to replace what has been effectively & elegantly decoupled with something monolithic?

Replies

ben 2984 days ago. link 3 points
Vue isn't strictly monolithic and is intended for the view layer, much like React. It can be sandwiched with Vuex, a Redux-like state library, for unidirectional data flow. By default, it uses a MobX-like approach to data binding (AFAIK MobX is influenced by Vue's default approach to binding, which is getter/setter based), and a pub/sub model for cross-component communication (not sure whether this has been retained in v2.x). It's seldom that we see React without either Redux or MobX, so making these tools/methodologies first-party makes sense.

Vue's drawcard, for me at least, is its tiny size. Last year, I built out a rather large app using Vue < 1.0, and found that the whole thing came in under the gzipped size of React alone (with no additional tools like Redux or React Router).
goblinking 2982 days ago. link 1 point
Fair enough on the first point: I am perhaps too much of a purist with separating concerns.  It's not enough to put me off of trying Vue.

The size difference is very impressive ... if you don't mind, about how complex was your finished app and how large was the bundle versus something similar you have done with a React (and friends) based app?