Likes & Dislikes - Svelte

To begin - few words about what Svelte is and what isn't. Svelte is a compiler that compiles you mainly vanilla JavaScript, HTML, and CSS code into highly optimized reusable JavaScript components. It's a fully-fledged framework, with built-in batteries for state management, reactivity, animations, transitions, and styling. So you can ask what actually Svelte isn't - it definitely isn't some toy project or immature thing that you should be afraid to use. 

Likes

Firstly, let's start with the fact that I am really amazed by Svelte overall. Its concepts, architecture, and ideas behind it - it all fits my view of building web apps. Let's hope into few particular things that I enjoy the most.

Simplicity

For me, Svelte has the best balance between simplicity and the possibilities which it offers among all modern frameworks. It's a snap to get into it and achieve the level of productivity. There are no many special syntaxes or things that you need to acknowledge to be proficient with Svelte. Someone could say that it's easy to start and really not hard to master. And its tutorial is one of the best I stumbled upon ever. Furthermore, the amount of code you write is often significantly lower than in other frameworks

Fully-equipped

As I said before, most of the things that you will need to build a web app are included out of the box. You don't need to worry about what is a proper way to manage a state or do transitions, Svelte's helping hand is always waiting for you. Though, such an approach has flaws sometimes (I am looking at you, Angular). Often it's hard to do things not the way authors intended, even if your way of doing it is fitting you better. Luckily, it's not the case with Svelte, you can always do things your way. It's even easier because you often write just vanilla JavaScript. 

Performance

Svelte effectiveness in a browser is really top-notch. The compiler approach is making it highly optimized. Furthermore, you are often delivering much less JavaScript than with other solutions. No virtual DOM is diffing or some template checking.

Dislikes

Personally, I think most of the Svelte flaws come from not being the mainstream thing (yet, hopefully). Look at few things that you probably should remember if you are giving Svelte a chance. 

IDE integrations

As Svelte uses its own file format the IDE integration can be lackluster sometimes. I was always using Webstorm, but when I jumped into Svelte, it was really hard for me to not change to VSCode. The extension provided by the authors makes it a breeze to work with Svelte if you use it. And if we're talking about it - TypeScript support, it still has many sharp edges. Sometimes it can be a little frustrating to not get proper IntelliSense suggestions even though you dive deep into typing things.

Community size

Even if the community is one of the most engaged, sometimes it's just not enough. It may sometimes hard to look up help in contrast to something like React or Vue. The good practices are often not developed yet and you will sometimes feel unsure about what you are doing. And the amount of libraries to choose from is much lower too. Furthermore, the job market is still a fraction of the whole frontend part.

Mysterious compiler

Even if it's not so hard to look at compiled code and get a grasp - it still can be surprising how some things work. Often if it's not working the expected way it can be harder to deduce the why's. But in return, you can await that it will work most of the time.

Summary

Svelte is the thing I would recommend to anyone without even blinking. The simplicity, non-conventional approach, built-in features. Everything makes it a wonderful experience to work with it. You can't forget that it's not the most mainstream thing yet though. But if you are willing to take it as it is, you will get rewarded - and the reward is a sweet fruit.