[HN Gopher] Vue 3 as the New Default
       ___________________________________________________________________
        
       Vue 3 as the New Default
        
       Author : tosh
       Score  : 80 points
       Date   : 2022-02-07 21:03 UTC (1 hours ago)
        
 (HTM) web link (blog.vuejs.org)
 (TXT) w3m dump (blog.vuejs.org)
        
       | tambourine_man wrote:
       | >From a Library to a Framework
       | 
       | What I liked about Vue was that it was a simple view library.
       | Yeah, there it goes.
       | 
       | There seems to be a hatred towards simple tools in our generation
       | that I can't fathom
        
       | npunt wrote:
       | Good news! I hope the focus can shift to the ecosystem now. Two
       | friends of mine have big projects that are stuck on Vue 2 because
       | of Vuefire.
        
       | ramesh31 wrote:
       | I've got a real sour taste in my mouth over Vue. React is the
       | industry standard, and it's what the overwhelming majority of
       | libraries, frameworks, documentation, and tooling around front
       | end web development is geared towards supporting. People use
       | React because it's the right tool for the job, and they have no
       | real strong opinions about it either way.
       | 
       | But people use Vue for ideological reasons. For some opinionated
       | reason or another, they take issue with using a framework created
       | by Facebook or they have some silly little nitpick about a
       | particular detail of the API. And my company is now full of these
       | "loud minority" ideologues that have successfully lobbied the
       | entire engineering organization against React. Now we're
       | rewriting perfectly functional software to be more "standardized"
       | with the rest of the company in Vue. It's insanity.
        
       | DaiPlusPlus wrote:
       | Some day, eventually, after all the dust settles in the JS
       | ecosystem, there will be a stable framework for managing UI state
       | in a sane, sensible, predictable and well-understood manner - and
       | someone at the WHATWG/W3C will _finally_ write up a spec and the
       | functionality will be baked-into Chrome, Edge, Firefox, etc.
       | 
       | And we'll be free from having to learn a new JS framework every 6
       | months. And maybe even npm hell too.
       | 
       | Until then, time to buy another Pluralsign training course...
        
         | turndown wrote:
         | What do you think of htmx[0]? It feels like something that
         | could actually fit into the HTML standard.
         | 
         | 0: https://htmx.org/
        
         | irrational wrote:
         | This is me. I really don't like using frameworks/libraries and
         | want it to get baked into the standard library.
        
         | whalesalad wrote:
         | I use Vue 3 without the new composition api. It looks and feels
         | more or less like the old Vue.
         | 
         | I actually think things are pretty great these days. Even
         | amongst the different frameworks and tools, things are settling
         | into a common set of ideas and concepts.
         | 
         | If you made the choice to build an app on React/Vue a year or
         | two ago, that decision is still valid today and I think that
         | speaks a lot for how far things have come.
        
         | themacguffinman wrote:
         | Why are people so obsessed with finding one true way to do
         | everything until the end of time. Things change, things become
         | more diverse, and the world is richer for it. There already are
         | sane, sensible, predictable and well-understood frameworks for
         | it, it's called Vue, it's called React, etc. You don't need a
         | committee to bless it before you can enjoy such a stable
         | environment. _It 's your choice_ to learn a new JS framework
         | every 6 months.
         | 
         | Just make something valuable and use what suits your needs.
         | That's all that has ever mattered.
        
         | slig wrote:
         | And then it will become "old", exactly like Django/Rails feels
         | today and the wheel will be reinvented with something "better"
         | and more complex.
        
         | nikanj wrote:
         | Meanwhile my Swing skills from the 1990s remain relevant today.
         | Java might not be hip, but it sure does get the job done for
         | enterprise apps
        
         | topicseed wrote:
         | NPM hell is what got me to move from beloved TypeScript to
         | Golang. Coming back to pet projects a few months later was true
         | excruciating pain every single time.
         | 
         | Today, it's Go in the backend and Svelte in the frontend, or
         | vanilla JS for very small and simple tools.
        
           | jrib wrote:
           | are you leveraging a framework on the backend for Go?
        
           | ashishb wrote:
           | As someone who programs on backend, frontend, and Android
           | apps, I can't agree more. Javascript frameworks and NPM hell
           | is terrible. You rarely have the problems in Go/Kotlin/Java
           | world that are considered normal in the NPM world.
        
         | powersurge360 wrote:
         | I have been _very_ bullish and excited on LiveView and its
         | cousins from other platforms. Hotwire was the first time it's
         | entered my personal dev world and I've been working on a hobby
         | trivia app since Christmas and it has been an absolute _joy_.
         | 
         | It's obviously not a one to one replacement for an honest to
         | god frontend application, especially one that can be recompiled
         | into an offline capable native app, but where you can use it,
         | it does a lot of lifting.
        
         | root_axis wrote:
         | This comment is just low-effort complaining that we see on
         | every JS thread on this site. Vue 3 is an option you don't have
         | to use, same as React, Svelte or just jQuery. The implied
         | suggestion that nobody should ever publish new code is tiring.
        
           | DaiPlusPlus wrote:
           | Yes, that was half of my post - but the first half is my hope
           | that eventually the functionality from React/Vue will be
           | built-in to the DOM (or at least baked-in to the browser).
           | We're already half-way there with WebComponents (though I'm
           | not a fan of WebComponents as-is, but that's a tangent).
           | 
           | Also, I still believe that web-pages should be functional
           | without JavaScript. For all of my traditional SSR / non-SPA
           | projects I definitely put effort into ensuring my projects
           | exhibit graceful degradation.
           | 
           | There's already a lot of things we can do without any
           | scripting at all: animations and dynamic content, for example
           | - and we can even use CSS trigger-tricks for basic
           | interactivity (e.g. show/hide toggles) all without scripting.
           | What I'd love to see next is something like WPF/XAML's
           | declarative data-binding in HTML (but in a less broken
           | way...) - and I'd like to be able to submit a <form> element
           | directly as JSON, as well as AJAX-like <form> submissions
           | that don't replace the current document, all without
           | scripting - that's the dream (oh, and CSS positioning
           | relative to an arbitrary named element, I could go on...).
        
         | arnvald wrote:
         | Is is really that bad?
         | 
         | I'm not very up-to-date with JS frameworks, so please bear with
         | me. I know that new libraries pop up here and there, but if I'm
         | not wrong, React is by far the most popular, and React has been
         | around for almost 10 years. Vue's not much younger, and now
         | it's 3rd major version.
         | 
         | Is there such a big difference between JS front-end frameworks
         | and the rest of the world?
        
           | svachalek wrote:
           | Things were really a mess for a while, maybe 6-7 years ago.
           | Nothing was compatible with anything else, even itself from
           | last month. But nowadays things are pretty stable, if you
           | stay away from the hotness of the month which will be
           | forgotten next month.
        
           | bussyfumes wrote:
           | I think it's a bit of an outdated stereotype from back in the
           | day when this kind of frameworks started popping up left and
           | right. It was a major shift from jquery-based sites/apps
           | which scared many people away from diving deeper into front
           | end. Nowadays you can stick to one of the major three and
           | you'll be fine for the foreseeable future. This new Vue
           | version is the most disruptive change we've had since a long
           | time ago in the fe framework space and it's still ok to get
           | used to.
        
             | FinalBriefing wrote:
             | Yea, most of my Vue 3 components look just like my Vue 2
             | components (which look a lot like Vue 1 components). Really
             | easy transition for devs.
        
           | qbasic_forever wrote:
           | I think a lot of people got a bad taste from webpack, gulp,
           | etc. projects ~5 years ago that immediately mired you in deep
           | config complexity to do anything. Nowadays there's a lot more
           | documentation and emphasis on zero config / convention / CLI
           | tooling to remove a lot of that complexity. Things are a lot
           | better nowadays, especially if you're doing something
           | greenfield and can use the latest tooling like vite, esbuild,
           | etc.
        
             | e12e wrote:
             | >... especially if you're doing something greenfield and
             | can use the latest tooling like vite, esbuild, etc.
             | 
             | Well, kinda? I tried to set up typescript, storyboard and
             | tailwind the other day, via create-react-app - and it's not
             | really clear if I can/should use npm or yarn, and what, if
             | any bundles like webpack or esbuild/craco I need... Nor did
             | any of the documentation/tutorials "just work" - and as
             | final punishment I think I had to download more than a gig
             | of dependencies.
             | 
             | I get that there are many layers of tooling, but when I
             | can't seem to get half the features of qt, nor a gui for
             | 4gl development - it does seem like there's a lot of churn
             | and pain for limited gain.
        
             | [deleted]
        
           | grayrest wrote:
           | The ecosystem largely settled out in 2014 when everybody was
           | "javascript fatigue" complaining. The developments since have
           | mostly been refinements on details of the development setup
           | or state management. There's new stuff but I'm pretty sure
           | anybody who wrote React at the time would be comfortable with
           | the slight modifications in the patterns of how things fit
           | together.
           | 
           | We're kind of into the next generation of frameworks (Solid,
           | Svelte 3, Vue 3) and that's more about how much JS is getting
           | delivered to the client. The current area of exploration is
           | "partial hydration" where the goal is to write stuff using
           | the component model but do server rendering and only send JS
           | for the parts of the page that'll change client side. For
           | quite a few classes of application this would substantially
           | reduce the size of JS over the wire. All this is less of a
           | benefit than the state control React brought so I expect
           | slower/partial adoption.
           | 
           | More broadly, there's been a resurgence of the render
           | everything on the server and send html diffs approach in the
           | form of alpine and htmx. The other potential area for change
           | on the horizon is web assembly getting host bindings support
           | so it doesn't have to bridge through JS to affect the DOM and
           | other browser APIs.
        
           | EMM_386 wrote:
           | > Is is really that bad?
           | 
           | It's not that bad. I am lead on a large Angular 13 project
           | and we love it, easy to work with, build, deploy. We have
           | literally no issues at the moment. .Net 6 C# APIs on the
           | back-end, Oracle database. It just works.
           | 
           | Take everything with a grain of salt.
        
             | oblio wrote:
             | How is internationalization?
             | 
             | Last I asked, it was still a tire fire, even after more
             | than a dozen versions and after a fully mature previous
             | framework that was replaced :-(
        
               | FinalBriefing wrote:
               | Yea...Angular made a huge (and hardly documented) change
               | to their internationalization library that forced us to
               | migrate to a third-party one.
               | 
               | Basically, they now (as of Angular 12) force you to build
               | a difference version of your app for each language you
               | support, and either serve them up at different URLs or
               | use cookies to serve up the right version to each user.
               | The technical reasons make sense...your translations
               | occur at build-time, rather than at run-time, but it's a
               | pretty drastic change that occurred out of nowhere.
               | 
               | Not a fan.
        
             | Alex3917 wrote:
             | I feel the same way about Angular. There some minor bugs
             | that have had open issues for 5+ years and may well never
             | get fixed, but by and large the day-to-day experience of
             | writing and maintaining code is pretty great.
             | 
             | I just don't get the concept of people being like, I'm
             | going to start a project that's likely going to take the
             | ten years to become successful, but I'm not willing to
             | spend the twenty hours to read the documentation so that it
             | will be successful.
        
         | dham wrote:
         | It's already invented. It's called HTML. You then use whatever
         | language you want to generate it. We were doing it a long time
         | ago with Java Server Faces. Now there's stuff like Liveview and
         | Turbo (Rails community)
        
         | visarga wrote:
         | That's how great humans are at generalization, just 10 years of
         | collective search and we reached the web UI enlightenment. /s
        
         | lmarcos wrote:
         | I don't think that's gonna happen. The same way modern
         | browser's don't come with a java runtime to run servlets.
         | 
         | Something better (and different) will come after SPAs, and the
         | cycle will start again.
        
           | DaiPlusPlus wrote:
           | > The same way modern browser's don't come with a java
           | runtime to run servlets.
           | 
           | Servlets run on the server, I think you meant applets? If so,
           | I'd argue a counter-point: WASM and <canvas>.
        
         | ioseph wrote:
         | What new framework is being widely adopted that was released in
         | the last 6 months? The most recent one I can think of is Svelte
         | which came out 2016.
        
       | randomsearch wrote:
       | Worth noting that major frameworks have yet to update for Vue 3.
       | Make sure you check all your dependencies before embarking on
       | that course. I like Vue 3 so am finding this seemingly slow
       | adoption to be a real pain.
        
         | FinalBriefing wrote:
         | Hopefully now that it is the default, more UI libraries will
         | focus their efforts on it.
        
       | spuzvabob wrote:
       | If you are considering upgrading from Vue 2 with Vuex note that
       | store getters caching is not working in Vuex for Vue 3,
       | potentially hindering performance significantly.
       | 
       | The issue was reported multiple times but it's not yet fixed:
       | https://github.com/vuejs/vuex/issues/2102
       | https://github.com/vuejs/vuex/pull/1883
        
         | FinalBriefing wrote:
         | Still! That's surprising.
        
       | greencore wrote:
       | Vue 3 perhaps is ready but not its ecosystem. Important libraries
       | (like form management) port to v3 is still in alpha. It was one
       | of the most painful development experiences because of that.
        
         | The_rationalist wrote:
        
         | newsbinator wrote:
         | I can't use Vue 3 in production until Vuetify is close to ready
         | (which it's currently not).
        
       | bussyfumes wrote:
       | This is great news, Vue 3 looks much better than its predecessor.
       | 
       | However, I had to migrate a Vue 2 + TS app to Vue 3 and their
       | guide at the time was pretty underwhelming. Props to Evan for
       | dedicating time to migrate a sample app and publish the migration
       | as commits, but the app was quite basic and dependency-free so I
       | had to figure out a lot of stuff on the go. The compatibility
       | build actually slowed down my progress as it took me a lot to
       | figure out that I didn't actually benefit much from it and could
       | just drop it. Till this day I don't have a clear idea about what
       | @vue/compat is for.
       | 
       | Hopefully, with them pushing Vue 3 as the new default, there will
       | be more detailed how-tos available.
        
         | FinalBriefing wrote:
         | That's been my experience, as well. I got everything working
         | because I'm very familiar with Vue, but I did end up removing a
         | lot of TypeScript from my app just to make it all easier.
         | Luckily, Vue makes it easy to mix and match JS and TS (for
         | better or for worse).
        
       | hendry wrote:
       | I was dumb enough to use https://unpkg.com/vue on my projects and
       | now I have to deal with "Uncaught TypeError: Vue is not a
       | constructor" this morning.
        
         | numbsafari wrote:
         | Folks shouldn't use unpkg.com.
         | 
         | The only relevant discussion you can find regarding a privacy
         | policy is a twitter thread that ends with the developer saying
         | "I really should discourage adoption because it's getting too
         | big."
         | 
         | No dig on them, but, really... at some point we need to start
         | doing a better job of owning this stuff.
        
         | tosh wrote:
         | Same here, this is how I found out about Vue 3
         | 
         | related: The mess we're in (a talk by Joe Armstrong)
         | 
         | https://www.youtube.com/watch?v=lKXe3HUG2l4
         | 
         | (yes, I know, I should have vendored the dependency in the
         | first place)
        
         | phil-martin wrote:
         | Same here, I wonder how many apps around the world silently
         | stopped working today.
         | 
         | It was my own fault for not self hosting or not pinning the
         | version, but it was still a surprise!
        
       | ramesh31 wrote:
       | Can someone make a convincing argument for me to adopt Vue that
       | doesn't involve "it isn't React"?
        
         | Rodeoclash wrote:
         | I've used both extensively now. Out of the two I prefer React.
         | I'd describe Vue as more bells and whistles, less safeguards. I
         | think developers prefer Vue because it doesn't get in your way
         | like React does (despite React having very good reasons for
         | getting your way!)
        
         | The_rationalist wrote:
        
         | dham wrote:
         | It's more sane. It does fine grained updates without having to
         | manually optimize like in React -
         | useCallback/useMemo/React.memo/splitting components. Think of a
         | list view where you want to update a single item in a list.
         | 
         | People generally understand Vue better because you can just
         | push to an array and it reacts to it properly without having to
         | commit to the React immutable data religion.
         | 
         | Basically if you were to competently build a framework you
         | would have Vue, if you were trying to impress your colleagues
         | and bring up bullshit comp sci principals so you can write 50x
         | more lines of code while spending 100 hours trying to optimize
         | a list re render, you would have React.
        
       | keithnz wrote:
       | I recommend looking at Vitesse :-
       | https://github.com/antfu/vitesse
       | 
       | Even if you don't like the exact setup , you can customize it to
       | your liking (and there are a number of forks that do exactly
       | that), but it puts together quite a few things that you often
       | want as an "out of the box" experience.
        
         | jmull3n wrote:
         | Thank you, I was looking for something exactly like this
         | yesterday. How does it compare to Nuxt 3?
        
           | FinalBriefing wrote:
           | Different tools, I think. Nuxt is like a framework for your
           | framework. vitesse looks like it is just a template to start
           | any Vue 3 project with.
        
         | FinalBriefing wrote:
         | Thanks! I like having these to compare my projects to.
        
       | jackconsidine wrote:
       | I get the impression that Vue 3 was a greater effort than
       | expected. It was talked about for years before beta release (on
       | Full Stack Radio, for example). March of 2020, I was at Vue Conf
       | (days before Covid lockdowns began), and I heard a few people
       | complaining that this wasn't the expected official Vue 3 release.
       | Here we are almost two years after that and it's _just_ becoming
       | the default.
       | 
       | That said, I understand that there were monumental under-the-hood
       | improvements, some of which spawned off Vite.
        
         | FinalBriefing wrote:
         | I'm surprised, too. I'm happy they took their time as Vue 2
         | was/is still a great framework, but I probably would have
         | chosen Vue 2 for some projects had I known it would take this
         | long to get Vue 3 out the door.
        
       ___________________________________________________________________
       (page generated 2022-02-07 23:00 UTC)