4 ms·
I don't know about J, but on occasion I have to deal with q/kdb+ and I hate it with passion. That system is pure crap. I'm convinced that the primary purpose
by alexeiz 8y ago
I don't know about J, but on occasion I have to deal with q/kdb+ and I hate it with passion. That system is pure crap. I'm convinced that the primary purpose of q/kdb+ is to extract as much money as possible on support from financial firms that happen to use it. Support contracts must run in millions of dollars if not more. The system is designed to be incomprehensible by human beings. All in a name of "performance." But is it really any faster than, say, Pandas/Numpy? (Numpy can automatically parallelize computations, whereas q/kdb is inherently single-threaded.) Q error messages drive me crazy. Basically, there are just a few error messages, like "'type" or "'rank" with no further explanation what caused an error. The Q language is full of idiosyncrasies you have to remember. I code in multiple languages including functional ones, but Q is completely illogical. There are arbitrary restrictions like number of local variables or the precise place you put a closing brace that ends a function. It's also impossible to find any help for it due to its abuse of special symbols, incomprehensible function names, and its very low popularity. There are C and Python interfaces for Q/kdb and they suck too. The C interface is actually on Github; you only need to take a single look at it to understand what I mean.