Perhaps a half way house is sql. The difference between ORM-style CRUD and a power user using window functions to make the data dance shows there is still art to be had in programming :)
That being said, I'm not convinced that the extremely minimal syntax is essential. I think it can be done another way ;)
I should make a ranked list.
In regards to programming, my top 30 would include:
ScrollSets: https://breckyunits.com/scrollsets.html
RegEx.
The dataflow paradigm as popularized by dplyr would be on there.
HIT ranking: https://breckyunits.com/hits.html
I'd say the minimal syntax isn't just a gimmick, because it really does help with mentally chunking phrases/idioms to a degree that's not possible when the same phrases are multiple lines long. Terseness also makes it physically faster to write the same thing, which encourages interactive experimentation much more than other languages.
These are small things, but taken together you get an experience that's more than the sum of its parts.
A lot of folks seem to tolerate K syntax because K jobs pay well. (Supposedly. I've never seen a super-high paying K job in real life.) But I actually like the K syntax because it helps organize my problem solving, and it gets out of the way during experimentation time. To me it's like NumPy/Pandas but better designed and without all the ceremonial boilerplate.
- Use a language that minimizes the code to write
- Use a helper function, maybe at some runtime cost
- Use a macro, turning a short piece of code into a longer one, at a compile-time cost
Having a DTI (debt-to-income ratio) macro and a very short definition of DTI that looks similar everywhere in code sort of do the same thing.
I’m not saying they were right or better. Horses of courses. Array languages do my head in and my choice is sql.
A brilliant programmer I met who came from DE Shaw said he reimplemented a K-based portfolio optimization pipeline because the performance hit a wall once the dataset got large enough. He was able to beat K with Java of all things.
Columnar and timeseries dbs have continued to evolve, K is the same tech it was in the 2000s. The only reason it gets used at a Millennium is that whatever trade is still printing money, not any tech advantage.
You can try klongpy, a K-like array language implementation that runs atop numpy: https://pypi.org/project/klongpy/
(Copied from some forum, since I don't use Python much)
import numpy as np
def geo_mean_overflow(iterable):
return
np.exp(np.log(iterable).mean())
Or, from statistics import.
geometric_mean
geometric_mean([1.0, 0.00001, 10000000000.]) # 46.415888336127786
In J, since I don't know K: gm=:#%:*/
Even shorter than Python whether it's a canned lib routine or created from composing simple functions.And I don't need to format code on HN in J because it's so short anyway, besides I don't know how!