Learning q

At work my team is learning a new language and database called q and kdb+ respectively. They are both highly specialized products. In fact there are only something like 65 customers for the kdb+ database worldwide.

It’s quite an amazing product. the whole thing is contained in a 100KB executable yet costs hundreds of thousands of dollars to get a license for. It competes against Oracle and outperforms it by a rather wide margin.

The language makes Perl look English prose. I checked and they make use of every symbol you can type on the keyboard. And all of them are overloaded to mean different things in different contexts. The backtick symbol (`) is used extensively but so is the apostrophe (‘) which is pretty confusing.

here’s a pretty tame example that will add update a log table with a history of all queries executed:

operations:([]user:();time:();query())
.z.pg:{insert[`operations](.z.a;.z.Z;x);value x)