3 ms·
I'm on it, except the lack of resources! https://tablam.org https://tablam.org Is based on the relational model (+spiced with multidimensional-array capabilit
by mamcx 5y ago
I'm on it, except the lack of resources!
https://tablam.org https://tablam.org
Is based on the relational model (+spiced with multidimensional-array capabilities like kdb+/pandas), and allow to have universal query/crud capabilities to anything (files, vectors, btrees, hashmaps, rdbms access(not yet!)), etc.
In other words, it has in-built linq-like capabilities:
-- A column, aka: Vectors...
let qty := [10.5, 4.0, 3.0]
-- Like APL/kdb+ operations apply to more than scalars
prices * 16.0
-- The ? (query) operator allow to do SQL-like queries to anything
let doubled := qty ?select #0 * 2.0
let products := open("products.csv")
-- like files!
for p in products ?where #price > 0.0 do
print(p)
end
--so, we can do joins between anything:
for p in cross(products, qty) ?limit 10 do
print(p.products.price * p.qty)
end
It also has some small things to fit my domain (business apps), like decimals instead of binary floats as the default, in-built dates, easy to write tabular data in code, lazy streaming I/O and the like.
---
I'm now trying several things that I wish to make it work:
* Loss-less parsing and high-quality errors
* Type inferencing relational operators (like a JOIN b JOIN c JOIN d SELECT a, b) because type this manually is not ergonomic
* Making a way to the user to create relational operators (like with generators on python) that fit well with query optimizations. In other words, I wish to have a simplified way to do compiler optimizations but for the query/array operators, that I bet will dominate all.
With this I wish to get into version 1.
---
And moving further in the dream: I wish to build a access/foxpro/excel tool, so it also means an improved language with a UI toolkit across platforms. And maybe even a in-built rdbms (using sqlite? from scratch?). For this, is where manpower and money is needed.
Anyway, I think get the lang to be enough for my scripting needs is feasible, so I only limited to how much far I can go. But living the dream!