I am very much excited for the future of CSS. And I love that functions are a part of it.
I spent 3 months this year testing out a reporting system for large quantities of dynamic data.
My requirement was to generate pdf reports, but didn't want any reporting tools and installations. Especially something like Microsoft Excel, which the old system was based on.
After a lot of tests and proof-of-concept apps, I finally zeroed down to simple, pure, self contained html, that I am generating from a python script.
And it's glorious.
I am generating interactive charts when the html is viewed in the browser, and hiding all of them and only printing static svg images when in print mode, using css media print queries.
Not needing a connection pooler (MySQL scales to thousands of connections via threads without breaking a sweat) and not having to deal with garbage collection (vacuuming) are two.
I mean, quite a bit. You use the right tool for the job. To use Postgres for everything is wrong to me. The beauty of MySQL based servers is the internal extensibility where Postgres is still rather lacking. MySQL and MariaDB are caching up on the external extensibility front.
Of course MySQL has obviously the deep support for custom storage engines, then it has loadable functions, auth, component service and these are currently internal extensibility but going forward we are working on a way to manage this extensibility externally through a new proposal which I will be going over in the upcoming MySQL contributor summit in November. Postgres though highly externally extensible doesn't cut into the core like MySQL or MariaDB does thus making it hard to for example make TidesDB integration as TidesDB has to handle the MVCC, for example. OrioleDB is another example and it has to utilize a custom Postgres fork for this reason, the core not being very extensible, though I hear this is being worked on heavily.
Sure, best not to overcomplicate early if you don't need it.
PG is great and I work with it daily, but it's also not a problem to think about scale early and at least have a notional plan for what to and how to know when scale is becoming an issue in your system as you're designing it. Even PG is overkill and sqlite is more than enough for some of my projects.
There are a lot of specialized tools available, but you definitely don't need to put every one in your toolbox. Experience and observation help you make those edits -- and of course there's almost always room for improvement, but "good enough" definitely exists (until it doesn't anymore :D).
This is the way. Notionally building a space/path to scale into architecture early, but delaying implementation of that scaling component until actually needed.
Then a system gets most of the benefits of not accidentally making it torturous to rearchitect for scale, without paying the headcount / complexity cost until it's needed.
If that was the case, IMO he wouldn't have come this far.
reply