Sass, Pug, Haml, Slim, Stylus, and their friends all aim to make writing various bits of your frontend easier. And they mostly deliver on this primary promise. But they are all victims to the vagaries of open software development, and seem to have mostly fallen by the wayside. I loved using these th...
CSS has been growing a lot of "super powers" lately, that used to require a pre-processor. Custom properties (variables), nesting, calc, and color-mix used to be things we'd reach for a preprocessor for, but can now be done 100% in pure CSS. And generally, the CSS based versions are better than their old preprocessor counterparts. calc can mix units, so you can easily do things like calc(100% - 1rem) to subtract a rem from 100% of the parent container. Can't do that in Sass. Custom properties can be set by Javascript, or by media queries, and follow CSS scoping rules. Thats how I handle light/dark mode on my site.
Well it's pretty much just HTML without brackets and closing tags. There are a few oddities to enable this, and it falls down on inline styles (in the same way json fails vs XML for inline formatting), but it is still pretty fun to write
But with the issues these languages are starting to manifest, that 18% isn't worth it anymore
Nim does a lot of things very well, I love writing JSON and parsing JSON in Nim, probably the best experience I've had with JSON, followed shortly by just implementing it as a protocol in Elixir.
Karax's pattern of just using language constructs to assemble HTML isn't really novel, as nice as it is; Ruby has had one for ages in Builder (and several offshoots), Elixir has Temple, and there are probably some in other languages. They're sort of one level of abstraction less than slim/haml, but its quite pleasant writing them. But they suffer some of the same issues Slim/Haml suffer, but also can suffer when trying to use them with component frameworks, or anything that exposes custom tags. This can, of course, be solved via metaprogramming or language-level templates, but it is a concern
I know this isn't applicable to the authot, but... what the hell is up with so many people being averae to just WRITING CODE. 18% fewer characters, are there seriously people who think that's meaningful?
It used to be pretty meaningful when autocomplete was not as powerful as it is today. Only very serious emacs users could achieve fast and flexible static completion before LSP forced everyone to step up their game.
Now that everybody and their grandparents have LSP available (or even more powerful tools if you're using Very Professional IDEs), it's not nearly as much of an issue, just hit tab and never type close brackets again.
It's not that folks are averse to writing code, it's more-so averse to actually typing out a shitton of boilerplate and feeling the slog until you actually get to the juicy bits where you have to think.
The amount of code you save grows with your codebase. It was 18% for that one, small example. In a larger codebase it can be quite a bit higher.
While I have, more or less, moved to just writing html-style templates, I do miss how easy it was to refactor something to have a different tag name. Vim and other editors do have shortcuts that make it easy to change both the opening and closing tag, but in indent based syntax, I didn't have to worry about this. There was only one tag to change.