Hacker Newsnew | past | comments | ask | show | jobs | submit | bladecatcher's commentslogin

Great point re: the “Bespoke” style of programming. It takes some unlearning and getting used to tacit programming [0] and trains [1] to appreciate this.

I’ve worked on fairly complex systems using kdb/q that are a joy to debug because the codebase is a handful of files. q is admittedly a more simplified and “mainstream” cousin of J, but allows a fair bit of expressiveness. The powerful data store (kdb) and q-sql that comes along with it makes it one of the most concise data platforms ever. Too bad it’s not free for commercial use!

[0] https://www.jsoftware.com/help/jforc/tacit_programs.htm

[1] https://www.jsoftware.com/help/learning/09.htm


How does it compare to Jdb?


> Now if it were possible for it to accept an event from Kafka but not guarantee that the event will eventually make it into the materialized view but may be lost, that'd be a problem.

This is usually not a problem these days as it’s possible to guarantee exactly once ingestion using Kafka offsets


IIRC clickhouse still doesn't have this guarantee. It guarantees exactly one ingestion but not that the ingested event gets processed all the way through to view. And if the processing fails, that event won't be retried and is now gone.


You’re right. You don’t get read-your-own-writes guarantees in a typical Kdb tickerplant architecture, as the event streams are propagated to the real-time nodes asynchronously.


I think the usecase for this is streaming queries and aggregations where the query output is materialised asynchronously


In Indian cities like Mumbai, Bangalore, one can easily spend 3 to 4 hours a day commuting


I suppose one can measure the risk of losing messages - I’m not suggesting that it’s always possible, but calling it an unmeasurable risk is probably not true


Typically, one would start off in a quant trading desk which uses kdb+ for their analytics or join First Derivatives [0] that trains graduates

[0] https://www.firstderivatives.com/


https://code.kx.com/q/ has learning material and documentation . Hope it helps


As mruts pointed out above, kdb+/q provides what you're imagining - it provides fantastic distributed computing support via its IPC protocol and also has multi-core support.


Multi-core is priced for big financial institutions, though. Only thing you or I could afford is the 32 bit single-core.


There is a free 64-bit version available with limits that don't seem harsh at all:

The 64-bit kdb+ On-Demand Personal Edition is free for personal, non-commercial use. Currently it may be used on up to 2 computers, and up to a maximum of 16 cores per computer, but is not licensed for use on any cloud – only personal computers. It requires an always-on internet connection to operate, and a license key file, obtainable from ondemand.kx.com


You can start the 32 bit instance with the -s switch (for q to be started with multiple slaves) for parallel execution of a function over data using the "peach" command [0].

But yes, I do agree that the 32 bit instances have limited use, as they can't be used in for-profit projects.

[0] https://code.kx.com/wiki/Reference/peach


Is the pricing published? I haven't been able to find it on the website.


It’s definitely one of those “if you have to ask, you don’t need it” kind of things


Related article posted on HN recently:

APL is more French than English [https://news.ycombinator.com/item?id=18640451]


> But at that time APL was not running on any computer; and he stoutly insisted that it was unnecessary that it ever run on a computer. It was for him a notation with which he could express algorithmic concepts; and for him at that time, that seemed sufficient.

Indeed. Because both APL and Lisp began as languages for describing computational ideas, it stands to reason that they would be particularly fit relative to languages that evolved under other fitness criteria.

I was intrigued to not the opposition to APL mentioned in the article by Djikstra and others on the basis of a different mental model of computation.


Not only is that article related, it's the same article.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: