The reason we have so many ways of doing things in the development world is that every new framework thinks it can do a better job than what's currently available. It's like me in every new country I visited...trying to prove myself and thinking I've got what it takes to do well in my new surroundings. Sometimes I thrived, sometimes things were harder than I thought.

A History Lesson

Historically we've seen things like jQuery, Backbone, Sass, Less, Ember, Angular, React, Vue and lately Svelte. Just when you feel like things are stabilizing and that React is going to eat the universe, you have something like Astro, TailwindsCSS, Assembler CSS, WindiCSS, AlpineJS, and just a few days ago...Remix.

Maybe the reason I'm comfortable with this structural change is that my childhood prepared me for it. When I See a new framework, it's the evolution of what's been happening in the community. Don't confuse my comfort with joy, I'm just as cranky as the next person who hears the call of the new (and wild) new framework. I'm not into having to learn new things; so when do I decide to make a switch?

New Ideas

The important thing is new ideas, not new frameworks. Frameworks and libraries are new ways to do old things. They are solutions to problems in apps, blogs, sites, modules, etc. With every new tool you should try to figure out how much better the new idea is.

The reason React is so dominant today, is that it exposed some really good ideas. React's virtual DOM was so revolutionary and made development so simple that it was a must-adopt almost immediately. Before then, Angular was the dominant framework, but it dropped the ball with the release of version 2.x and beyond. Angular made things harder, React made things eaiser. That's how I knew React was going to win.

Simplicity Always Wins

If you want to know if something is going to dominate, look for how well it simplifies things. jQuery brought new ideas that are still being implemented by JavaScript today. The reason it beat out other frameworks was the power to make something complicated trivial. Wordpress did the same thing with blogging and it's five minute install. The appeal of something like Vue.js and even Astro is that they try to change, but also simplify things.

If you want to know how I can tell something is going to be big, I look first for the new idea the framework is trying to improve on; Is it revolutionary. People won't be willing to make a switch simply for a 'faster' framework. It has to be faster in a different way.

It has to make me a faster developer, help me solve problems faster. Too many frameworks make the performance mistake and sacrifice simplicity to squeeze a few kilobytes out of a build, or a few milliseconds of a page load. A few kilobytes here and there are great for servers, but it won't be the reason people switch. There's years of history to back up the performance trap and the ultimate triumph of simplicity. Count on it.

WindiCSS

This week, In a new episode of The Toolbox, I covered a new framework called WindiCSS. It's a clone of TailwindsCSS with some interesting new ideas. The problem is that there's not a ton different from Tailwinds, so I'm not sure if it's going to be a big hit. If you compare it to version 2, then it's a huge improvement. Compared to v3, it's marginally better.

However, it does introduce some new ideas and I have to wonder if the reason Tailwinds adopted some of these was because of how good WindiCSS is. The JIT compiler in version 2.1 of WindiCSS is one of the new ideas from WindiCSS. It does have some advantages over Tailwinds.

In every episode, I try to cover new frameworks that I find interesting. Part of my job is figuring out some of these new things, and I'm having fun doing these projects. Hope you can join me in a future episode.

Enjoy the whole episode here: