tef

bad poster & mediocre photographer

  • they/them

look, i know it's fashionable to hate ai, things like copilot, especially around these circles

i am no exception, i don't like it either. i am happy being a luddite, and smashing the tech that's come to deskill our jobs, but when it comes to things like copilot, i do ask myself if i'm just being old and discounting what's new, hip, or different

let me be clear: i don't believe chatgpt and its ilk are "democratizing code". it's a ridiculously expensive tool that's being offered at an unsustainable discount, but i do believe there is potential for a tool that's a better autocomplete, one that doesn't end up boiling the oceans to generate a yaml template.

there's just an awful lot of programming that involves writing monotonous code, especially around api clients, or setting up yaml and configuration. although my job has regularly been "cleaning up the mess", i know a large part of other people's day jobs is "get the mess running as quickly as possible".

i can't say i would benefit from it, but i avoid those sorts of jobs to begin with. it feels unfair for me to point at others and say they're cheating. i'd cheat too, i'm a lazy piece of shit. i'd absolutely use something to smash out "print 1 to 10" and all of the other chore like code beginners are drudged through. i really can't fault people for slacking off at work with a magic yaml website.

well, except for the boiling oceans part, but i digress. the question of "is using copilot really programming" reminds me of the when mit switched away from sicp. there was a similar outcry. "are you really teaching programming if they aren't learning to write a compiler?!"

the answer was yes: mit argued that it was more important to teach programmers how to navigate using third party code that's buggy, than it was to teach them how to implement hygienic macros in scheme. it wasn't "cs foundations", but people did seem to benefit from the approach.

you could make the same argument for copilot, but that really depends if people are learning useful skills. then again, i'm not really sure what skills you learn from google, stackoverflow, and copy and paste, so it's not as if copilot really makes anything worse.

again, ignoring the boiling the oceans part, but again i digress. i'm just not sure it's really a meaningful improvement.

i've just never been convinced by templated code, or code generation in general. you end up with large swathes of crap code that's impossible to change. the tools don't help people understand code, only create it, and it works out long term as well as you'd expect.

it saves you from writing thousands of lines of code, but never from debugging it.

i remain unconvinced, but what do you expect from a guy who still doesn't use syntax highlighting. new thing bad.


You must log in to comment.

in reply to @tef's post:

my thoughts on the AI assists are that it's a great pair assist but I can't trust it, but like, in the same way I can't trust a recent college grad to know how to write appropriate code so I'm proofreading either way and saving myself RSI. especially when it starts completing numbered lists for me that I'd otherwise be writing out or writing wild vim motions for.

but for research? It struck me a few weeks ago that chatgpt is, in aggregate, at least as credible as stack overflow and blogposts from 5 years ago and I'm sifting through both anyway, but at least chatGPT has a like. through-line and "wait go back something's not right here"

But copilot does, especially when writing config files for zsh, show me a glimmer of a glorious future of distributed, asynchronous, collaborative-but-not-as-we-know-it code, where I'm glimpsing other people's comments and ways of approaching the code block I'm writing, the same codeblock they and thousands of others have already written.

and that's. big, I think.

IMO: if your code is repetitive you've got an ergonomics issue. if your code is repetitive on purpose because you're leaning on a subscription service (ocean-boiling or non-) and you just expect everyone else to Keep Up, consider that you might be acting on the incompetent/asshole spectrum and the whole exercise is bad. the repetitive code is still there and still sucks to read and sucks to modify and sucks to work with. you have at best deferred the problem and at worst tricked yourself into thinking it was repeating correctly to begin wtih