gerald sussman once said that programming is no longer constructive, building truths from truths, instead investigative, identifying probable behavior from unreliable libraries. anyway, llms,,,

https://wingolog.org/archives/2009/03/24/international-lisp-conference-day-two

@wingo amusingly, this isn't even true about resistors; did you know that resistors that appear completely identical from the outside can have completely different noise spectra?
@whitequark i did not know that :) i also don't know what it means. if the abstraction is not watertight, it hasn't leaked enough to reach me ;)

@wingo like, imagine connecting headphones across a resistor

thick film resistors will be like SHHHHHHHH while thin film resistors will be like shhhhhhh... despite looking identical and having the same resistance and tolerance and environmental conditions

(this matters a lot in sensitive analog circuits. not at all for digital stuff)

@wingo I legitimately love and appreciate Sussman and his work, but even by the standard of his contemporaries and peers he's always had a highly specific, therefore narrow, view of programming. Go as far back as you'd like, e.g. in the 1960s most programmers were not building "truths on truths".
@pervognsen oh sure :) it is just a moment that i think about when someone comes with a generated piece of code that they are happy with but which no one knows anything about
@wingo I wrote a response to this the last time you posted it... I think Sussman's assessment was probably more or less correct when he made it, but we built a better world afterwards, and ceding that ground meant giving up fundamental tools of problem-solving that are perhaps more valuable now than they've ever been.
https://blog.information-superhighway.net/on-the-need-for-understanding
On The Need For Understanding

I saw this Mastodon post from Andy Wingo recently: in these days of coding agents and what-not, i often think of gerald sussman's comm...

blog dot information dash superhighway dot net
@SpindleyQ omg i had forgotten that i posted this before, how embarassing 😅

@wingo I for one am glad to see this discourse re-emerge! I will read your essay @SpindleyQ

And I think it's good to bring this up now and think about it!

@cwebber @wingo @SpindleyQ even this essay does a xkcd/2501, lol
@ailurocrat @cwebber @wingo It was really important to me to tie my thoughts to concrete personal experiences, but it was _so_ difficult to edit it down so that the whole thing wasn't completely dominated by infodumping about the minutiae of DOS programming or whatever. In the end I kind of had to punt and hope that the reader would be able to get the gist of the stories. I'm sure people's mileage will vary on whether that worked or not.
@SpindleyQ @cwebber @wingo I got the general idea of it, despite not understanding programming. (my comment wasn't really directly about the essay, it was my usual gripe about it being hard to get into programming without already understanding it at least more than I do)

@ailurocrat Ah! I actually share that gripe!

For almost 20 years I've run an online community that encouraged normal people to make computer games with accessible tools. At the start, many people used a piece of software called "Klik & Play" to make something silly in an hour or two. It was obsolete even at the time - written for Windows 3.1 - but the company offered it as a free download for schools. Every later version of the tool added more complexity, and was less and less approachable.

@ailurocrat The history of early computing is absolutely full of expressive programming tools, thoughtfully designed for people with little to no programming experience to be able to pick up and use to build interesting things with little external instruction, as well as to learn from and grow their own abilities. The landscape's not like that anymore, and it kills me. It's inhumane to make every novice suffer through the pointless complexity of industrial programming ecosystems.
@SpindleyQ the thing is, i enjoyed playing around with my apple 2c in middle school, just didn't continue figuring out stuff beyond minimal logo pixelated cat pics and changing the font in appleworks.
@SpindleyQ i would love if someone was patient enough with me to teach me what i feel I need to know (which of course is impossible due to EVERY fucking course NOT for people who just wanna play around, but for entry into corp fuckery which i want NOTHING to do with.
@SpindleyQ oh wow, i’d been sort of casually trying to remember what the name of klik & play was for a while now, what a nostalgia rush 😅
@brhfl it's so good!!! I met one of the original authors at GDC in 2012 and it was one of the highlights of my life haha
@wingo it's an evergreen sentiment for sure, haha!
@SpindleyQ @wingo thank you for expressing so well what I'd been struggling to think
@SpindleyQ @wingo my neck aches from agreeing so hard
@SpindleyQ I really, really enjoyed reading your essay! It maps closely to my own experience, and is a great reminder.
@SpindleyQ This is a very good read; thanks for sharing it again.
@misty thank you! I was actually a little too self-conscious to share it when I first wrote it, but I'm glad I got a second opportunity. It seems to really be resonating with people.
@SpindleyQ really really adored this piece, thanks man. gave me stuff to chew on.
@SpindleyQ this makes me wish my job was not remote so I could print this out and nail it to the door
@wingo It is a shame, that most people don't even aim to learn how to make things themselves, if only there is a half-broken library doing it for them, even if writing that function would be a 1-pager or not much code, if one only knew how to do it. I think this is what leads to so many projects having so many dependencies. Projects with no dependencies but a standard library immediately feel like a breath of fresh air.

@wingo Yes. I remember the days when if I *really* wanted to know what the computer was doing, because what the logic analyser was reporting didn't make sense, I could use an oscilloscope. We knew every byte of code in the machine and we had a reasonable idea what the hardware was.

I reckon it was things like on-chip caches that broke this way of doing software - the CPU was now doing things that weren't visible on the external bus.

@TimWardCam @wingo whenever i say "I *really* need to know what the computer is doing", I am never, ever talking about behavior that could be sensibly investigated with an oscilloscope.
@PaulDavisTheFirst @wingo Not these days, no. I'm talking about prototype hardware in the 1980s.