Svelte 5 ruined the framework so badly I might have to switch completely away. I just discovered that you have to use`$state.snapshot` any time you want to pass data to functions that won't work with a`Proxy` — and it doesn't work recursively. This is on top of tons of subtle semantic changes having to do with when reactive stuff runs. It's a totally different framework, and it's stupid.

Is dart good? Maybe I'll just go back to clojurescript. Or maybe go all in on rust.

Reply to this note

Please Login to reply.

Discussion

youd be a badass rust ninja 🥷

Oh man. I haven't really messed with svelte 5 much.

if you want to go full horse shoe, that might be #go templ and htmx

That's crazy, I always wanted to do clojurescript but never had a chance, recently been falling a bit in love with rescript, pretty interesting.

Neat, I hadn't heard of that one

Rust. JS has gone sideways

🌎🔫

I just updated all my stuff to Svelte 4 this weekend. I’m holding off on updating to Svelte 5 for as long as I possibly can. I loved Svelte because it felt very close to working in vanilla js without all the annoying posts. I hope it hasn’t become just another complicated framework like React.

why did you leave clojurescript in the first place?

I couldn't justify using such a niche tech stack at work. It would have been a good idea though.

C

do you have any experience with React?

Lots, but hooks were a similar misstep. Clojure/reagent had hook-like things before react did, but they were actually good (they used state atoms, and automatically tracked dependencies).

if you are targeting web apps, React would be a great choice—simple, fast, small, scalable, etc, all with a strong ecosystem.

I use the StencilJS framework at my day job. It's equivalent in scope to vanilla Svelte, in that it's great at building reactive web components, but it doesn't have all of the server support that SvelteKit provides.

Nice, stencil looks interesting

Yeah it uses JSX syntax, which is nice, and defines components as classes, which I think I prefer to Svelte.

It's really difficult to work with svelte 5 specifically after updates of runes. but i still like it.

Those major updates on every JS frameworks is a real pain in the ass. Nothing seems to be backwards compatible. I wonder why… Using a JS framework for the long-term seems to be a no-go for me.

So when working with JavaScript, I try to go as vanilla as possible.

I had svelte 5 on my roadmap. Now I'm unsure... it was supposed to simplify reactivity.

It just moves complexity around. Instead or using stores any time you go outside a component context, you use runes everywhere. But the gotcha is those are proxies, not real objects.

objects = data, right? right?

Yes, by object I mean pojo. Classes should not wrap data except as a way of providing functionality

yeah, i hate classes, i refuse to use them, and thus a whole swathe of languages are unacceptable to me

data structures as in a sequential, heterogenous array of data? these are essential

part of the reason why i'm a #golang maxi... Go doesn't encumber data structurse with anything more than you see encoded on the wire

this ironically also means less time waiting for compilation and execution

What a bummer.

Wonder how they justify this decision, will do my due research.

Thanks for this explanation!

Proxies allow you to track changes deeply, so no more`x = x` silliness. Which is nice, and helps with performance, but leads to madness.

Tradeoffs right? XD

Seems to be a recurring pattern for most JavaScript frameworks/libraries.

Can't leave well enough alone

As someone who tried almost everything extensively, if you wanna stay web I would recommend: Solid JS or Vanilla + a signal lib

And Rust + Web isn’t there yet (but might soon be !) slower, bigger worse DX

For pure rust take a look at egui or gpui

just go vanilla or vanilla ts

Honestly not a bad idea

people look at it like it's a 7 headed beast but it's usually because they know the framework and not js/ts. Ran into that first time 15 years ago w/ jQuery people. It seemed odd they didn't get js without the framework but it's just continued since then.

I love vanilla js. When I realized that with modern browsers you didn't need jquery it was a revelation. I still have that skillset and use it often to step outside framework limitations.

Exactly my point. 😁 You already know vanilla, so, just dump the fw and go with it. Use some es6 or 7 to help minimize your code a bit and it just flows.

Dart feels kinda bloated tbh.

Just come to VueJS ✌️

I used VueJS for a number of projects. I was happy with it. 2.x and later 3.x. You do learn about the edge cases and oddnesses over time, and there aren't too many of those.

I’d agree plus lnbits, cashu, .. a decent amount of projects in this space use it and if you like vanilla JS, TS,… all is allowed I would still recommend to use NuxtJS ( vue’s meta framework 🚀 )

Really? Damn, now that I was gaining confidence and liking it...

I'm probably being dramatic, but I'm currently in the Anger phase of the 5 phases of grief

Hahaha

Let's talk about the typical phrases of js frameworks: endpont, bloated spaghetti.

Just learn go and build everything from scratch

Yes, my next golang-based PWA will be a hit I'm sure

Well it won't be slow, that's for sure. Go, HTMX, sprinkle vanilla JS. I have a little nostr go HTMX framework you can check out.

https://github.com/0ceanSlim/buildr

Just make a manifest and serve it as a PWA

Use Javascript, and React (or even Vue, seems popular as well). Code everything server and client side in the same language, and you can even re-use code client- and server side (the infamous "common" folder). Then WHEN or IF you have enough success that scalability or a huge userbase makes it practical, then you can become a language snob and reimplement everything natively on whatever computer you are running on. javascript+node.js is good enough to move really fast and you can focus on building a userbase before becoming bogged down in learning a bunch of "not needed yet" stuff. You'll do better with flexible technology you know really well and can use everywhere rather than having to learn the "optimal choice" for every little sub-decision you need to make on your journey.

This repository has 25k stars. It isn't my cup of tea and I haven't tried it, but if you did actually consider going "all in on rust" you could get a fullstack app framework for web/desktop/mobile that programs a lot like those JS frameworks do.

https://github.com/DioxusLabs/dioxus/

They even say "we rely on concepts like components, props, and hooks to build UIs, with our state management being closer to Svelte than to SolidJS"