I've been experimenting for some time with writing web frameworks, and I thought it's time to publish one that I really like: it just embeds SQL directly inside HTML without any glue language.
One of the main motivators for getting this minimal was the Hundred Year Web Seervice with htmx presentation by Alexandrer Petros (https://www.youtube.com/watch?v=lASLZ9TgXyc), that showed that both HTML and SQL have staying power, but he couldn't really find a perfect glue language for his app. After some searching I only found ColdFusion to have implemented the same idea, but instead of the reactive direction that I want to go to, it went towards imperative programming which is not the direction I want to go to. I tried to learn from the original (pre-Adobe) ColdFusion, but make it closer to standard SQL.
I plan to keep the language super simple, just like a template language, make it provide 80% of the CRUD functionality a small web-site needs and add more extension points around it to handle other complexity by other languages.
I have already created a reactive SQL implementation, but the framework got too complex to use, so this is my next experiment (and HTMX can already provide a lot of interactivity).
What's really exciting is that it gives reactivity, reloading, declarative state and a lot of optimizations almost for free, but as I haven't implemented them in PageQL yet, the advantages are less clear.
HTML + SQL + imperative PL/SQL, running inside the database, right next to the data.
From the replies I think it mainly went out of favour because of lack of reactivity. I could port PageQL to C/Postgresl/Mysql, but I don't think it would be sufficient for a modern application, as reactivity is expected nowdays. Still, I keep it in mind to leave this kind of development as an option in the future.
Are you referring to querying a datasource, where the SQL is just passed to the external database engine, or to the ability to query an existing dataset using the embedded SQL engine?
In the future though I'm planning to add reactive query support where it is really advantagous to have low latency between the PageQL rendering engine and the database.
For MySQL/PostgreSQL for example an extension would run much faster, and give back the results, that's why I don't want to add async / http downloading / scripting support inside PageQL, just keep it simple to implement / embed.
Regarding temporary resultsets I'm thinking of adding a #view command instead that creates an SQL view that is shared between invocations and doesn't accept parameter bindings.
The main reason why I want my own full SQL query parsing is because of the reactive views: I want to be able to show 1000 long tables and when a change to a row is made from outside, be able to react to the change without reading the whole 1000 long table again, just push that 1 line change with the websocket. This can be useful for chatbots/chats/live infinite scrolling where the content changes / new content comes in.
Still, it just constructs new SQL queries that are easy to optimize, like SELECT * from (SELECT * FROM T) where id=1 (SQLites optimizer is rewriting these queries quite fast, so I don't want to write my own optimizer, just query builder for reactive SQL).