Hal Abelson and Gerald Sussman on Programming and Stuff and Gregor Kiczales on Teaching Millions of People How to Design Programs

For more Eelectrical  Engineering, see Jade on The Integral Formulation of Maxwell's Equations. For more on music and poetry, see Moritz Klein's DIY Synth Prototyping Station. The idea is to be able to use computation to make languages for describing how modular synthesisers interconnect, and then to use those languages to describe sounds at different levels.

I had this big bust-up with Richard Stallman in 2014, because I was basically saying that we should make the abstract information about the devices free, not some concrete realization of just a limited instance of it, which is what people typically mean by the term sofware. In fact the term software as it was originally used in the US defense world was to refer to manuals and training, as opposed to hardware, which is the term for the actual mechanical devices. In the world today software is fundamentally mechanical: a program is a concrete mechanism that performs some mechanical action in response its input. So what I was saying to Richard Stallman is that it is not the mechanisms that should be free, it is the ideas behind them: that is, the reasons that they are indeed mechanisms that is important, not the mechanisms themselves, which in the face of bugs are sometimes not even actual mechanisms, because they're broken! But Stallman said "there's no reason we should throw away all of our software" and my response was basically, "No, Richard, there's no reason why we shouldn't throw away all of the software, because the software that the Free Software Foundation produces could be mechanically generated from formal specifications, and then all we need to debug are the rules by which we generate the concrete instances from the abstract specifications. Those rules can be applied to a much wider class of inputs so we could fix bugs in dozens of different pieces of software all at once, just by fixing the rules that instantiate the specifications. See Automatic Translation and The Mother of all Software Vulnerabilities.

Now looking at what Hal Abelson is saying, I was just taking their toys away from kids, and that's why everyone got so pissed at me! But some kids, like Julian Ziegler Hunts, do seem to get it. See Daniel Tubbenhauer Doing Inscrutable Things With Analytic Number Theory.

42:50 William Bowman's question on AI/Natural Language v. Formal Languages. This is related to the remark right at the beginning about the difference between mathematics and computation. There Gerald says that computation answers questions about "How to?" and mathematics about "What is?". You could add to that that Constructive Mathematics is related to questions of "How to (construct) what is?" See Steve Awodey - Intentionality, Invariance and Univalence.

57:58 That question about Python, ... this is another thing that my argument with Stallman was about. We need to be able to specify those C-library bindings formally and automatically generate the necessary binding code, using Domain Specific Languages, to get away from this dependency on concrete instantiations which makes Python so superior as a result of what is primarily just a sociological phenomenon: that it garnered most of the efforts of people who write C-library bindings.

Subscribe to Racket.



Comments

Popular posts from this blog

Live Science - Leonardo da Vinci's Ancestry

David Turner Obituary by Sarah Nicholas Fri 24 Nov 2023