If you have any questions or feedback, pleasefill out this form
Table of Contents
This post is translated by ChatGPT and originally written in Mandarin, so there may be some inaccuracies or mistakes.
When I research new libraries, I also look into the people behind them (of course, not all of them, otherwise an npm install
would take a lifetime to explore). The creators of technology are human, the creators of libraries are human, and the creators of frameworks are human. They are all flesh-and-blood people with emotions.
Technology is ultimately meant to serve humanity, so understanding the motivations and stories behind the authors can help in grasping the framework itself.
Rich Harris, the author of Svelte, was originally the creator of Rollup, as well as the lesser-known Ractive.js. From his repositories, it's clear that he enjoys building things from scratch. He worked at The New York Times as a Graphic Editor, starting out as a journalist before teaching himself programming to create interactive data visualizations, ultimately leading to the development of Rollup and Svelte.
Here are some insights from Rich Harris in the Svelte Society, which I highly recommend checking out. Below are some notes, though they might differ from what you expect.
The best way to learn a technology is just go ahead and build stuff with it and then as you get stuck, figure out how to ask good questions.
The best way to learn a new technology is to use it to create something. When you hit a snag, try to understand it or ask questions.
The examples on the official website are quite easy to grasp, and there's a REPL right next to them where you can experiment hands-on.
I don't use component libraries for the same reason that I don't buy pasta sauce in jars; I like making things from scratch.
This response came from the question, "Which component library do you use?"
Being a DIY enthusiast, he prefers to start from scratch, humorously comparing it to not buying ready-made pasta sauce: "I don't use component libraries for the same reason I don't buy pre-made pasta sauce; I like making things from the ground up." This helps explain where the handwritten parser in Svelte's source code originated; if you compare early commits, you'll see that not much has changed.
Router: This makes people really unhappy, which I understand. If I walk into the farm and see there's 19 different kinds of shampoo, I'm very unhappy. I want 2 kinds of it: cheap and good. Ideally, I want them to be the same kind.
Because Svelte does not have an official router (unlike React with React Router or Vue with Vue Router), Rich Harris explained that routers can vary in different scenarios, and everyone has their own opinions.
Currently, there are many router implementations based on Svelte. The author expressed, "I know people feel uncomfortable. If there are 19 different kinds of shampoo, I would also feel uneasy; I just want two kinds: one cheap and one good. Ideally, I'd want them to be the same XD."
TypeScript support
Svelte's support for TypeScript isn't quite there yet, but it's in progress.
I'm just bad at delegating and letting other people take ownership of projects like Sapper.
The development of Sapper has been somewhat slow because the author struggles with delegating tasks to others. This year, it seems he wants to take a break from open source.
I started Svelte for myself. It's the framework I wanted to exist in the world. I get far more joy from discovering that someone who's new to development has decided to pick up Svelte and is building things they didn't think they could build.
This response came from the question, "Is Svelte's goal to reduce the complexity often associated with learning frameworks in the tech field (frontend) and the myriad of complex concepts?"
The author mentioned that while he's thrilled to see Svelte adopted by companies like React and Vue, he finds even greater joy in seeing newcomers to development create things with Svelte that they initially thought were beyond their capabilities.
From this, it’s clear that Svelte aims for a clean syntax, striving to handle everything at compile time so that you can develop freely at runtime—without needing a Virtual DOM to introduce abstraction, making everything as straightforward as possible.
I love this philosophy and feel excited about more non-professionals entering web development, representing all sorts of possibilities.
If you're concerned that these newcomers might outshine you and take your job, it merely highlights that your previous advantages were likely based on information asymmetry rather than real accumulation of knowledge, serving as a reminder for professionals to keep learning.
Can I give you money? It's really heartwarming. But it's always a difficult topic. None of us who work on the project do so for any reason other than that we want to. And there's always a fear that getting money involved in open source could have a weird effect on our personal incentive and motivation for working on this project in a way that may not be best for the community. Thank you for offering money, but we don't really have a way to accept it.
This is a common dilemma in open source; discussing money can easily skew the project's direction. Like Svelte, which has been developed by many contributors working without monetary compensation, while donations are great, we currently can't accept them.
I admire this philosophy and have become a fan of Rich Harris after learning about it.
However, I want to emphasize that open source does not inherently mean it should be free, or that discussing money equates to abandoning the open-source spirit. Open source can be profitable, as demonstrated by Vue's creator, Evan You, who has done exceptionally well. With resources, more people are willing to contribute and dedicate themselves to creating better software that benefits society—a cycle that feeds into itself. It often seems that many people are reluctant to talk about money or fear asking for it; often, if you don't actively seek it, the world won’t provide it. Perhaps in the future, more developers will lean towards the independent developer path, and I'm looking forward to seeing how that evolves.
You presumably spent a considerable amount of time and energy building Svelte because you thought there must be an alternative to the Virtual DOM. Are there any other things in computing or society where you think we are trapped in a local maximum for years or decades?
This question is intriguing; the author sought to change something with Svelte because of the Virtual DOM, and the question also probes into whether there are other technologies or issues that might have reached a certain limit.
The author responded that HTML was originally designed to display text (hypertext). If we were to redesign the web in this era, we might develop entirely different languages or design approaches.
He also mentioned that capitalism and Marxism in modern society represent a kind of regional maximum.
If you get into the habit of thinking in terms of local maximum, you start seeing it everywhere.
Perhaps it's time to pause and reflect on what things have reached a local maximum and where we can do better.
If you found this article helpful, please consider buying me a coffee ☕ It'll make my ordinary day shine ✨
☕Buy me a coffee