A "relation" is the fundamental concept in relational databases. When they say "set based" they really mean "relation based" as far as I can tell from their site. So this is essentially a relational database that replaces SQL with their bandicoot language.
Stralep asked "But why are relational types limited only to be composed of primitive types?". Well, most SQL-based databases are like that, and you link separate relations together using foreign keys. It would be an interesting feature if they made it hold hierarchies of objects, but then, that reduces the ability to perform relational algebra operations because you'd be hiding parts of your relations in those nested structures. That becomes an SQL vs NoSQL debate. Object Store vs. relational data.
I notice that they have a very simple distributed mechanism. You can have many instances of "executors" (the interpreter / computation handler) and of "volume" (data storage and access), but just one transaction manager. Seems pretty simple. What I want to know is how this compares to the speed and scalability of MySQL. Do I want to start replacing my MySQL servers with bandicoot?
It also occurred to me that you essentially have a stored-procedures-only system here. You can call any function via http but you can't execute arbitrary queries. Aside from that, I don't see any built-in security other than placing this behind a firewall if you want to limit it to only back-end server use in your PHP/Ruby/Java/Arc/etc. applications. You will have to edit the bandicoot code file in conjunction with your web app code to incorporate all the queries you need, but that separation of concerns could be considered a good thing.
I'm not sure of the prime uses, but the example case is pretty interesting... list management in 10 lines of code. Doing similar in PHP/Ruby would take a lot more LOC.
I'm not clear on how bandicoot handles durable persistence (ie, integration with SQL/NoSQL datastores), or if it is intended to replace them.
I do a lot of work involving bibliographies that are used in LaTeX. The care and feeding of such things is a major PIA that this language/approach seems to be a very good fit for. At least good enough to give it a shot!
the original set language, SETL, was invented as a DSL for compiler optimizations. Compiler backends heavily use set operations, and SETL made them efficient & succinct. In fact, the original SETL compiler itself was highly optimizing and benefited greatly from the new "executable notation".
I came to know of SETL much later in the (short) line of languages that I learned. What struck me immediately about SETL was that despite its age(quite ancient really) it has such an awesome modern feel to it. You can literally feel echoes of Python in everything.If I remember correctly Guido was influenced quite heavily by SETL when he was developing Python.
SETL I think originally lacked lambda but GnuSETL and SETL2 has it. This just an off the cuff recollection so I could be wrong.
what, no Crash Bandicoot jokes yet? I'm actually surprised they didn't mention that on the About page in some fashion, given how much overlap there is between the hacker and gaming communities.