3 ms·
There's more to it; The paradigm is so different and so effective at a large problem domain (which includes mostly mathy things and big data), and you can do si
by beagle3 9y ago
There's more to it; The paradigm is so different and so effective at a large problem domain (which includes mostly mathy things and big data), and you can do similar things in many languages, although not quite as elegantly and succinctly.
I faced two problems after K:
1. The whole software engineering world starts to look like a ridiculous house of cards; When you're used to seeing implementations of fast and efficient in memory databases in ~20 lines, or an npm-style package manger[1] in less than ~400 lines (comments included). Modern software engineering practices enable and encourage solutions that are inefficient in many respects. Maybe it cannot be better at a large enough scale, but it affects and infects the smaller scales as well. It is extremely frustrating.
2. Getting actual work done requires interfacing with the world, which isn't quite up to the k/q/apl standards of terseness and efficiency -- mostly "accidental complexity"[2]; So, e.g., if you have to have web presentation, or work on import/export, they dominate your effort due to accidental complexity that cannot be removed. Which is doubly frustrating.
[0] http://nsl.com/k/t.k http://nsl.com/k/t.k
[1] https://github.com/yang-guo/qp https://github.com/yang-guo/qp
[2] https://www.quora.com/What-are-essential-and-accidental-complexity https://www.quora.com/What-are-essential-and-accidental-comp...