Vue.js: The Documentary (Trailer) [video]
youtube.com
youtube.com
Self funding for indie developers would be great but I don't see this helping. We don't have enough filmmakers or (I bet) enough audience attention and desire for many more of these.
Completely understandable. It's an unfortunate aspect of humanity in general: the need for God(s) to worship and follow, as well as the need to be part of a group.
If we can't change human nature at its core, we might as well leverage it for something good.
There are plenty of computer things and people from the 70s and 80s which would make great documentary subjects.
Agreed - there's probably loads of interesting documentaries that could be made with people still alive. A movie on game consoles of the 60s and 70s would be great, imo. And there's probably some out there I don't know about.
It also helps to recognize the "human factor" behind the decisions being made with these tools (although YMMV on whether this documentary will succeed in doing so).
Tangential, but I think that's one thing "Indie Game: The Movie" did really well - it covered the indie game devs while also really humanizing them and their weaknesses.
I believe Vue 3 is supposed to fix much of this, but its unclear whether its going to be backwards compatible.
Also worth noting its not 100% true you can't manage your data separately you just need to manage the reactivity yourself.
Also, implementing your own reactivity is very unintuitive. You need to implement your own “diffing” (is this change worth rendering) to know when to force Vue to render. This is definitely not how Vue was intended to be used.
E.g: redux uses a react provider to inject the data into the component tree because of this. Vuex does the same for vue.
React will simply render the object you give it. That means that React doesn’t need to know when data changes, it simply renders the ui, diffs it to the current ui and applys the changes.
Unless your using component state but even then, it’s the rendering that measures change. The act of updating the state just lets React know “time to see if anything important changed”. Vue seems to tra Co data changes granularly which means it needs to understand the change at the point if mutation. This means it needs control of the data you want to render.
I find the limitation to only use dumb pojos much worse. AFAIK that is going to be fixed in Vue 3 since the reactivity system will use Proxy instead of getters and setters.
let external = {foo: {bar: 'something'};
new Vue({
data: function() {
return {
ref: external.foo.bar
};
}
})
external.foo = {bar: 'something else'};One big issue for me has been that your data layer needs to know about and use Vue, which seems unintuitive as Vue is a UI library.
In all honesty, the pitfalls are not that many, easy to understand, learn and avoid or get out from.
I spent way more time trying to figure out doing even basic things in react than debugging reactivity in vue. Espacially since the later has a fantastic doc and a small api.
From those who know more, is this a correct appraisal? Do the other frameworks also allow you to pick and choose and only use small parts as needed?
E.G: I teach reactjs by first starting with a simple script tag like you can do with vue. No webpack. No JSX. Suddenly students get it. No magic. It just makes sense.
But this approach is not common nor first class citizen.
What I like with vue is that the authors understand the value of scaling up, as well as scaling __down__. You can feel it in the doc, the API, the community...
So yes, all in all, vuejs will be lighter to use, not because the others can't be, but because it doesn't judge you for wanting to.
then i learned vue, and was able to build something in an afternoon. and, at the end of the afternoon, i had the tooling too. but the vue learning path doesn't teach tooling until after you get a feel for why and how vue can solve your problems.
how it is taught is 100% of the reason vue found a place in my life. HUGE missed opportunity by the other frameworks, which are so eager to prove that they have the bells and whistles that they trip over their own feet trying to get people started.
had i learned from you rather than from docs, i would be using react in my personal projects and never would have looked at vue.
Rarely do I ever have to think about performance, and when I do, it is always complexity in the non-vue code, not the framework itself.
Generally yes.
Vue is on the lightweight side of things until you start adding more stuff (Vuex, Vue Router, http client, etc).
If you want a truly lightweight champion and are comfortable with vanilla JS check Mithril. In less than 10kB gzipped you get components, router, and an http client. By default it uses a hyperscript notation but you can use JSX too which is much better IMO.
Here is a starter kit I made for Mithril with Webpack to get you started: https://github.com/PierBover/mithril-jsx-starter-kit
Vue is on the average weight side of things.
Frameworks like HyperApp and Preact I'd consider lightweight.
I'd use React too if I had to work on a big project where there are more important factors than performance and bundle size.
https://en.howtruthful.com/o/react_is_a_better_framework_tha...
I see why Vue was created, but I don't see why it's still around.
React has solved the complexity pain points, it's easier to develop in React than Vue now (imo), and Vue has just been copying features.
Not to mention the massive environment and cross-platform access (I don't see Microsoft making a react-windows-vue fork).
Also, if you want a job, React is far more popular (look at the hiring threads)
I would recommend Create React App using a TypeScript template.
> npx create-react-app demo --template typescript
edit: you guys can downvote all you want, I'm simply showing you the other side. I already use React, I don't care if you do or not.
Because a lot of devs in FE-land have little experience, so they still have to find out the hard way how some stuff breaks.
Like the "stringly typing" (a.k.a. no type safety because we use strings to refer from one bit of code to another) you see a lot in Vue: it is plain evil and can only be fixed by a really clever IDE or a new version of Vue that breaks compatibility.
A React code base feels like real programming comparably. I always recommend it much more.
React does not have low barrier entry. you can't just open notepad, edit blank index.html, include react.js via script tag and tinker with your html in 10 minutes to create simple widget - you need additional tooling, typescript compiler, etc. Vue is for people who used jQuery before and want to go reactive in shortest time possible.
You can choose how much React you want. You don't need tooling or JSX even.
If someone needs to change an H1 tag of X-component I don't have to do it and I trust that an HTML (I don't even know what you call someone who exclusively uses HTML at this point) expert, can do it.
I haven't developed much with React, but I suspect it has the same issues as template engines; pug, mustache, etc. That is, it's so intuitive to JS devs that simple tasks can no longer be performed by low-level HTML developers. Which means that some FE or FS developer is going to get tasked with menial data entry work when we need to rephrase a paragraph or header.
I don't use TypeScript either. I don't really have issues with typing. I've been developing for almost 8 years, primarily with JS but also GOLang and PHP. Not sure if I'm doing something terribly wrong or what. But I haven't had a typing bug that takes more than like 10 seconds to solve, and they're rare.
I do agree, the job market is overwhelmingly React. Might be because of React Native.
(...which is not a knock on Vue! I still love Vue. But I'm starting to love Svelte even more.)
I work on the backend side of things currently, but from what I've read React is more powerful/ sought after currently, so that's what I'm going to be dedicating my tie to learning, wonder if this documentary might make me reconsider!
If you want to make an educated bet about where things are going, you might want to learn Svelte, which abandons the virtual DOM approach for a compiler, allowing you to set values with a simple `=` and creating smaller, faster code (Svelte's output doesn't include Svelte, and there's no virtual DOM to keep updated). Svelte's actual coding experience is also pretty similar to Vue - single file components, etc. :)
My work has a react front end, not sure if there's lots of transferrable skills between the two. For one thing I'll have to learn basic web stuff like CSS, HTML and all, and that will transfer, at least.
Svelte was developed by Rich Harris, who works at the NY Times.
Apple is hiring Svelte developers https://twitter.com/mansur_ashraf/status/1204542852581273600....
I personally think it will be OK. :)
Yes, several actually.
They are Chinese though, not American, so you might not know them as well.
If you live in the Vue bubble then of course you will get favorable opinions. I've been using both React and Vue for a couple of years and I don't think "Vue is generally considered more pleasant". Some people prefer one, some people prefer the other.
I'm not in the Vue community. When 'React vs Vue' was happening back in 2015 I was using a completely separate virtual DOM library (Ractive) so I'm relatively unbiased.
I've just been coding, writing, and speaking about JS for a decade and I know many people who've tried both. They might be wrong, but React having a steeper learning curve (JSX is harder to pick up than SFC), a more variable developer experience (depending on state management libraries used) and more complexity than Vue is definitely the common opinion.
Vue was heavily inspired by Ractive though.
(btw I didn't downvote you)
Edit:
> but React having a steeper learning curve (JSX is harder to pick up than SFC)
I don't know.
Templates might be easier for beginners than JSX but OTOH with Vue you need to learn a lot of abstractions (eg: watchers, reactivity is not obvious, etc). I think the complexity of getting started with React is that you need to add more third party libraries plus configuring your dev tools with Webpack/Babel/etc. CRA solves that for you but it's a huge black box if you don't know what you are doing.
I will agree that with Vue you can start directly with script tags a la jQuery and that is great for a lot of projects and beginner devs.
Not being able to use html closes a lot of doors. Have you ever wanted to just copy and paste html into a template script tag and have it render? With react you need to convert that first..
I want to grab a json list and display it in a li tag. With vue I fetch, assign to a variable and in the template v-bind it. With react I would write another component for the li maybe do a foreach.
Watchers existed in jQuery. Not sure they are so difficult one would choose react most people would just avoid them.
Bold statement. To me, more pleasant development is having everything typed.
I couldn't imagine not having my props, styles, and state protected.
The premise of the podcast is quite interesting. If you follow it, do you have any episodes you'd recommend in particular?
1. https://www.indiehackers.com/podcast/137-taylor-otwell-of-la...
2. https://www.indiehackers.com/podcast/131-tyler-tringas-of-ea...
3. https://www.indiehackers.com/podcast/086-lynne-tye-of-key-va...
It's just different, not better. Maybe you will prefer one over the other but that is a very subjective thing.
I've been using both for 4-5 years and I much prefer other libraries these days like Inferno, Mithril, Preact, or Svelte.
As a lover of React, and not having used the others you mentioned here...what is it about them you like over React?
Mithril gives you components + vdom + router + http client in 10kB gzipped. Performance is faster than React + Redux. I think it's the most zen and elegant of all options since your state is basically vanilla JS but that's very subjective.
Inferno and Preact are very React-y. Inferno is much much faster than React. Preact is much much smaller than React. With both you can add a compat layer to use React libraries.
Svelte is another beast altogether. Instead of a vdom it compiles your code to super efficient impertive DOM manipulation code which produces extremely small and fast apps. I don't love the ergonomics but the results are super impressive.
See these benchmarks for my claims about size and speed:
https://krausest.github.io/js-framework-benchmark/current.ht...
The primary thing I care about when comparing frameworks is developer productivity. Bundle size is a moderate concern, saving 50-100ms to re-render a giant table doesn't even make the list.
But there are more specific use-cases where it would indeed matter. Hand-held devices, high calculation loads, etc.
Even Dan Abramov's popular talk on React Suspense shows that even the newest versions of React begin the chugg under the influence of an extreme performance situation.
Remember react is in it's own ecosystem with their own language/acceptable approaches. The framework will allow you to do more than the community so you need to align how you write with what is acceptable. Last year the might mean classes this year hooks. React is more of a religion or a way of life compared to other frameworks.
Because of this there is a moat around react if you are looking to be hired. You need to stay upto date and involve yourself with the community. You can easily dip your toe in react and the coding is simple. The ecosystem is where the complexity lives and this is as important to understand/accept if you plan on moving into it.
Vue is more like jQuery when it came out. It immediately makes sense with what you have been doing and allows you to use as much or as little as you want.
I think react is great for someone who knows nothing (it provides a community / approach) or for someone who knows too much (those who pushed angularjs too far and got burned) but for the masses in the middle it demands you forget much of what you know works to accept this new way of life. It's too much for many. This is where Vue shines, it allows you to build in whatever way you want which allows you to leverage what you already know.
Also I really think you're overselling the differences between React and Vue. I generally think of them as interchangeable.
They are not interchangeable unless you do things the react way. Drop one html tag like < <div class="main"> in react and it breaks.
Being popular has no bearing on cult-ish status. Popular places like Starbucks can be described that way where a special language is required to order a cup of coffee.
Can you explain? That is entirely valid JSX and you should be able to drop it in any React component.
most other jsx-based things like hyperapp accept `class` just fine from what i know
I should declare an interest; I wrote the history of the Definitely Typed project last year:
https://blog.johnnyreilly.com/2019/10/definitely-typed-movie...
It's exactly this sort of vibe I had in mind as I was writing it. I'm really looking forward to watching the full documentary!
What's extra impressive about Vue.js is that fact that it appeared at a time when everybody was suffering from 'framework fatigue', and when React was the framework to be seen with, and still rose to the top.
Goes to show that there's always room for better (and easier).
Like with a typical musical biopic.
Good on the core team, they made something super nice.
React - yes, as long as you don't have to setup the compiler (ie: use create-react-app) and you know javascript (specifically ES6+) reasonably well.
We use Angular at work, just because it comes with that set of standards, we don't really have to introduce our own rules, but they're already there.
While the react API is comparatively simpler/smaller...