12 ms·
Why Svelte is our choice for a large web project
- Tade0 7y agoI applaud the effort and will be following this project closely. I love the pragmatism of this framework - no solutions looking for problems or complex, badly documented abstractions. Even if Svelte won't be the next generation framework everyone will be using, the ideas it presents are definitely something the web needs.
- vosper 7y agoI enjoyed the brief period I spent playing with Svelte. I ran into some bugs with the built-in animation support when changing states (there's built in animation support for changing states!) that I couldn't resolve, and which were pretty glaring in the UI. This was 6-9 months ago, though, so it may well have been fixed by now. I'd really encourage all front-end devs to take Svelte for a spin, if for no other reason than to see a framework really trying to do things differently. There are a lot of nice ideas in there, and the works-out-of-the-box level is admirable.
- awinter-py 7y agohate all frontend compile steps from a developer productivity perspective but love it from a user value perspective, especially if that enables JS-disabled browsers to more or less use dynamic sites
- mattkrick 7y agoI LOVE what svelte is doing. I've been using React daily for the last 5 years & it does the job, documentation is world class, community is great, but it still has sharp edges & parts that feel bad. Things like hooks make complicated things look & feel simple, which is great for 80% of my work, but for that other 20% (exit animations, high frequency re-renders, drag-n-drop without HTML5) I do some pretty atrocious things to make it work. This is where svelete shines. The readme does a good job of pointing out its shortcomings, too. Primarily, no typescript support yet & the unknown bundle size inflection point. As soon as these are solved, I can't imagine it not becoming the best (albeit not most popular) solution.
- jdmg94 7y agoyou should look into the libraries of Paul Henschel
- TekMol 7y agoI have switched to pure HTML/CSS/Javascript for frontend. And I am very happy with it. I sometimes use external libraries. For example handlebars if I want to template something clientside. But no more frameworks. I think pure Javascript is plenty enough these days. For those who can't live without a framework: What would you miss?
- leadingthenet 7y agoSvelte isn’t reaaaally a framework in the way React is, although they do share some commonalities. It’s pretty innovative in that it’s not really big JS bundle, but more of a compiler for what is essentially quite vanilla JS code. In the end, if you use Svelte, then your final product will be pure HTML/CSS/JS. I love it because it lets me bundle logically related markup, styling, AND javascript in the same .svelte file. Plus, it’s blazing fast.
- thatswrong0 7y agoReact isn't a framework either, nor is it marketed as one. It doesn't have routing, state management, etc. baked in.
- mekane8 7y agoI'm in a similar state of mind as you. Any time I start a web project now I just write vanilla JS and none of my hobby projects has yet to reach a point where I wanted a framework. There have been a couple times, particularly dealing with interactive forms, that I found myself writing a lot of the same code over and over again. I think this would be the first place I would start to build my own little framework. But it hasn't yet made me want to introduce React or Angular to the project. Especially when I consider the hours of free time that I would spend on setup rather than building the actual project itself.
- dbrueck 7y agoEasy to use reactivity + unobtrusive client side templating = happiness. I'm on my 5th or 6th project w/ svelte and it's been an overall joy to use so far.
- 7y ago
- nlh 7y agoI'm rapidly becoming a huge Svelte fan. Quick self-promotion plug (but in the name of altruism): I've been working on an open source project that glues together Svelte (on the front end) and Crystal (on the back end). https://github.com/noahlh/celestite https://github.com/noahlh/celestite Two slightly obscure (but growing) languages/frameworks, but hey, gotta pick a niche. Contributions & feedback welcome!
- skrtskrt 7y agoAs someone kind of sitting on the sidelines waiting for Crystal to gain some traction before I dedicate time to learning/working with it, I appreciate you for digging in and moving things forward.
- brigandish 7y agoI'll definitely give this a try soon, Crystal is lovely and I want to give Svelte a try, thanks.
- ibly31 7y agoCool project! Made me actually check out Crystal Lang - looks like a much nicer, modern version of Ruby without the cruft. Found a straggler "CrystalVue" substring in the main .cr file, you should give 'er the old find-and-replace all to change them.
- nlh 7y agoOh thank you!! I totally missed that.
- mulholio 7y agoWhat I'd hoped to see here was why use Svelte for a large web project. I get the advantages, but devising and maintaining good architecture is hard enough in the more established React paradigm. What do complex and older Svelte apps look like? This is the part that's missing for me, not pleasant DX and early-web nostalgia.
- overtowed 7y agoGood question, thanks for asking it. I didn't explicitly address this (oops) and I'll have to do some more thinking. My first reaction is that: 1) Svelte gives you a solid foundation and lots of flexibility 2) difficulty scaling for large apps is mostly orthogonal to the component library 3) Svelte provides flexible and sugary integration points for these orthogonal concerns For example, since we're talking large projects, the biggest concern is state management. Svelte is like React here, in that you could use MobX or Redux with a connector library, or RxJS with Redux, or other combinations. As long as your solution is compatible with stores like RxJS is, you benefit from Svelte's auto-subscriptions[1] and sugary store dereferencing[2] that's agnostic to your underlying state management solution. [1] https://svelte.dev/examples#auto-subscriptions https://svelte.dev/examples#auto-subscriptions [2] https://svelte.dev/examples#readable-stores https://svelte.dev/examples#readable-stores
- _prototype_ 7y agoSvelte is absolute trash. It actively encourages mutability, which is a one way avenue to bugs bugs and more bugs. ie, shit like this is all over the official documentation: <script> let mutable = 1; function f1() { onMount(() => { mutable = /* do some complex shit here */ }); } function f2() { onMount(() => { mutable = /* do some complex shit here */ }); } </script> <Component onclick={f1}> <Component2 onclick={f2}> </Component2> </Component> Complete non-deterministic state changes. Absolutely abhorrent stuff. Cannot believe my coworkers and others actually like using this absolute garbage of a framework.
- sergiotapia 7y agoI can't believe people use redux in any capacity but here we are.
- Leherenn 7y agoDo you mind expanding on that? I was thinking the same thing at first, why have this monstrous global state which is against every good practice you have ever heard of. But then, if you want to keep state when switching between pages, you need to hoist up that state to the parent component. At some point, there's going to be a component near the root that keeps a lot of state for its children, that then has to be trickled down the component tree. If you don't need to reuse those components in a different setting, then the redux solution feels quite ergonomic. Now, this is coming from an embedded C programmer point of view, and this is my first foray into react/redux, so I'm obviously lacking context. But we're writing a front end for our embedded device, and I have to say I am pleasantly surprised with the experience.
- acemarke 7y agoThere's plenty of reasons to use Redux, even with the additional variety of (good!) options in the ecosystem. You might want to watch my talk on "The State of Redux" from Reactathon 2019, where I covered some of this: https://blog.isquaredsoftware.com/2019/03/presentation-state-of-redux/ https://blog.isquaredsoftware.com/2019/03/presentation-state... Also, note that we have a new Redux Toolkit package, which is intended to simplify many common Redux use cases, and is now our recommended approach for writing Redux logic: https://redux-toolkit.js.org https://redux-toolkit.js.org
- sergiotapia 7y agoI like what I see from Svelte but I'm afraid it's going down the exact same road Meteor did. Too many options, not enough Blessed Solutions for basic things. Take routing for example, in Svelte you have a lot of options but no real #1 "Svelte Recommends (tm)". They should solve this problem before it gets out of hand. It killed Meteor.
- dzonga 7y agoI love svelte. but now resorting to server rendered html pages with sprinkles of JS. shit I work on and I have noticed in the world doesn't really need frameworks like react, svelte, vue etc.
- snapetom 7y agoSame. I haven't done frontend work for a job for about a decade, but kept up to date with things like Angular/Vue/React. I was recently vountold by my wife to create a reunion site for her class. I looked up "barebones front end frameworks." Anything that began the "Getting Started" page with "npm install" I noped out of there. I ended up with Skeleton/jQuery for the front end and PHP Slim for the backend. This is a 5 page, 2 forms, site targeted at 100 people. There's no need to SPA this, npm that.
- smt88 7y agoYou seem to be refuting a straw-man argument here. Why would a hobby site provide a counter example for people talking about work they do for their employers? No rational person would advocate using Svelte or React for a static, one-off, informational site to be maintained by a single person. In fact, you didn't even need jQuery at all. Vanilla JS works across browsers in a way that it didn't when you learned web coding 10 years ago. Where frameworks become useful is for large projects that many people work on over a long period of time. Turnover is an issue for non-standardized code, as is poorly organized code. And none of that even touches on security, which absolutely requires libraries, packages, and many of the other benefits of reusing the ecosystem that you seem to eschew.
- snapetom 7y ago> No rational person would advocate using Svelte or React for a static, one-off, informational site to be maintained by a single person. This is where we disagree, and I think that's the problem. In my use case, I just wanted an HTML template file with at most a few CSS files. There's a dearth of those frameworks/templates compared to bigger packages.
- 7y ago
- overtowed 7y agoAuthor here, just wanted to make a note. This isn't written to hype a battle in the holy war. Frontend frameworks are a positive sum game! Svelte has no monopoly on the compiler paradigm either. Just like I think React is worth learning for the mental model it imparts, where UI is a (pure) function of state, I think the frontend framework-as-compiler paradigm is worth understanding. We're going to see a lot more of it because the tradeoffs are fantastic, to where it'll be a boring talking point before we know it.
- amelius 7y agoThank you. I hope you will do a write-up of your experiences when the project is completed.
- stanislavb 7y agoThanks for your work. I watched a few presentations this week and read quite a bit. It looks very promising, and I'd be happy to start migrating my components to Svelte step by step. I'm a Rails dev, and there's a Rails integration through webpacker already. What I'm waiting for is TypeScript support. Once that's officially released, you can count one covert more :).
- marcus_holmes 7y agoI'm curious that you didn't mention Elm here. Did you look at it and decide not, or not look at it?
- overtowed 7y agoIt's not a comprehensive weighing of alternatives, instead it's a deep dive into Svelte's pros and cons as they relate to my experience and our project. Elm is awesome! There's nothing quite like it that I know of in its design space to bring user-friendly functional programming to the web. Similar to Svelte, its design holistically packages up the web's languages. Compared to PureScript, it's focused on a small and beginner-friendly feature set, trading general power to optimize for the webapp use cases. Elm has also been influential to a lot of toolmakers!
- finchisko 7y agoShameless plug. I've choosen svelte for webextension that will be allow you to record, replay and modify requests on the fly. I've choosen Svelte, because 1. courisity and 2. it can compile to webcomponents and also reference webcomponents in normal svelte components. I discarded the webcompoments for everything idea, mostly because clunky passing and registering events with svelte (svelte issue). There few thing that needs to be polished, like typescript support and this events handling with webcomponents, but overall, very satisfied with svelte so far (as former React guy).
- smithza 7y agoEspecially excited to consider a solution without huge runtime libraries (think jQuery, React, Vue). Minimizing web page sizes and enabling dynamic content (which is a mainstay in modern websites) is a huge plus.
- krainboltgreene 7y agoReact 16 is 2.2 KB or 34.8 KB if you include react-dom, Vue 2.4 is 20.9 KB, and jquery 2.1 is 28.87 KB. If you're using a bundler that can create chunks, your user is at best downloading this once in a blue moon. The reply page I'm using now is 10% bigger total than these packages and has to be pulled every time apparently. By what metric are these "huge runtime libraries"?
- untog 7y ago> React 16 is 2.2 KB or 34.8 KB if you include react-dom Gzipped. Uncompressed React is 6.3KB and react-dom is 114.5KB (and of course you're going to include react-dom, how else would you use it?!) Uncompressed matters because it takes a device longer to parse more code. Particularly in a world where low end Android devices are being shipped with slow CPUs and very little RAM. The real killer combination is React plus a giant blob of state that has to be parsed, and then hydrated into individual elements. It's a giant, giant waste of CPU time that is acceptable on my iPhone XS, but when I plug in a Nokia 2 it's horrifying. VDOM itself is needlessly CPU intense in many ways. Even if you don't want to use Svelte it baffles me that more people don't use Preact. 9.5KB uncompressed and it does 95% of what React does. But people just don't seem to care.
- krainboltgreene 7y ago> Uncompressed matters because it takes a device longer to parse more code This is...a trivial thing to measure, at best. Engineers write way worse code that will be much bigger targets to care about that will likely never be worked on. > Particularly in a world where low end Android devices are being shipped with slow CPUs and very little RAM The benchmarks for this (todomvc for example) aren't egregious, even for mobile devices. > The real killer combination is React plus a giant blob of state that has to be parsed, and then hydrated into individual elements. That is a bad end-engineer design choice, you don't have to write react that way. > But people just don't seem to care. Because they largely don't need to: Even if the end-engineer wrote and designed things in a performant way, it wouldn't account for the slowness of business process.
- camccar 7y agoAs a javascript developer, I was getting nervous almost a day had gone by without another framework.
- vga805 7y agoI think this mindset is outdated. Svelte itself is already a few years old.
- xrd 7y agoI love React and I love Svelte. There, I said it. These are the complaints that standout for me with Svelte after using it for a few months: * Sub-par editor support. For me, the litmus test is whether I can use F2 to rename a variable, and it often does not work inside a Svelte template. There are other places where the editor does not know what to do with your code, because it is not pure JS. Vue is much worse with this since so many things are just strings; React really shines with editor support. This makes a big difference when you are using a large project where you didn't write the code. * I don't love that you have to re-assign a object/array variable to get Svelte to notice it changed, and you can do that inside a Svelte template to a const variable and you won't get a complaint from the compiler. * Much smaller ecosystem compared to React and Vue, which is expected at this point. Other than this, I absolutely love Svelte. Stores are such an amazing abstraction. Animation is well thought out. Storybook works perfectly. Mostly it is pure JS once it gets inside the browser, so you can debug effectively which is not the case with Vue for example.
- StevenWaterman 7y agoOn your 2nd point, you can tell Svelte that your data is mutable, in which case it will do deep equality. However, the benefits of immutable data often mean it's worth just reassigning the variable. I also wouldn't consider that a disadvantage vs React/Redux, since that also requires using immutable data.
- leppr 7y agoSince you've been using Svelte for a few months after using React, haven't you been hit by the lack of composability in Svelte? Passing around components as variables is such a common pattern in React, and there's no good replacement in Svelte. The lack of dynamism in components and styles makes theming and crafting reusable components (outside of simple widgets) very tedious [1][2]. I'm genuinely curious how someone can come from React and not be bothered by it. [1]: https://github.com/sveltejs/svelte/issues/2106 https://github.com/sveltejs/svelte/issues/2106 [2]: https://github.com/sveltejs/svelte/issues/1550 https://github.com/sveltejs/svelte/issues/1550
- 7y ago
- rikroots 7y agoI enjoyed learning Svelte; it was fun to use when I rebuilt a personal project from scratch using it[1]. I'm trying to think of some downsides to balance my enthusiasm for the framework, but can't think of any. The article mentions the smaller community as a possible issue, but the community on Discord seem very welcoming. Re "using Svelte means adopting a new language" - it didn't feel like that to me. Every framework has its own way of doing things; Svelte's way didn't annoy me as much as some other frameworks have done in the past (eg: Angular before it became Angular2). I've got another personal project rebuild coming up - I reckon I'll be treating that as an opportunity to learn more Svelte. [1] My poetry website (you have been warned!) - https://rikverse2020.rikweb.org.uk/ https://rikverse2020.rikweb.org.uk/ I blogged about my experiences with Svelte, starting here: https://blog.rikworks.co.uk/2020/02/01/Recoding-the-RikVerse-website-Introduction/ https://blog.rikworks.co.uk/2020/02/01/Recoding-the-RikVerse...
- untog 7y ago> Re "using Svelte means adopting a new language" - it didn't feel like that to me. Me neither, but I've been around long enough to remember the handlebars.js days. To someone that's only used React I imagine that at first sight things like {#if} {/if} look ugly as hell. To those people I can only say to stick it out: it starts to feel very natural very quickly.
- papertokyo 7y agoThis was my experience. I've been working with Vue for the last few years so Svelte's syntax for loops and conditionals looked a bit funky...but after using it I realised that it's a lot more readable and enjoyable to work with.
- abledon 7y agodoes svelte have a way of hiding the .svelte components from the users on the frontend? e.g. so they cant blatantly rip the source code in your components and reuse them
- rich_harris 7y agoSure, it's easy: don't serve sourcemaps. This isn't specific to Svelte though. In fact your code is much more obfuscated with Svelte than with most comparable tools, since you're not serving the code you actually wrote, but rather the output of a compiler (while this is technically true if you're using TypeScript/a minifier/whatever, it's qualitatively different).
- xrd 7y agoThis is what makes svelte so incredibly powerful and worthy of consideration. Not having a run time on the client is huge. But, the developer experience is exactly the same as you get from React and Vue. You can trust this guy here, he knows what he is talking about.
- config_yml 7y agoI love the idea of svelte and want to try it on my next project. The compiler paradigm is really powerful. What if you could extend Svelte to give it knowledge of your db schema and it would figure out an optimized way to load data by generating all that code if needed. Probably something like this exists already somewhere and was forgotten about, but one can dream.
- theslurmmustflo 7y agoUse next.js the auto routing and ssr is a game changer, plus easy access to the huge react community
- choward 7y ago> Svelte is one of the 6 JS frameworks in the (flawed) State of JS 2019 survey — 75% have heard of it, 7% have used it, and 45% are interested in learning more Why is it flawed and why are you citing a flawed study? You mention that it's flawed twice but then immediately cite data from it. If you're telling me it's flawed why should I care about the data?
- dentemple 7y agoIt's a type of opinion that should warrant it's own blog post, at the very least.
- overtowed 7y agoI considered linking or footnoting that text and probably should have. Like all surveys, there's a selection bias. For example where are the world's millions of jQuery developers? There's also a lot of controversy around Angular's treatment in the survey and an alleged pro-React bias. This shouldn't affect the Svelte numbers much. Thanks for bringing it up - I'll improve the text somehow.
- Vinnl 7y agoAh, I mentioned it on Twitter [1] somewhat prompted by seeing this article, but before reading it, but: > It's interesting that Svelte is positioned as a Javascript framework: it seems to be practically a different language, far more so than JS+JSX. > The downside is that it's hard to integrate with much of the Javascript ecosystem, e.g. TypeScript. > Yet at the same time, it doesn't fully embrace being a different language, so it does not add features like e.g. how Elm supports pattern matching. > It does make it an easier sell, I suppose, which does certainly count for something. Am I missing something else? After having read it, it does seem that the author does both consider it a separate language, but also still presents it as a JS framework. I wonder if the former isn't being underestimated? [1] https://twitter.com/VincentTunru/status/1237422539128868865 https://twitter.com/VincentTunru/status/1237422539128868865
- deleted 7y ago[deleted]
- leejoramo 7y agoI am on a team that has chosen Svelte to replace Riot.js. It has been an excellent experience. We have found that since Riot and Svelte have some similarities in structure and do not use a shadow DOM, we that our old Riot code and new Svelte code co-exist while we build new features and slowly migrate everything. Our team has diverse experience with the other tools in this space. I would say that the consensus is that Svelte is far more intuitive and fun than other tools.
- okareaman 7y agoI watched a tutorial by the author Rich Harris today after reading this link on HN earlier and stopped when he started talking about a DSL he created for Svelte so you don't have to write as much JS. I don't want to learn another DSL. I don't see what the big deal is about compiling. We've have many languages that compile to JavaScript and Google Closure Compiler to tree shake and minify. For years now! Svelte is a nifty DSL to JS compiler that produces small bundles because there is no SDK to back it up or include. Cool, I guess.
- overtowed 7y agoSvelte is a component compiler, not a general language compiler. Big distinction! Being purpose-built for this use case opens up a lot of opportunities. The article goes into this more, but Svelte's DSL is an extension of web languages - not much to learn really! Your existing knowledge of HTML, CSS, and JS transfers directly.
- elliotf 7y agoI love svelte on the personal/toy projects I've tried it on, but does someone have an example of a large-ish svelte codebase with an example of a testing pattern that they've found works? Using mithril/vue/react, there are assertions you can make about how a given action will modify the state, and given some state, how that state will be rendered. I've not found a good way to make assertions on the behavior of code without resorting to poking through the DOM and dealing with asynchronous behaviors.
- nailer 7y agoGoing back to React a week ago after doing Svelte seriously since Oct 2018 is tough. Asides from the obvious stuff - Svelte's speed and bundle a size of 0: JSX isn't HTML, using weird helpers to enable a class when a JS ternary would do fine, setting state is clumsy, and there's way too much complexity if you're not already used to using React. That said, I'm also really enjoying TS so could understand why someone may want to stick with React for a new project until Svelte gets TS. My big Svelte project isn't public but my personal site is a Svelte app too: https://mikemaccana.com https://mikemaccana.com source is at https://github.com/mikemaccana/mikemaccana.com https://github.com/mikemaccana/mikemaccana.com
- blaydator 7y agoThe lack of a large and mature ecosystem would prevent me for starting a "large" web project. Svelte is still missing UI frameworks like Material UI or Vuetify. Won't you need date range picker ? Full powered data-tables ? Treeview ? Advanced cards or other layouts ? Awesome effects / styles for a rich UI ? Svelte Material UI is a start : https://sveltematerialui.com/ https://sveltematerialui.com/ But I will definitely give Svelte a try for my next "medium" size project.
- wirahx 7y agoHey - Svelte Calendar actually has an open PR for a date-range picker which just needs a bit of testing to get it over the line. Feel free to take a look https://github.com/6eDesign/svelte-calendar https://github.com/6eDesign/svelte-calendar As for the other components, as the ecosystem grows, these things start to appear. The advantage to Svelte is that it's super-easy to integrate any vanilla component into, much more so than other frameworks. You can totally do away with nonsense wrapping projects, and just add the component verbatim.
- afraca 7y agoSlightly offtopic: Why a git repo for a blog post? I guess there are some pro's: public history, PR's , but a blog has comments directly under the article for example. Forking is not expected. Ah well, extensive information anyway, good work :)
- frozenlettuce 7y agosome people have been using the Issues tab to create blogs (as it allows comments)
- crubier 7y agoI dislike the templating pseudo language of Svelte (and many view frameworks). Maybe I am spoiled by react but I never ever want to write my view logic in anything else than JS. This is my main blocker for Svelte.
- papertokyo 7y agoI've never fully understood this viewpoint, which comes up a lot in relation to React and JSX specifically. The templating in Svelte and Vue is (almost) html with some magic sprinkled here and there, so much closer to the end result. Using JS for everything is moving further away from the metal. What is it about writing views the React way that appeals to you more?
- draw_down 7y agoI don’t really feel the same way as GP, but not having static typing (Flow/Typescript) would be a big drawback for me. I would be ok with these pseudo-langs if type checking is still possible. In the past I used one of Rich Harris’s precious projects (Ractive). I liked it a lot, but since then I’ve written typed JS for a couple years now and I wouldn’t give that up when working on anything substantial.
- hinkley 7y agoWhat I found on several consecutive projects was that less the HTML generation resembles the final HTML, the harder it is for people to keep the CSS selectors wired up correctly. Getting text into the page as fast as possible at the cost of layout issues is a sucker's bet. You can't ship until it looks good, and the longer features are in-flight the worse management feels about the team's abilities.
- inopinatus 7y agoA utility-first compile-time CSS framework (eg Tailwind) should be a perfect fit for this scenario, on multiple levels
- 7y ago
- DigitalSea 7y agoFor me, the biggest downside to Svelte is the lack of TypeScript support. This is a massive deal-breaker for myself as well as many other developers. I am also not a fan of the Moustache/Handlebars inspired templating, it feels outdated in the face of enhancing standard HTML or going in the direction of something more extreme like JSX. I think Svelte is refreshing, but I would not be comfortable using it on a large-scale web application just yet given the downsides, particularly an enterprise LOB application with many moving pieces. This is why frameworks like Angular, Ember and Aurelia on the front-end lend themselves better to the enterprise and React and other more component-based libraries do not. In terms of community size, I don't think that matters in 2020. You don't need a big community if you have something straightforward and easy to work with. Great read.
- aarpmcgee 7y agoI submit that any large Ember codebase is intractable without Typescript.
- mdgrech23 7y agoI submit that Typescript is largely overrated, adds unnecessary complexity and fails to catch a large number of issues at compile time that it should in fact catch.
- top_kekeroni_m8 7y agoLike what?
- DigitalSea 7y agoWhat are you basing this on?
- overtowed 7y agoIt's buried in the article, but TypeScript support is being worked on by one of the TypeScript team members in collaboration with the Svelte devs - https://github.com/sveltejs/svelte/issues/4518 https://github.com/sveltejs/svelte/issues/4518 The template language's restrictions compared to JavaScript/JSX-built views are part of Svelte's performance story. It's able to optimize things ahead of time that are impossible with dynamic code because of the constraints. Here's a couple tweets from the author about that - 1 - https://twitter.com/Rich_Harris/status/1224414679021301761 https://twitter.com/Rich_Harris/status/1224414679021301761 2 - https://twitter.com/Rich_Harris/status/948231770725605377 https://twitter.com/Rich_Harris/status/948231770725605377 The Svelte template language is quite small, and compositional features like slots and <svelte:component> are powerful. There are currently some unwanted edge-case restrictions as this comment points out - https://news.ycombinator.com/item?id=22541100 https://news.ycombinator.com/item?id=22541100
- StevenWaterman 7y agoHaving used Svelte for a couple of projects [1][2], I love it. Compared to my day job working in react/redux, it is much simpler, and feels like it has far less boilerplate. There are certainly a few rough edges, but it's all related to the immaturity of the language. Specifically, I had a hard time understanding transitions and it wasn't at all obvious how to integrate it with D3. Hopefully as it grows we will see improved docs and examples. Also, I'm holding out for more mainstream TypeScript support. At that point, it would be hard to convince me to use anything else. [1] http://musetree.stevenwaterman.uk http://musetree.stevenwaterman.uk [2] http://optimisation.stevenwaterman.uk http://optimisation.stevenwaterman.uk + https://blog.scottlogic.com/2020/02/17/minesweeper-optimisation.html https://blog.scottlogic.com/2020/02/17/minesweeper-optimisat...
- acemarke 7y agoFWIW, our new Redux Toolkit package is specifically designed to eliminate the typical "boilerplate" concerns when using Redux: https://redux-toolkit.js.org https://redux-toolkit.js.org
- StevenWaterman 7y agoI do use Redux Toolkit, but it really can't compare to Svelte. There are so many moving parts in a Redux app that there's only so far it can be simplified
- d0100 7y agoI want my templates as first-class citizens. If I have to deal with strings and weird, half-baked syntax for loops and conditionals, I'm out. JSX really spoiled me to the point that if there isn't JSX, I don't want it.
- toastal 7y agoI still feel the opposite. If your client-side 'templates' aren't just function syntax, I don't want your template system.
- hinkley 7y agoThe one thing that gives me reservations about Svelte is that the description about how code turns into web pages makes me wonder if there are any problems with code-build-run-test cycles. I'm concerned I'll spend all of my time restarting my application to validate changes. Is this a non-issue?
- combatentropy 7y agoI followed the tutorial (https://svelte.dev/blog/the-easiest-way-to-get-started https://svelte.dev/blog/the-easiest-way-to-get-started). It starts a local server and automatically reloads whenever you save changes.
- pier25 7y agoI love many things about Svelte but after using Vue for a couple of years I wouldn't go back to single file components. The idea of having markup+logic+styles in the same file works for small components but it gets muddy on bigger ones. It can be argued that components should be as small as possible but OTOH having to create a new file for every damn component gets old very quickly. For the past 2-3 years I've been working again with JSX based libraries and being able to create micro components on the same JS file makes a lot more sense. I've also gone back to regular SASS and moved all CSS outside of components (except for dynamic CSS). It works better IMO than single file components.
- Can_Not 7y agoHow is it that 23 hours in and nobody is pointing out that svelte/sapper just freezes on runtime errors without the ability to show an error page or report them to a tracker like sentry/rollbar/etc.? This is one of the biggest barriers to being production ready or fit for use in large projects.