You are viewing archived messages.
Go here to search the history.

Breck Yunits 2022-09-20 01:06:27

I just rewrote search on PLDB to be a lot faster and case insensitive. Lots of you folks appear on there 🙂 build.pldb.com/search?q=agaram

Ivan Reese 2022-09-20 15:28:07

Future of Coding • Episode 58

Richard P. Gabriel • Structure of a Programming Language Revolution

đź”— futureofcoding.org/episodes/058

Today we’re discussing the so-called “incommensurability” paper: The Structure of a Programming Language Revolution by Richard P. Gabriel.

In the pre-show, Jimmy demands that Ivan come right out and explain himself, and so he does, to a certain extent at least. In the post-show, Jimmy draws such a thick line between programming and philosophy that it wouldn’t even look out of place on Groucho Marx’s face.

Next episode, we will be covering the Worse is Better family of thought products , so take 15 minutes to read these three absolute bangers if you’d like to be ahead of the game:

Also, note that I'm taking this episode as an opportunity to start a little community fundraiser for St. Jude Children's Research Hospital. They're doing unbelievable work to end childhood cancer, including offering free treatment and covering the travel, food, and housing costs of the families who come to St. Jude for care. Their research has helped raise the survival rate of childhood cancer from 20% to 80% over the past 50 years. If you'd like to support this fantastic cause, donate here to be part of the FoC campaign. Thank you.

Jack Rusher 2022-09-21 12:09:43

I was excited to listen to you interview with rpg, and especially looking forward to the part where you two talked guitars (he's an avid player), but then...

Ivan Reese 2022-09-22 03:19:44

My newfound asceticism means I will only interview someone who plays bulbul tarang in a CoffeeScript gang. Perhaps, in a moment of weakness, I might interview an autoharpist / Rubyist, or a hurdy-gurdy-er / AppleScripter. But that's as far as I can be stretched.

William Taysom 2022-09-22 03:21:44

The difference between programming system and programming language cultures is one we see come up here on FoC frequently since live programming people are overrepresented niche here. It's a deeper difference than say, the difference between static typing and dynamic typing, since liveness has a bigger influence on the practice, on what you do while you're working, and on what artifacts you're working on. There seems to be an awkward spot where people think they're in the same culture when in fact there are fundamentally different assumptions.

Bigger differences would be more obviously incommensurable. The way a data analyst works, even as programming comes up as part their job, is radically different than a software developer. With smaller differences people can directly compare the tradeoffs. An IDE helps with this, but a generic text editor is more flexible like that. Incommensurability comes when there are significant, hidden differences in focus.

Konrad Hinsen 2022-09-22 18:36:22

Something that the philosophical parts of the episode have hinted at but not named is perspectival realism, which I think is the most up-to-date approach to the philosophy of science.

Konrad Hinsen 2022-09-23 05:41:20

I really enjoyed this episode, with its in-depth analysis of a paper that I vaguely remembered, having read it many years ago.

An aspect I have never really seen discussed in the language-vs.-system debate is the fact that any "program" written in a "language" is necessarily embedded into a computing "system". A PC running Linux is as much a computing system as a Lisp or Smalltalk environment, just designed with very different priorities in mind.

I'd love to see "systems" people acknowledge that well-defined subsystems with provable properties can be very useful to have. And "language" people acknowledge that their language necessarily has an interface to the outside world, and depends on support tools that live in an embedding system. From that point of view, they could perhaps even talk to each other.

Kartik Agaram 2022-09-24 20:57:16

Yeah, I had a similar reaction. The systems vs languages divide or OS vs compiler people divide has existed long before 1990, so treating it as an instance of a Kuhnian revolution is likely to lead one astray. One side didn't come after the other.

Kartik Agaram 2022-09-24 21:06:05

I think the claim of incommensurability is a bit overblown. Here's a random PhD thesis from 2002 (so a decade before RPG's paper) about mixins that I just happen to be aware of because I sat in the cubicle next door and helped proofread it and attend practice talks: cs.utexas.edu/~lin/papers/richcar.pdf

Here's what it says about mixins in Section 2.3.2:

The term mixin was first used to describe a style of LISP programming that combines classes using multiple inheritance [Moon, OO with Flavors]. Since then, however, mixins have been more commonly defined as types whose supertypes are declared parametrically [Bracha and Cook, Mixin-based inheritance], and it is in this sense that we use the term.

Kartik Agaram 2022-09-24 21:19:26

Here's Bracha and Cook, "Mixin-based inheritance": bracha.org/oopsla90.pdf

I don't see any occurrence of the word "science" or "scientific". So I'm not sure what RPG meant by "immediately laid claim to being the first scientific paper on mixins," but the paper doesn't say that anyway. It would be kind of a weird thing to say in an academic paper. The groupthink and class warfare in academia RPG mentions is seldom written out in black and white in a paper. It's implicit in the way people characterize each other in hallways of conferences, papers chosen for publication, research projects funded, etc.

Kartik Agaram 2022-09-24 21:42:41

Alternative explanation for why conferences changed their names and the mix of papers in OOPSLA shifted: the AI winter. Before the winter there was a strong revolving door between academia and industry as researchers went off to create startups like Symbolics, then returned to academia. Such a revolving door has many benefits. It also has a tendency for practitioners to hype their research outside of academia, which leads to inflated expectations and, inevitably, a crash in funding. The word "Lisp" had to do some penance for a decade due to this dynamic before it was rehabilitated. It's not that different from companies changing their name after a big scandal.

Kartik Agaram 2022-09-24 22:08:28

Here's how Bracha and Cook defended ignoring before and after auxiliary methods:

The more complex method combination mechanisms of CLOS can also be modeled in this framework. For example, if before and after methods were distinguished then the base class, whose methods would be called after all other methods, could arrange for the last before method to call the primary method, and the last primary method to call the after method.

I think they understand CLOS just fine, even if they don't quite appreciate what it allows.

Bottomline: I find the distinction between auxiliary methods and superclass parameters to be fairly minor. In either case you have some primitives that ideally include a single concern, and combination mechanisms for composing them. Both rely on programmer taste to ensure the universe of concerns is orthogonal. Yes, Bracha and Cook seem to care more about "encapsulation", something I personally don't care about. But this is more an example of Steve Yegge's liberal vs conservative programmers than two sides that speak different languages using the same words. Conservatives typically tend to have experienced larger scales where it's easier for poor abstractions to slip through into code.

Kartik Agaram 2022-09-24 22:51:33

Returning to the podcast, a short story recommendation on the reality of numbers: "Division by zero" by Ted Chiang.

Konrad Hinsen 2022-09-25 08:03:30

I agree with Kartik Agaram that "incommensurability" is an exaggeration. What happened is more a shift of popularity in academia than a scientific revolution. Which is also why I hope that we can come back to peaceful coexistence of the two perspectives. However, RPG is right about people talking past each other because of differences in perspective. That happens all the time, probably not just in academia, but everywhere specialization has gone a bit too far.