News for hackers. Stuff that matters.
Re:It's Time for a New Old Language – Guy Steele [video] by TeMPOraL on Monday October 16, 2017 @07:48AM (#15482534)
I've finished watching the talk, and I'm not sure if this is serious, or is Guy Steele just trolling people in a sophisticated way. The TL;DR as I understand is:

- Computer science papers have this ad-hoc, ever evolving notation that started out in mathematics, that is not well defined (every paper ends up using a different flavour, sometimes even a bunch of mutually contradicting flavours at the same time), and that is subject to weird evolutionary pressures (like page limit of CS papers leading to extreme conciseness).

- Particularly interesting is the evolution of overline notation, and the ubiquitous but never defined use of ellipsis.

- Guy thinks this is a mess and should be cleaned up. His first contribution is solving overline notation abuse by introducing underlines, which cancel out overlines, thus implementing quasiquoting in mathematical notation. His second contribution is formalizing the meaning of ellipsis by defining a transformation from ellipsis form into over/underline form.

Maybe it's because of the way he presented it, or maybe because of my unfamiliarity with the space, but overall this talk really felt like a one-hour long practical joke aimed at CS academics.

Re:It's Time for a New Old Language – Guy Steele [video] by tonyg on Monday October 16, 2017 @08:18AM (#15482654)
I took it as completely serious. Variation in notation for this kind of thing is a severe obstacle to understanding a paper. It also means the authors are missing out on useful tooling for checking the correctness of their notation, let alone their models.

Redex takes this in an interesting direction, allowing you to write your language models in S-expressions, run them, test them, and get LaTeX out automatically. See https://redex.racket-lang.org/ and https://eecs.northwestern.edu/~robby/lightweight-metatheory/... .

Re:It's Time for a New Old Language – Guy Steele [video] by le-mark on Monday October 16, 2017 @04:05PM (#15486238)
Notation is soo important. This was a highly memborable presentation by Gerald Sussman, mathematical notation was a big part: "Programming for the Expression of Ideas". Very good to watch:

https://www.infoq.com/presentations/Expression-of-Ideas

Re:It's Time for a New Old Language – Guy Steele [video] by gumby on Monday October 16, 2017 @08:03PM (#15487667)
...and of course Sussman and Steele did a lot of work together (including, most notably, the Ultimate papers).
Re:It's Time for a New Old Language – Guy Steele [video] by TuringTest on Monday October 16, 2017 @08:10AM (#15482615)
I have not watched the talk in-depth so I can't tell whether it's trolling, but I have worked with academic CS papers. I would agree with an attempt to develop a new symbolism for describing CS theory, that was closer to modern programming languages, or at least to a LISP-like Domain Specific Language.

It's true that the language of mathematics was optimized for a different medium: written formulas on paper. Algorithms are better expressed in pseudo-code, but to describe the exact effects of a language instructions we have to resort to formal semantics (whether denotational, operational or axiomatic), which basically describe the workings of a virtual machine in terms of a temporal logic expressed with mathematical symbols.

The ellipsis in maths is usually an ambiguous symbol whose meaning changes depending on context. In CS, it typically represents either vectors in memory or successive recursive calls. Trying to provide a precise meaning for its usage is a legitimate endeavor; it appears that Steele is using symbols from vector maths to achieve it. What I get from skimming the video is that the combination of overlines and underlines would be a way to represent how you would combine your nested loops in imperative programming to traverse the data structure.

Re:It's Time for a New Old Language – Guy Steele [video] by throwaway7645 on Monday October 16, 2017 @01:55PM (#15485226)
I'm guessing Ken Iverson's APL wouldn't work here? It can show algorithms just fine. I'm not sure about type theory though.
Re:It's Time for a New Old Language – Guy Steele [video] by cryptonector on Monday October 16, 2017 @03:04PM (#15485785)
Watch the video. It's great!
Re:It's Time for a New Old Language – Guy Steele [video] by cryptonector on Monday October 16, 2017 @03:03PM (#15485781)
He's being dead serious. He says papers on this are coming up. I don't think he means that this is a "mess", as you put it, but rather, a ripe opportunity to make papers more readable and their CSM code runnable in various ways. That last part is very important. A great deal of material is locked up in these non-machine-readable algorithm descriptions that could be made useful for things like: code generation, actual implementation, correctness proofs, and so on. This is fantastic. It's exciting. I'm jumping up and down with joy at the thought. I'm thanking my lucky stars I watched this video today. I can't overemphasize nor overestimate just what a wonderful innovation this is. Just wow!

Edit: have I mentioned that I'm wowed by this?!

Re:It's Time for a New Old Language – Guy Steele [video] by festidious on Monday October 16, 2017 @11:57AM (#15484135)
This talk makes perfect sense if you know a bit about Steele's recent research history.

It was a main focus of Fortress (https://en.wikipedia.org/wiki/Fortress_(programming_language...), for example, which was interesting but never quite got off the ground in the same way as other competitors, in part because of the focus on notation implementation.

If anything, my experience following Fortress led me to believe what Steele was discussing in his talk is both a tremendous opportunity but also much more difficult than the impression he creates.

For what it's worth, I thought the talk was really interesting and I would like to see it taken more seriously, if not as an immediate goal, then a long-term one.

Re:It's Time for a New Old Language – Guy Steele [video] by samth on Tuesday October 17, 2017 @09:52AM (#15490864)
While we spent a lot of time on it, I don't think the failures of Fortress were about the time spent on notation.

(Source: I wrote the first parser for Fortress, as well as the first type checker and interpreter.)

Re:It's Time for a New Old Language – Guy Steele [video] by titzer on Monday October 16, 2017 @02:58PM (#15485747)
I'm pretty familiar with this notation. No, he isn't trolling, it's not a practical joke, and even though it might seem esoteric and trivial to the outside world (hell, what academic disciple isn't?), he has a good point. The foundations of programming languages should use a consistent notation with well-defined semantics. Of course, theorem provers can encode most of these kinds of rule systems, and do have a concrete syntax that is not nearly as concise, but they do force the formalism into an automatic checker. Some academics really hate the "programming" of using a theorem prover, but I find it to be an incredible boon to the field.
Re:It's Time for a New Old Language – Guy Steele [video] by chubot on Monday October 16, 2017 @01:20PM (#15484930)
Yeah I think it's because you haven't spent hours and hours of your life reading conference papers like he has.

I read a lot of programming language papers, but not type theory papers.

It definitely seems like there is a problem, but solving it would probably only help me a little. That said, I hope that people listen to what he has to say, because it seems very well-considered.

Re:It's Time for a New Old Language – Guy Steele [video] by eric-hu on Monday October 16, 2017 @09:57AM (#15483202)
I also took the under bar suggestion as a joke/troll. He mentioned horizontal lines don't work well with OCR earlier in the talk. He also said parenthesis based syntax worked better for typesetters, which I feel still holds true with LaTeX.

I think his overall point is meant to be serious though: that the language of formal CS should be more consistent.

Re:It's Time for a New Old Language – Guy Steele [video] by kd0amg on Monday October 16, 2017 @01:27PM (#15485013)
Underline seems like a perfectly sensible thing to me. I've run into problems like his "same Γ, different x and τ" example many times. In PLT Redex, I have to either make sure the thing I intend to be non-subscripted is already bound elsewhere or make an after-the-fact check that all of the subscripted versions of it are equal. Both options are awkward, and which one I have to do varies by situation. An `unsequence' notation to complement the `sequence' notation (which is actually done in Redex by appending an ellipsis) would let me directly say what I mean. The OCR issue is strictly an aspect of the marks put on the page rather than the ideas they describe, and a completely serial notation could be used as well (similar to backtick and comma for quasiquotation).