I know a lot of us here have been influenced by ta...
# thinking-together
j
I know a lot of us here have been influenced by talks like Bret Victor’s “Inventing on Principle”. But I’m curious about your favorite papers that are somehow related to the future of coding. I’ll start with mine. PILOT: A Step Toward Man-Computer Symbiosis - Warren Teitelman This is actually a thesis, so it is a bit long, though much of that length is taken up with a transcript. I will admit there is a lot in this paper that isn’t great. The resulting system is almost certainly something no one would want to use today. But yet in it are such interesting ideas. It is often considered to be the paper that introduced aspect oriented programming, but I believe that sells it a bit short. PILOT is an integrated, live, editing and computational system. It’s goal is to allow programmers to 1) customize their interface and syntax, 2) edit programs they are unfamiliar with 3) make changes not just to current functions in the program, but future ones as well 4) control how the program itself executes and so much more. It is a bit of a historical trip, but includes so many fascinating ideas. Programming as Theory Building - Peter Naur Naur lays out a view of the activity of programming that is both radical and yet highly attractive. A key consequence on his theory is that the real end product of programming is not the source code, not the build artifact, not the running system, but the knowledge that a programmer builds. So much follows from this. It is a fascinating paper that I highly recommend reading. The Structure of a Programming Language Revolution - Richard P Gabriel A beautiful paper about the changes to programming language research that Gabriel has seen over his career. I will just leave you with this quote that sets the mood for the paper.
That night I pulled the paper down from the ACM server and read it while outside enormous puffed clouds dwelled overhead, lit from beneath by the town of Porto de Galinhas on the Brazilian coast; the smell of burning sugarcane and bitter ocean pushed into my room.
What are your favorites? What papers have really pushed you in a particular direction? What papers do you think people should read, even if you disagree with them? Whatever the criteria for the paper being good, I want to know about it.
😉 3
❤️ 10
k
Beyond Programming Languages - Terry Winograd (1979) Discusses higher-level programming which is less about algorithms and data structures and more about different views on a complex software system that can be manipulated by programmers.
☝️ 5
c
I'll second the Winograd paper! A few that have influenced my thoughts around programming tools are: • Beyond Being There - This one is mostly about communication media, but given that communication is necessary for coordination, and that coordination is necessary for delivering and maintaining complex systems, having solid communication media is (I believe), a principal factor in the success of any group that wishes to build software: http://worrydream.com/refs/Hollan%20-%20Beyond%20Being%20There.pdfConvivial Design Heuristics for Software Systems - Stephen Kell talks about how language and environment designers can afford individuals agency and freedom, while limiting their ability to trample the freedoms of others: he gives many great (and counterintuitive) recommendations such as introducing friction when it comes to defining abstractions: https://dl.acm.org/doi/abs/10.1145/3397537.3397543WhyLine - "A debugging tool that allows programmers to ask 'Why did' and 'Why didn't' questions about their program's output". This is interesting to me because it inverts the relationship between programmer and computer. Normally the programmer is the one tasked with coming up with the "why/why not" questions: in the case of Whyline, the system generates these questions automatically based on static and dynamic analyses of the running system: https://www.cs.cmu.edu/~NatProg/whyline.htmlA Programmable Programming Language - Matthias Felleisen has some great talks on building DSLs in Racket (

https://www.youtube.com/watch?v=z8Pz4bJV3Tk

) but I think his paper does the best job of explaining why language-oriented programming is so powerful (the "Thoughts" section of his website is also full of gems: https://felleisen.org/matthias/Thoughts/index.html): https://cs.brown.edu/~sk/Publications/Papers/Published/fffkbmt-programmable-prog-lang/paper.pdfRevisiting and Broadening the Meta-Design Framework for End-User Development - This paper builds on the authors' earlier work (https://www.researchgate.net/publication/220427813_Meta-Design_A_manifesto_for_End-User_Development) and advocates for open, extensible systems, and for the designers of those systems to engage end-users as co-designers of these kinds of systems, as opposed to building "walled gardens" that attempt to anticipate every future need or possible use of the system: https://www.researchgate.net/publication/316734680_Revisiting_and_Broadening_the_Meta-Design_Framework_for_End-User_Development
👍 4
j
@Konrad Hinsen Just finished the Winograd Paper. Thank you so much for that recommendation!| @crabl Love beyond being there. The other’s I have not read, (though I am familiar with racket). Thanks for the recommendations :) Look forward to diving in.
k
@crabl thanks for Beyond Being There! In particular, I've often thought we haven't done nearly enough with the idea of batching up communications. (Analogously, not nearly enough games have explored Diplomacy's idea of batching up moves.)
y
How about papers by women?
If we only read stuff by people from a very particular background then that's really going to limit things.
Can we get to the stage that reeling of a long list of male influences is a bit embarrassing?
k
Oh yes, Bonnie Nardi's "A Small Matter of Programming" may well be the most cited book in this community.
💯 3
y
I'm really enjoying Bainbridge's Ironies of Automation at the moment https://ckrybus.com/static/papers/Bainbridge_1983_Automatica.pdf
more generally though I think to start thinking about the 'future of coding', and especially to claim to somehow represent it, this community would have to open up in a lot of ways.
k
I'd love to see more suggestions. Also of papers by non-white authors. Based on my time in this community, I don't think there are any illusions here about "representing" anything, or about having attained a suitable level of openness.
💯 2
y
yes the whiteness is a problem too. This is all more complex than I understand, but I suppose that programming culture has grown in military, colonial context and so underlying white supremacy and misogyny has led to mostly white men citing mostly white men talking about the future of coding.
I think it is telling that Bret Victor is generally the starting point for the future of coding yet Bret himself very publically disowned programming culture right?
He did a whole thing saying what he was doing wasn't about programming at all.
or am I imagining that..
"I can be goaded into writing about programming, but that doesn't mean that "programming" is what I consider myself to be working on. It might just mean that I'm easily goaded."
k
How often do you even know if the author(s) of a paper are white or not (assuming you have some clear definition of "white")? I once did a sample check on my paper collection and concluded that I cannot even deduce gender from author names in about 30% of the cases.
y
Indeed, as you imply the definition of 'white' is problematic.
k
I think it's useful and often even important to evaluate the context in which a paper was written. But it's also very difficult to do in practice, unless you are personally close to the community that the paper is coming from. Which is not my case for anything from CS communities.
👍 2
y
Are you suggesting that we ignore race and gender then?
agreed that deducing gender or race from name is problematic, but we should also not rejoice in ignorance.
I'm not suggesting we should practice tokenism, but rather re-examine the foundations of our work and look for completely different starting points.
k
@yaxu I am suggesting that "papers" is not a good point of view to deal with diversity issues. Which means that, yes, I am indirectly suggesting to ignore race and gender in a context where all we have is papers.
👍 1
y
have you ever been to a CS conference?
If you are suggesting that the usual references of this community might be representative of the wider population, with respect to race, gender or class then I would say that is very far from reality.
j
As @Kartik Agaram mentioned above, I don't believe we have deluded ourselves into thinking we represent some wider population... We are just some people discussing shared topics of interest.
👍 3
y
"ignore race and gender in a context where all we have is papers." am I the only one who finds this point of view incredibly blinkered?
j
Perhaps these questions around diversity should have their own thread(s)...? They might be missed otherwise, as it's a bit different from the topic of the OP, even though I understand it intersects with papers (as it does with everything).
y
Would it be better for this community should be renamed "future of coding for men"?
No this is on topic. But I can leave the slack if you don't like to talk about it.
j
I am trying to facilitate the participation of more people in the community. It's easy to ignore replies in Slack, so I suspect many people don't even realise this discussion is happening.
👍 2
y
I see, my apologies. I am currently feeling isolated in CS at the moment (even as a white man) and am fearful of how CS communities can sideline discussion of its foundations. I recently had to leave a programming language design community where discussion of politics and philosophy was explicitly against the rules.
❤️ 2
perhaps best to take a short break and start a new more convivial thread.
💯 1
(less focussed on my own annoyance)
j
That was an unfortunate omission on my part. I will try to rectify that now and be sure to be more cognizant of that problematic omission in the future. First while it has already been mentioned Bonnie Bardi’s Small Matter of Programming definitely has to get a mention from me. It is a wonderful book, full in interesting insights and clear prose. Her work is by far the most in-depth work into end-user programming I’m aware of. (Replaced a paper by someone who I had assumed gender based on name) My bad :( Chris Martens All paper’s I’ve read from Chris Martens. They are an incredible scholar doing work on work on applying linear logic to games and narrative creation. Fascinating stuff that I don’t quite fully understand yet. https://sites.google.com/ncsu.edu/cmartens/publications?authuser=0 Making Things Up - Karen Bennet Perhaps not related at all to programming. But I think there is something here. Making things up is an incredible work of philosophy diving into the notion of fundamentality. Bennet explores various “building” relations and discussing criteria for something being “built”. Under her view, things like grounding, composition, and even causality fall under the general topic of building. You know what else falls under that topic? Abstractions. Abstractions are built out of other abstractions. Some abstractions are more fundamental than others, but fundamental absolutely or relative to some base? Making Things Up gives us vocabulary and interesting constraints to talk about that very issue. Wonderful book. Simple and Effective Type Check Removal through Lazy Basic Block Versioning - Maxime Chevalier-Boisvert While some people might not find this paper to be “future” enough, I am a big fan. I think that dynamic programming offers a much more expressive base for programming. I’m not opposed to types, but love the freedom and a certain kind of liveness that I feel is unique to dynamic languages. This paper lays out a very straight forward way to build a JIT compiler. No need to trace, simply lazily construct your code. When you get to a type check, don’t take the branch, put a placeholder, if you invoke that placeholder, you now know the type and can codegen accordingly. Super excited about this technique and hope to find the type to implement it soon.
❤️ 6
y
Thanks Jimmy, Making Things Up looks really interesting, I'll pick it up. I can see Ursula Franklin's "Real World of Technology" comes up here often too, and has really changed my thinking. It's available on archive.org in both book and audio lecture form (although the latter has a chapter missing)
j
Will definitely check out Real World of Technology. A book along similar themes that was absolutely wonderful was "In the Age of the Smart Machine" by Shoshana Zuboff. Looks at the impact software systems have had on workers who now have to use them. Gives a really good contrast in the way computer systems can limit some, robbing them of the things they love in their job, but for others can empower them. Really good stuff to think about as we build systems.
k
Here's the link to the Ursula Franklin talks: https://archive.org/details/the-real-world-of-technology I watched it a few months ago. Hearty recommend.
c
I don't have anything to add but just wanted to point out that the creator of WhyLine (Amy Ko) is a woman.
c
@Chris Knott As is Elisa Giaccardi, a co-author of the paper on Meta-Design that I linked to!
👍 1