Settings

Theme

Roger Hui has died

jsoftware.com

563 points by z0a 4 years ago · 47 comments

Reader

bcantrill 4 years ago

When I interviewed Arthur Whitney in 2009[0], Roger came up again and again. (He only appears in the transcript once, but Arthur spoke of him several times, always with great fondness.) Roger clearly had an outsized influence on Arthur -- in addition to his particularly close relationship with computer science pioneer Ken Iverson. Condolences to his family -- and to his close friends like Arthur, who I know must be grieving this loss.

[0] https://queue.acm.org/detail.cfm?id=1531242

  • atdrummond 4 years ago

    For what it’s worth, Roger felt you did a superb job on this interview with Arthur - he referenced it a number of times in our correspondences. Which is somewhat funny, as him doing so kind of brought my personal computing journey full circle in a weird way; your work and evangelism on Solaris is what convinced me to get involved in POSIX development in the first place.

    • bcantrill 4 years ago

      Wow, I'm deeply honored that he felt I did right by Arthur, and just wish that I had had the opportunity to meet Roger. Thank you very much for sharing that, and may his legacy serve to inspire a rising generation of bold thinkers!

max_ 4 years ago

For those of you that are not familiar with Roger Hui, he is the author of "An Implementation of J"[0]. Which is a fantastic resource if you want to know how to implement an array programming language.

[0]: https://www.jsoftware.com/books/pdf/aioj.pdf

jodrellblank 4 years ago

One of his memorable blog posts was on generating permutations in array languages[1]. In his spoiler explanation he comments about generating permutations of 0..4 starting from permutations of 0..3 and a "magical matrix" to do that, and then discusses:

"What is the “best” perm function I can write in APL? This “best” is a benchmark not only on my own understanding but also on advancements in APL over the years." and then shows one he wrote in 1981, one from 1987, then "I worked on perm from time to time in this period [1990-2007] but in J rather than in APL", then one from 2008, and one from 2015, and where future improvements might be found. In a video talk on it he says "some of these sub-expressions can be improved, but the APL language cannot yet express the thought that I have"[2]. I just like that pattern of returning to the same problems and polishing both the language and solution over multiple decades.

[1] https://www.dyalog.com/blog/2015/07/permutations/

[2] https://youtu.be/e0rywC7-i0U?t=2254

[3] talk is taken from his writing here, I think: https://www.jsoftware.com/papers/50/

atdrummond 4 years ago

This is shattering. I am glad he was able to be with family and friends; Roger was an immense help to me as I learned how to navigate APL/J and build a TSDB in the latter. He never let on that there were any health concerns - I feel guilty now for sending him so many messages over the last half decade.

I hope he gets the recognition he deserves. What he and Iverson have developed is truly unique and powerful.

EDIT: A bit macabre but Ken had his stroke on the 16th of October (2004) and died on the 19th. I know it’s coincidence but my mammalian brain can’t help but ascribe significance.

  • mst 4 years ago

    > I feel guilty now for sending him so many messages over the last half decade.

    Knowing geeks, I wouldn't be surprised if part of why he didn't let on was because he didn't want to stop having fun geeking out.

abrudz 4 years ago

I had the pleasure of working with him for several years. I count the paper we wrote together[0] (well, it was mostly him that wrote it, but we worked out the theory together) as one of my greatest achievements.

[0] https://www.jsoftware.com/papers/TAOaxioms.htm

  • atdrummond 4 years ago

    Thank you for your work - it was immensely helpful for our J-lang TSDB. I am hopeful that I can get interest/support soon to open source it, as Roger was pushing me to do so. He frequently sent me comments or suggestions that referenced your joint publication. I know he was quite proud of it.

jhbadger 4 years ago

I thought it was interesting that the notice about Roger's death was by Eric Iverson. The name struck me because Ken Iverson was the creator of APL and I wondered if they were related. Looking it up, they are. Eric is Ken's son -- so interest in APL has gone across generations.

metagame 4 years ago

Rest in peace. Roger Hui deserves a black bar just about as much as anyone.

A (likely incomplete) list of his talks can be found here; if you have the time, you should watch at least some of them: https://aplwiki.com/wiki/Roger_Hui

He dedicated a substantial portion of his life to the design and implementation of two of the last truly-unique languages in our field.

We all owe him a degree of debt. If you use numpy, for example, you're actually closer to the heritage of his work than you might imagine; about two steps removed. Start from the top of this thread and work your way down (I am sorry for the source of the link, but none of the frontends cover threads this long and with this many authors):

https://twitter.com/teoliphant/status/1115283666995941377

  • _pmf_ 4 years ago

    > of two of the last truly-unique languages in our field.

    What is the other one?

joe_the_user 4 years ago

I met Roger briefly as a presentation on J at SFSU.

He seemed like a mellow, straightforward person and I enjoyed how he explained a one-page long set of c-macros that expanded into the initial J compiler (written by Ken Iverson or someone else).

I remember asking him, "How do you debug something like that" and he said "don't make mistakes".

molticrystal 4 years ago

I wanted to learn more about "J" and this person, it is a nifty language

Some people might enjoy this thread on "A look at the J language: the fine line between genius and insanity (2012)" https://news.ycombinator.com/item?id=16393873

Also this answer here at math stack exchange https://math.stackexchange.com/questions/856153/the-j-progra...

  • masklinn 4 years ago

    The SO answer is easy to follow right until the final operator “/“ where it just goes “magic”. That’s less than helpful as the rest is quite straightforward aside from the syntax.

    Its very short description of the two-arguments version make it sound like a fold, but that wouldn’t generalise to what looks like a cartesian product, would it?

    • vidarh 4 years ago

      If I understand it right "*/" results in a function that applies "*" between its arguments. "~" takes the function f(x) on its left and the argument y on its right and turns it into f(y, y).

      So the right side of the tilde evaluates to a range 1..10. I think the tilde then turns its left and right into "*/"(1..10, 1..10), resulting in 1..10 * 1..10

      • icen 4 years ago

        / does different things depending on the arity of the preceding function.

        'f/ x' is 'insert' - i.e. reduce, so that '+/ 1+i.10' yields 55.

        'x f/ y' is 'table', inserting 'f' between each pair to form a generalised multiplication table.

        The documentation for j is unsurprisingly terse, but it is complete and very helpful.

        https://code.jsoftware.com/wiki/Vocabulary/slash#dyadic

        • masklinn 4 years ago

          Ah so the explanation is pretty much just “magic”.

          • icen 4 years ago

            It's no more magical than anything else. It just turns out that j has an operator that does exactly what you want.

            Having such operators and functions is far from an uncommon experience in j.

            • masklinn 4 years ago

              My problem with this is not “J has an operator that does exactly what you want” it’s “J has operators which do entirely different things depending on the arity”, you can’t intuit the behaviour of the binary / from the unary, they are for all intents and purposes unrelated.

              As a result, the original mathexchange answer introducing / by explaining its unary behaviour (despite that being used nowhere in the answer) is solely a source of confusion.

              • icen 4 years ago

                The original description is misleading, yes.

                The distinguishing between arities is a consistent feature of all of these languages. I find fluency comes quickly to it.

                Edit: as for intuition between the two, this is sometimes not obvious, but I think it's a sensible generalisation from the monadic case to the dyadic. How else would you want to extend a fold to two arguments?

                • masklinn 4 years ago

                  > How else would you want to extend a fold to two arguments?

                  I don't know that there is one that's useful, but a cartesian product seems like the opposite: a fold is a dimensional reduction (from 1 to 0 at the most basic), a cartesian product is dimensionally preserving (you start with 1 and 1, you end up with 2).

                  A cartesian product (with a mapping function) might be interpreted as the extension of a map, I don't rightly see how it can be interpreted as the extension of a fold, except in the sense that you can implement essentially any iterative process using folds, but that leads to you every n-dimensional transformation being a possible extension of a fold.

                  So my answer would mostly be "you would not". You could also define an n-dimensional fold as a fold against a caller-specified dimension, but I don't know how useful that would be (though I guess this sort of folds is used when integrating over time in e.g. reactive interfaces).

      • masklinn 4 years ago

        > I think the tilde then turns its left and right into "/"(1..10, 1..10), resulting in 1..10 1..10

        That is the part which doesn’t make sense to me: `/ v` is `foldl1 () v`, how does that generalise to a cartesian product when applied to >1 sequences?

      • danparsonson 4 years ago

        Something akin to a map operation maybe?

hhyndman 4 years ago

Roger was a colleague of mine when I worked at IP Sharp. Lovely guy. My condolences to his family. Rest in peace.

a_c 4 years ago

To my ignorance, I've never heard of J nor Roger. Learned someone and something new today. You will be remembered. RIP

jim-jim-jim 4 years ago

RIP to a real one. I've played with all the major array langs, but J is the one I keep coming back to. There's still so much more I have to learn from this guy.

quantified 4 years ago

Met him a long time ago when J was relatively new, through a friend. Didn’t know anything about him except he was a friend colleague of my friend. And we was such a mellow, soft-spoken, nice guy. Who I learned a few months later was both seriously smart and had made this thing that had inspired me.

Real loss.

7thaccount 4 years ago

Sorry to hear this. I've never met him, but know of his work and blog posts on APL & J.

MikeGale 4 years ago

Roger made a major contribution, in a quiet way.

Thoughts are with all those who miss him.

felicopter 4 years ago

This is sad news indeed. A couple of things about Roger:

The less important one: his Erdős number is 2, thanks to his coauthoring "A generalization of the fast LUP matrix decomposition algorithm and applications" with Shlomo Moran whose Erdős number is 1. (It's not shown on his Wikipedia page, but he's listed at https://en.wikipedia.org/wiki/List_of_people_by_Erd%C5%91s_n... .)

Roger was a great example of "precision with humanity", like Ken Iverson. This was obvious in many ways, and here's an unusual one: I've managed various technical groups over the decades, and Roger was the only person who, when he said he'd have something done by a particular date, was finished by that date, every single time. When he ran into a snag I would sometimes tell him that it would be okay if it took longer, but no, as far as he was concerned he'd made a commitment and was going to meet it, even if that meant working a lot of extra hours.

Rohan Jayasekera

Wistar 4 years ago

A fine piece of tribute writing, that.

jasonwatkinspdx 4 years ago

I first ran into J from their ICFP submission one year. The J implementation did quite well in the contest despite being shockingly terse, and running on an interpreter. That prompted me to figure out why, and I learned a lot of interest if unconventional ideas as a result.

Vaslo 4 years ago

I’ve been seeing more and more of these unfortunate postings lately. I often only hear of these contributions or even the languages themselves after the person passes on, which is unfortunate. Hope his family is ok.

unnouinceput 4 years ago

68 years young. Fuck cancer (my father died from it at 71).

RIP.

  • formvoltron 4 years ago

    Sorry to hear that. F cancer.

    My Dad is dying now from it. 83 but the time has gone so fast. He was otherwise in top shape.

    I have high hopes for the new blood test that can detect several types of cancer at a very early stage. It's in trials now in the UK.

cryptodan 4 years ago

RIP and condolences to the people grieving

chagaif 4 years ago

What chat would he insist on?

jacknews 4 years ago

RIP

Is this the reason for the black stripe on HN? Is there a way to click the stripe or otherwise see the reason for it, other than scanning posts for the sad news?

thesuperbigfrog 4 years ago

Black banner posted.

To honor Roger's passing.

A time to reflect.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection