Hacker News new | past | comments | ask | show | jobs | submit login

Examples do not look very readable.



TL;DR: They do not look readable to you because they are a "foreign language" you are unfamiliar with, much like Japanese is to most westerners.

The vast majority of languages are essentially minor syntax "skins" applied to the same underlying Algol ideas; This describes C, Pascal, Python, Ruby, Perl, Java and most other languages - which is why being proficient in one lets you read others. Haskell, Ocaml are close enough to read, but usually not write, unless you are specifically proficient in one of them.

APL (and J and K and likely Hobbes) are very different, both in concept and syntax -- to the point that you actually have to know one of them to be able to read any of them. They look intimidating at first, and they often take longer (per character / per line) to read even when you do know them, but they are very orthogonal; e.g. in K, the expression |/0(0|+)\x efficiently computes the maximum subarray sum of the array x; this is not a predefined program - rather, each character here carries a meaning, and all combined they solve the mss problem.

If you looked at Japanese[1], it would look unreadable to you, but that's not because there's a problem with Japanese.

[0] https://en.wikipedia.org/wiki/Maximum_subarray_problem

[1] Pick any language you do not know with a character set you don't know - Japanese, Arabic, Farsi, Hebrew, Thai ...


Thanks, I do have it in the queue to make more targeted examples. I realize that what's there is a little scattershot and each of the use-cases mentioned could use a lot more detail.

For example, inside MS we have these reactive hobbes processes that watch log data and incrementally build B-trees to deliver future query responses very quickly. I hope to put some examples like that up in the coming weeks.


I may be way off base with this thought but I can't help but ask the question anyways.

Back in last year's HotChips conference Oracle spent a fair bit of time talking up new hardware capabilities targeting databases and their new ISA extensions that support it. It seems to me that this might be a good fit for some of the things it seems like Hobbes might well suited for. So I wonder if you guys spent any time thinking about that (or any ISA beyond x86).


I am not aware of that work from Oracle, but it would be interesting to talk with those folks!

Our main focus has been x86, although there are interesting alternative platforms.


Hey thanks for the response.

I am not a sparc developer, so I can't really point you in the right direction with any certainty. I did a quick web search for the buzzwords they were using in the HotChips presentation ("Software in Silicon") and found this link, which has the slides from the talk among a whole lot of other stuff. My expectation is that you guys might find the database / analytics acceleration stuff of interest.

https://community.oracle.com/community/server_%26_storage_sy...

Anyway, my question was motivated by a desire to inform my nebulous thesis that getting developers, even really smart devs working for major corporations with deep pockets, to target specialized hardware or to do optimization beyond getting code to compile with a favorite compiler is really difficult. My follow on theory is that this is going to create some interesting tension as hardware developers are increasingly motivated to do these sorts of things as Moore's law runs out of steam.


They look readable to me, certainly much more so than K or Q.


> much more so than K or Q.

For most people that is not very high bar.


> > much more so than K or Q.

> For most people that is not very high bar.

hehehe


Out of curiosity, how much experience do you have with APL, J, Q, or K? They aren't like C, so none of your previous programming skills are transferrable, but that doesn't mean it is hard to read.


I have programmed some Q professionally. It provides a lot of syntactic sugar, does not support operator precedence and there is a culture of avoiding whitespace. These can make it hard to read sometimes.


That i can agree with.




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

Search: