In my previous post, I discussed my goal of building a Windows desktop app using Tauri, and I was considering Angular and Svelte for the UI part. I spent some time exploring both frameworks and evaluating their pros and cons. This post will summarize my findings and ultimately reveal which framework I decided to use for my project.
Angular: Powerful, but Perhaps Overkill
I started my exploration by diving into Angular. I bought a book on the subject and began tinkering with the framework. Although I can't say that I dislike Angular, I felt that everything seemed more complicated than it needed to be.
One of the aspects I initially struggled with was the use of decorators, a TypeScript feature not yet included in the official specification. In my opinion, Angular might not be the best fit for my use case, as it felt too heavyweight. I believe the issue I have with Angular is that I can't fully appreciate the enterprise features designed to make life easier when building massive applications, which is not my current goal.
Despite my reservations, I'll continue to monitor the Angular ecosystem, as it appears to be evolving and gaining momentum.
Svelte: A Simple and Intuitive Alternative
My experience with Svelte was quite different. From the outset, it felt simple and intuitive. I understand that some developers believe Svelte performs too much "magic," a sentiment I've shared in the past. However, after working through the tutorial, I found the framework's approach to reactivity and props to be both logical and efficient.
Svelte's simplicity can be attributed to its nature as a compiler rather than a traditional framework. While this may deviate from the standard JavaScript approach, I appreciated the streamlined experience it offered.
Weighing the Options and Making a Decision
Surprisingly, I didn't end up disliking Angular as much as I initially thought I would. I realized that the negative opinions about Angular I encountered on Twitter were unfounded, and the framework is far from outdated. However, I also concluded that Angular's complexity was excessive for my current project, and I couldn't justify the time investment required to master it.
I hope the Angular team continues to simplify the framework and minimize entry barriers, perhaps by offering a minimalistic starter template that won't overwhelm beginners.
Ultimately, I chose to proceed with Svelte for my side project. It struck the perfect balance between simplicity and power, making it an ideal choice for my needs. I plan to document my progress as thoroughly as possible to share my journey with others facing similar decisions.
In conclusion, selecting the right framework for your project is a crucial step, and it's essential to weigh the benefits and drawbacks of each option carefully. For me, Svelte emerged as the clear winner, but your mileage may vary based on your specific requirements and preferences.