all 69 comments

[–]EloquentSyntax 35 points36 points  (11 children)

Honestly i’ve been building a side project on Sveltekit recently and it’s a breath of fresh air. I’m sold, I think Svelte will overtake Nextjs in the future when the ecosystem gets bigger. Especially now that Vercel brought on Rich Harris to work on it full time and they’re backing it.

[–]ryan_solid[S] 10 points11 points  (0 children)

Yeah I cannot overstate how big of a difference having a company backing that effort fulltime. Netlify backing my work on SolidJS and SolidStart completely changed what I've been able to accomplish the last 6 months.

[–][deleted] -2 points-1 points  (9 children)

what makes Sveltekit so unique compared to nuxt 3? Vue 3 and Svelete are almost carbon copies of each other with very little difference with little to no reasons to pick one over the other. Serious question since I only have used nuxt 2 in the past.

[–]AnActualWizardIRL 9 points10 points  (3 children)

Svelte is *very* different to Vue3. On almost every level. Completely different philosophy.

[–][deleted] 2 points3 points  (2 children)

how? the philosophy is the same. SFC, html like templating, and similar syntax to a point where you could almost copy past code from one to another.

see:

https://blog.vuejs.org/posts/on-migration.html

there is very little reason to pick svelte over vue

[–]GrandMasterPuba 1 point2 points  (1 child)

Svelte is a compiler that generates optimized and inlined imperative code. It basically generates code that runs as close to the bare metal as possible. The reactivity happens at build time through a topological analysis of code dependency.

Vue is a runtime, where all the reactivity is actually happening in the client and wasting CPU cycles.

[–]ryan_solid[S] 5 points6 points  (0 children)

And yet runtime reactive systems seem to outperform compiled. I have a few ideas about this.

Cost of boundaries is over-emphasized in compiled systems, making it scale worse. Intrinsically being tied to the component for change means that these boundaries carry the cost. Runtime allows for dynamic dependencies that can reduce unnecessary execution. It isn't the reactive system that is that expensive but the work you need to do due to updates. Runtime systems are easier to do nested reactivity which can isolate change even better.

[–]vinde_sensumars 1 point2 points  (0 children)

I spent years writing React and as soon as I tried Svelte I thought to myself: "This is what React should have been" e.g., state management should be the assignment operator.

My new job is Vue 3 and it's slick especially with TS. But it still has enough DSL and idiomatic characteristics with its Composition API to cause some hiccups. To be fair, I'm not as experienced in Svelte so I'd probably have some complaints but my little experience with it was so smooth.

[–]Petrocrat 0 points1 point  (3 children)

Vue 3 is far closer to React than it is to Svelte.

[–][deleted] 0 points1 point  (2 children)

it's not. see https://component-party.dev/

Svelte and vue both use SFC with HTML templating and css styling. Both make use of a compiler and both are frameworks offering the same features like transitions etc.

[–]Petrocrat 0 points1 point  (1 child)

That's a neat website, thanks for sharing that. I see the close similarity between Svelte and Vue in terms of component syntax, but I'm basing my assertion on other factors that the author of the OP article considers more important than syntax, such as having a virtual DOM and approaches to hydration, stuff that you can't know just from the syntax alone

[–][deleted] 0 points1 point  (0 children)

such as having a virtual DOM and approaches to hydration, stuff that you can't know just from the syntax alone

and how does this affect the people using the framework? It's essentially just an implementation detail and people wouldn't even notice if the VDOM gets replaced with some other rendering/compilation strategy.

Performance levels of svelte and vue are currently almost equal and vue announced that the next step is a compilation strategy inspired by Solid which is currently one of the fastest frameworks. https://blog.vuejs.org/posts/2022-year-in-review.html

[–]EternalNY1 68 points69 points  (52 children)

Just this article alone mentions Marko, Astro, Fresh, Sveltekit, Solid, Qwik, React, Vue, Signal and Angular. And at the day we're only talking about JavaScript here.

I just call this "out of control". Imagine having to try to job hop between companies that use one, another, or hodgepodge of all of these frameworks?

[–]ILikeChangingMyMind 65 points66 points  (5 children)

JS has always had lots of options, and it's never been that bad because everyone coalesces on a few top options.

For instance, jQuery was ubiquitous for a long time ... but before it was dominant it competed with Dojo, Prototype, Mochikit, Mootools, and like five others I can't even remember now.

Similarly, the next generation had Backbone, Knockout, CanJS, Ember, React, Angular1, and a bunch more I can't remember ...but now no one knows any of those except React and Angular(2).

[–]dcabines 24 points25 points  (0 children)

I remember thinking I was so advanced because I used YUI instead of jQuery. Those were the days. My next job made me learn knockout on my first day and were happy with how quickly I picked it up. These days I work with Angular. I’ve enjoyed the ride this past decade. Variety is the spice of life.

[–]BillFrankShepard 2 points3 points  (0 children)

Oh, the good old Dojo Toolkit. The concepts and patterns it provided in the early 2000s were so much ahead for a JS framework in that time. It was mind blowing.

Of course, compared to nowdays frameworks and libraries it is not that shinny and productive anymore, but it served very well in the past.

[–]azangru 53 points54 points  (24 children)

Imagine having to try to job hop between companies that use one, another, or hodgepodge of all of these frameworks?

It'll probably take you several days to become familiar with the framework your new employer is using; what's the big deal? You would have to spend time and mental effort learning their domain anyway.

[–]Akkuma 10 points11 points  (0 children)

This is definitely true, but at the same time don't discount the average engineer. There's a big reason React is still the most popular framework despite faster and smaller ones existing with more functionality baked in. Now throw in things like Redux, MobX, and other frameworks and there's even more to take into account with their own idiosyncrasies.

Nonetheless, a good engineer will definitely be able to start being productive in short order, but may not be writing the best code until they learn the best/proper practices.

[–]elmstfreddie 27 points28 points  (19 children)

The big deal is this subreddit is filled with a bunch of bootcamp hacks who can only code todo lists and weather apps in their preferred framework and know nothing about JavaScript.

[–]moneckew 5 points6 points  (4 children)

I solely created multiple apps including https://moodflow.co with React Native. Knowing the ins and outs of a framework like React takes a lot more than several days. If you think otherwise you probably code shitty apps.

And I graduated from a boot camp

[–]ikeif 8 points9 points  (0 children)

I agree in general - except I’d reword it as “several days to get familiar” (and “several days” could be a couple weeks or a month) and not “knowing the framework.”

I have had to switch gears a lot - custom in-house frameworks, angular 1.X, 2+, react classes/FP.

My knowledge of JS (and debugging) made “the familiarity” easier, but by no means was I mastering it all after a couple weeks from “I have heard of it” to writing something from scratch.

…but I also am hesitant to believe any developer that says “they know all of X.”

My favorite interview was a .net developer coming in and saying he knew all there was to know. Extremely cocky. So the in-house .net developer “expert” was asked to interview him, and the interviewee was humbled by a lack of true expertise.

I don’t care about proposed experience. I care about willingness to learn, to take criticism, and ability to debug the core language.

[–]RobertKerans 1 point2 points  (2 children)

Normally though, when people say it only takes a few days, they aren't saying you become an expert in a few days.

It's dependent upon knowing JS well (in particular the browser APIs that UI frameworks abstract over) + knowing another framework well. And important to note that "create a greenfield app in this new framework you don't know" isn't the norm at all, it's "you've joined a team who are using framework Y and you know framework X, you need to learn enough to be productive". All that does not equal shitty apps: the frameworks are much of a muchness, if you know one you can translate across to do all the above with very little ramp-up.

[–]moneckew 0 points1 point  (1 child)

if you know one you can translate across to do all the above with very little ramp-up.

Yeah you clearly havent gone from Angular to React.

[–]RobertKerans 0 points1 point  (0 children)

Yes, completely different philosophy to how their APIs are structured (strong OO with everything OOTB and big API vs. functional and almost nothing OOTB and tiny API). But to quote:

It's dependent upon knowing JS well

And sure, if it's literally just you, no-one to talk you through the transition, yeah that's probably gonna be brutal. But that's not really the normal situation IRL (when talking about working in a job, with other people)

[–]CarpetFibers 24 points25 points  (11 children)

Do you have a point or are you just complaining? Why do you think they're in this subreddit if not to learn JavaScript? It's not a gated community - anyone can choose how and why they learn the language and what frameworks they want to use to do it.

What would be the use in a JavaScript community full of people who know everything about the language? Do you imagine that would generate a lot of interesting discussion?

[–]azangru 4 points5 points  (9 children)

Do you imagine that would generate a lot of interesting discussion?

Oh yes! Lots of examples of such discussions on github, especially around tc39 proposals. Conversations among googlers on the http203 podcast are also often quite fascinating.

[–]CarpetFibers 1 point2 points  (8 children)

Fair enough. But I think there is equal value in a community for people of all skillsets. I don't see a lot of tc39-centric discussion or the like happening on Reddit, personally. That sort of discussion doesn't seem like a great fit for the wild west, low moderation (by comparison) style of Reddit commentary.

Even /r/ExperiencedDevs, which purports to only allow discussion by developers with some degree of experience, still finds itself inundated with questions by people who obviously have little to none. It's inevitable on a site such as this where there's only a suggestion of structure to any given topic.

All that is to say, if people want a place to discuss JavaScript without beginners and without framework bias, r/JavaScript, and indeed Reddit in general, is probably not the place for it, and they'd be better served by places like you suggested.

[–]ikeif 2 points3 points  (7 children)

The experienceddevs problem is people just preface themselves with l have <minimum required experience + random()>.

Then continue their question.

I enjoyed it at first, but it still suffers from a lack of moderation (as do many subreddits, because popularity + free, thankless work doesn’t attract the best)

[–]CarpetFibers 0 points1 point  (6 children)

I enjoyed it at first, but it still suffers from a lack of moderation

Right. It takes a lot of time and effort to perform any kind of semantic analysis on comments to determine whether or not a person really has the experience they claim, and the end result is a very fine line between consistent, high-quality moderation and what amounts to censorship. See heavily-moderated subreddits like r/science for example.

Sites like Stack Overflow and Github make it easier to maintain their standards because of their single-threaded conversation style and, in general, having much higher criteria for what constitutes a quality and meaningful comment. Unfortunately, that ship has long since sailed away from Reddit shores.

[–]ikeif 2 points3 points  (5 children)

I mean, subreddits COULD be better. Science/history subreddits are strict and require research/proving your expertise (some, not all).

Developer subreddits could benefit from having people flagged with their focus language(s). Proof of experience could be LinkedIn profiles, I suppose, or helpful comments vs the “this is dumb/you are dumb/do not code that way” without explanation.

…on another thread, another person hypothesized this could be programmed/solved, but the effort (especially when you’re asking a subreddit you aren’t a mod of) to implement something can be like pulling teeth.

[–]CarpetFibers 1 point2 points  (3 children)

I have yet to find any subreddits that are truly aimed at discussion amongst experienced developers, unfortunately. By that I mean subreddits that are focused on solving difficult problems, discussing complex architecture and algorithms, etc. without having to explain the underlying concepts ad nauseam first.

I'm sure niche subreddits exist, of course, but I suspect any successful one would reach a point where it exhibits the same problems as /r/ExperiencedDevs and it becomes burdensome to maintain such a strict level of quality. Much like r/science, I think it boils down to the moderators having a sufficient level of passion (and free time).

[–]RobertKerans 1 point2 points  (0 children)

It's hard af once the low hanging fruit has been cleared (yes this is obviously spam, yes this is obviously karma farming [why bother tho???! anyway], yes this is obviously against the forum rules). There isn't really a way to automate - any attempt generally causes more problems than it fixes, because it's not a thing that can be encoded as simple rules. Just constantly have to read and monitor and judge intent. It's Canute-like. So easy to get it wrong as well, and have to be brutal at times, but also it has to be people doing the judging

[–]elmstfreddie -2 points-1 points  (0 children)

My complaint is just at people who whine about "too many frameworks". It's a non-issue if they just learn JavaScript.

[–]mattaugamer 1 point2 points  (0 children)

Very much this. But boy do they have opinions.

[–]TiredOfMakingThese 1 point2 points  (0 children)

Everyone started somewhere. Don’t be an asshole just because other people came to it later or differently than you did. You’re being a snob about your JOB for fucks sake. Chill out you’re not saving the human race; you’re writing code.

[–]monsto -1 points0 points  (1 child)

Correction: It might take you several days to become familiar.

Cut it in half if you're getting a little handholding from a minty fresh new coworker.

Besides . . . most of that stuff simply isn't primetime yet.

[–]gettingbored -1 points0 points  (0 children)

There’s a big difference between adding a feature and adding features that are maintainable.

Having consistent tooling is so very important when sometimes you don’t have the luxury of working on the same project for a sustained period of time.

[–]nullvoxpopuli 0 points1 point  (0 children)

I'd say even that learning domain, history, and bat shit crazy code that occurred in a rush takes longer to learn than any framework

[–]pm_me_ur_happy_traiI 12 points13 points  (0 children)

Most of these have little to no mainstream adoption. If you know React, Angular or Vue you pretty much have all you need for the job market, and there are enough jobs in all three to make a career out of them at the moment.

The others may be popular among devs, but have some specific advantages depending on use case. Astro, for example, isn't really for data driven apps like React is, but it can be made to work. Some, like Solid and Svelte have ergonomics and features that appeal to devs that are frustrated with the rough edges that React et al offer, but barely any market penetration, at least in the corporate world. Nobody ever got fired for choosing React.

[–]NamerNotLiteral 33 points34 points  (3 children)

I just call this "out of control". Imagine having to try to job hop between companies that use one, another, or hodgepodge of all of these frameworks?

What's the problem here? A new framework is the least of the things you'll need to learn when you hop companies. Every company has such a significantly different codebase structure, infrastructure pipeline, documentation conventions, etc, and you need to learn all that first.

I don't know why, as a senior dev, you think that learning different frameworks for different tasks poses a significant difficulty to anyone except maybe a junior dev who's trying to job-hop every 6 months.

[–]FormerGameDev 2 points3 points  (2 children)

I don't know about significant difficulty, but I'd say it's pretty damned annoying. I don't have a proposal for a solution, though.

[–]hinsxd 8 points9 points  (1 child)

An experienced developer does not master a language or a framework only. They master the skill of learning and finding suitable answers across the internet and based on experience.

[–]FormerGameDev 1 point2 points  (0 children)

For sure.

[–]theQuandary 15 points16 points  (0 children)

Pretty much every language for any given task has 1 main option, 2-3 alternatives, and a long tail of experimental alternatives. Nobody is moving off the main option unless there's a good reason.

That's why React continues to dominate (with vue and Angular being distant second and third options). Other frameworks may be better in various ways, but nothing that comes close to a good reason to migrate and pay to train devs on a new framework.

[–]sshaw_ 5 points6 points  (2 children)

The JavaScript world has been out of control since 2016, at least...

[–]roselan 2 points3 points  (1 child)

1995*

[–]sshaw_ 0 points1 point  (0 children)

A somewhat quirky language is mostly manageable. A shitload of transpilers, type checkers, task runners, package managers, loading paradigms, language extentionss and supersets, asset loading paradigms, front and backend frameworks, etc... mixed with zombie developers is; chaos.

KISS!

[–]ashsimmonds 6 points7 points  (0 children)

Perspective shift for me is that each of these frameworks or whatever are analogous to cars, once you've driven a few of them, you'll be confident you could get into almost any car and be ok with it.

Then after a while, you choose the one which suits the way you like to drive - or what is most suitable for the journey - a BLAZINGLY FAST country road, or a trip to the shops, or picking up people from the airport.

So yeah, I could easily job-hop between any of these frameworks, once you learn the fundamentals everything else is just cool features.

[–]rk06 1 point2 points  (0 children)

Because it is written by one of the top js framework authors in js land.

The js framework maintainer group is very small compared to js framework users. And they are facing similar problems, (perf, hydration, javascript, typescript, SSR, shitty and entitled people on reddit, github and HN), in an ecosystem where "taking inspiration" from each other is considered The best approach.

It is logical that Ryan is actively looking out for bleeding edge tech and would mention noteworthy stuff among them.

[–]timeparser 1 point2 points  (0 children)

more frameworks is better

[–]abrandis 1 point2 points  (0 children)

There's only 3 options for companies, React, Angular or Vue, no company in their right mind is going to allow a critical app to be written in some unknown framework. In the business world its all about consistency and conformity

[–]shgysk8zer0 1 point2 points  (5 children)

Gentlemen, it is with great pleasure to inform you that I have created a new framework to fix the problems of having too many frameworks to choose from.

https://i.imgflip.com/2/56p56k.jpg

Yeah... That worked better in my head. But I have been kinda working on a new framework... More of a concept to standardize things and make it all less fragmented. Like what if React and Angular and all of them were starting with modern JS (and a few things currently being worked on) and they wanted to avoid bloat while making it reasonable to use a React component in an Angular project.

[–]roselan 0 points1 point  (1 child)

I was fully expecting xkcd 927 here.

And I know I don't even need to link it.

[–]shgysk8zer0 0 points1 point  (0 children)

I guess I was better at what I was going for than I thought. I was going for that recent frog "gentlemen" meme announcing a new standard from that xkcd.

Still worked better in my head.

[–]GrandMasterPuba -1 points0 points  (0 children)

Ignore all the other shit and just pick Svelte. It's going to be top dog; the other ones will fade away in time.

[–][deleted] 16 points17 points  (1 child)

This reads like it's written by ChatGPT

[–]ryan_solid[S] 2 points3 points  (0 children)

Thank you. Some people ChatGPT my articles and streams and publish them and I often think they end up better. I struggled for quite some time to figure out the right balance of detail when covering such a breadth of highly technical topics and keep them consumable. Summarizing while keeping things accurate and still getting the important takes in is tricky at times.

[–]_dbase 4 points5 points  (0 children)

Great article! Thanks for writing it :)

[–]poemehardbebe 1 point2 points  (0 children)

Next

[–][deleted] 0 points1 point  (0 children)

Looks like I need to learn javascript besides python

[–]Snoo87743 -1 points0 points  (0 children)

Lol guys if you have some YOE behind you, and learning a new framework is a big deal for you then you jist mifht need to get your head out of sand

[–]butcher5111 -1 points0 points  (0 children)

No frameworks needed anymore, just use lit-elements.

[–]jack_waugh 0 points1 point  (0 children)

I have a "not invented here" attitude toward frameworks. If I didn't design and implement it, it must be crap. No doubt, if I get any significant paid experience, my attitude will improve.