Live data from Hacker News

Tenets

github.com

111–120 of 162 posts

Re: Tenets

#111
post #14

> Instead of striving to be the fastest or smallest or whateverest, we explicitly aim to be the framework with the best vibes. Except that svelte advertises itself constantly as being faster and with smaller bundle sizes. Which is a good thing. I don't buy that it priortizes 'good vibes' at the cost of those other things. If it's saying it prioritizes 'good vibes' and everything else, then that's pretty meaningless -…

I gotta say, the “vibe” of the new $props syntax, to me, is awful.

I love that I can just use

    export let prop;
because it’s just JavaScript.

The new runes syntax

    let { prop } = $props
Is not. This just makes me incredibly sad.

Like all things, everyone is going to switch to the new syntax because it’s shiny, even though it objectively has a greater cognitive load (and IMO, looks ugly). My components are going to start looking like Svelte, rather than JavaScript.

The reason I prefer svelte over Vue is because there’s less to remember. Looks like I’ll be looking for a new framework after Svelte 5. Just like I did after Vue 3.

Also,

> Snippets are more powerful and flexible, and as such slots are deprecated in Svelte 5.

Removing slots, which feel really natural in HTML, with snippets - that are expressed as JavaScript values passed to a component - honestly, I don’t see the prioritisation of vibe, here.

These changes are going to make it so, so much harder to teach Svelte that I honestly feel despondent. I feel like svelte 5 has just totally forgotten that Svelte is supposed to feel like JavaScript. Super sad.

Re: Tenets

#112

> "we explicitly aim to be the framework with the best vibes." I quite love this.

It’s meaningless.

That's a good thing, we should embrace it more — we should be more driven by gut feelings than "objective" bullshit, that's how you end up with nonsense like megabytes of JS going down the wire in the first place.

Re: Tenets

#113
post #7

Now I know why I dislike Svelte so much, I don't believe in its principles. Which is perfectly fine, a framework can't please everyone. HTML is not the mother language - It's actually pretty terrible for describing dynamic user interfaces. This is why JS solutions are so appealing. If HTML is so magical why do they need a fancy template language? Magical, not magic - I really don't want it to feel magical either. I l…

> Magical, not magic - I really don't want it to feel magical either. I like explicit behavior and I think that is my problem with the whole wrap everything in observables approach. It's too magical.

Don't worry - they hint that they're gonna change it again in Svelte 5 anyway, so the suckers using it can throw away their code and start again with slightly less magic ...but hey, vibes!

Re: Tenets

#114
post #25

The direction React/NextJS has taken modern web development is a modern day abomination. I say this as a passionate fullstack developer whos worked for YC startups and a fortune 10 company within the past decade. I appreciate Vercel as a company too; I have no hate towards them but the NextJS 13 release almost made me quit web development. Svelte is an absolute love language to the web and a direction for healing the…

React and NextJS, although technically part of the same sub ecosystem, have very different approaches to DX, backwards compatibility, marketing and commercialization...

Re: Tenets

#115
post #97

Anyone know why these principales are called tenets? I believe it’s a concept that originates from amazon.

Not sure why you're getting downvoted. I worked at Amazon for a few years and a Tenets section was common in our documentation.

I still use them. Defining the DNA of your project in this way aids in decision making.

Re: Tenets

#116

Whenever I've tried Svelte I've honestly had a horrible experience, which surprises me somehow. It definitely failed on the "magical, not magic" thing. The exact workings of $ is still extremely confusing It's funny, a lot of the Svelte fans made me think that it would be very simple and nice, and that React was much clunkier, confusing, and implicit, but my experience was the total opposite

I believe this was likely referencing your topic of confusion there to at least some degree:

> Historically I think Svelte went too far into magic territory, where it's not 100% clear why things work a certain way, and that's something that we're rectifying with Svelte 5.

Svelte 5 uses a different approach to reactivity using runes: https://svelte.dev/blog/runes

Re: Tenets

#117
post #14

> Instead of striving to be the fastest or smallest or whateverest, we explicitly aim to be the framework with the best vibes. Except that svelte advertises itself constantly as being faster and with smaller bundle sizes. Which is a good thing. I don't buy that it priortizes 'good vibes' at the cost of those other things. If it's saying it prioritizes 'good vibes' and everything else, then that's pretty meaningless -…

I gotta say, the “vibe” of the new $props syntax, to me, is awful. I love that I can just use export let prop; because it’s just JavaScript. The new runes syntax let { prop } = $props Is not. This just makes me incredibly sad. Like all things, everyone is going to switch to the new syntax because it’s shiny, even though it objectively has a greater cognitive load (and IMO, looks ugly). My components are going to star…

How is this new syntax not javascript? I’m not familiar with it but your example is just object destructuring no? What am I missing?

Re: Tenets

#118

Earlier quoted context omitted.

I gotta say, the “vibe” of the new $props syntax, to me, is awful. I love that I can just use export let prop; because it’s just JavaScript. The new runes syntax let { prop } = $props Is not. This just makes me incredibly sad. Like all things, everyone is going to switch to the new syntax because it’s shiny, even though it objectively has a greater cognitive load (and IMO, looks ugly). My components are going to star…

How is this new syntax not javascript? I’m not familiar with it but your example is just object destructuring no? What am I missing?

Because it’s introducing a magic global compiler directive - $props - that’s unique to Svelte.

Everyone knows what

    export let prop = 10
means. But what’s $props? It’s a magical invocation (literally, a rune) of a compiler directive. So while it’s valid JS, it’s actually a signal to the compiler, with special behaviour. It’s something you need to learn and understand beyond just JavaScript.

Also, to your point, it’s not actually destructuring. This statement is declaring “prop” as a new property.

And finally, this statement actually does export “prop” to a user of the component. But that’s no longer explicit.

Re: Tenets

#119
post #105

Earlier quoted context omitted.

Even after all that, you still haven't made explicit the thing that needs to be explicit for any of this to make any sense: ".... for UI *IN A BROWSER*" I know it's convenient to forget the millions of us who spent years and continue to spend hours implementing UIs outside of a browser context, but it certainly doesn't feel very polite.

1. I've already answered about "in the browser" 2. Even in the browser it's the worst possible system 3. The original comment I was replying to didn't make any references to "in the browser", and explicitly talked about things like QML and XIB which are very much not in the browser.

Sorry, somehow I really misread your comment. Not sure how I was so wrong in my reading.

Needless to say I agree with everything you've written, and also appreciate the use of a DAW screenshot to make the point.

Post reply on HN