Comment by square_usual

1 day ago

Every now and then someone posts the "X programmers (implied good) hate AI, Y programmers (implied bad) hate AI!" and every time people come out of the woodwork to point out that, no, X programmers can also use AI to take out things they can delegate and focus on stuff that's cool. Case in point, Steve Klabnik, a programmer who nobody can say doesn't care about the craft, is working on a new language primarily with AI: https://rue-lang.dev/

It can be, yeah. I use it sometimes to shim libraries or write one-off scripts. But it's made me disgustingly introspective. Why do I do anything? Where do I draw my lines?

An example. I've been writing a Lisp, and I'm using GNU Readline for text input. Later I found out that Readline can't be built for WebAssembly, and I decided to have Claude write a podunk replacement for it. I now have a bit of code in my Git, attached to my name, that I didn't write

What did I lose by doing that? My goal wasn't "to write a Readline", that's why I was using it in the first place. But my goal also wasn't "to have a working Lisp interpreter" or even like "to know how a Lisp interpreter works". It was a desire to Know More. Surely I'd have learned something useful (in some form) by doing all the minutiae myself. Or would I have learned more by doing none of it and printing out the SBCL source to read over coffee?

Sorry, I ended up rambling. I don't have any answers. I think I'm just butthurt by the "X, Y" sort of comments you mentioned and the solution is (as always) to touch grass

  • In practice we've been doing setting the threshold of what we care about for a long time already, with firmware, operating systems, libraries, etc. You can always go one level deeper if you want more. Did you want to know how readline works? What about terminal control characters? What about pty? What about the input? The keyboard interface? HID? Device drivers? USB? Packet transmission? Serial interfaces? Electrical connections? Signal integrity?

    LLM code provides just another type of available abstraction where we can stop in learning, but not really something entirely new.