less than 1 minute read

Post on LinkedIn

While preparing a lecture on software architecture, I went back to Joel Spolsky’s blog post on leaky abstractions:

“Code generation tools which pretend to abstract out something, like all abstractions, leak, and the only way to deal with the leaks competently is to learn about how the abstractions work and what they are abstracting. So the abstractions save us time working, but they don’t save us time learning.”

IMHO the last sentence nicely translates to LLM-based code generation tools and is in line with results suggesting that experts benefit more from those tools than novices. On the other hand: Tools such as ChatGPT can serve as a mentor/peer supporting learning.

I guess the main takeaway is that blindly accepting generated code one doesn’t fully understand is problematic in terms of maintainability but even more so in terms of learning.

Leaky abstractions
Image created using DALL-E.

Updated: