Free software people: A major goal of free software is for individuals to be able to cause software to behave in the way they want it toLLMs: (enable that)Free software people: Oh no not like that
-
@mjg59 no amount of prompt clarity is going to get you a correct/"according to spec" outcome; LLMs are categorically incapable of that
@dngrs sure! Define smaller blocks, examine them, modify if the output isn't what you need
-
Clearly my most unpopular thread ever, so let me add a clarification: submitting LLM generated code you don't understand to an upstream project is absolute bullshit and you should never do that. Having an LLM turn an existing codebase into something that meets your local needs? Do it. The code may be awful, it may break stuff you don't care about, and that's what all my early patches to free software looked like. It's ok to solve your problem locally.
@mjg59 I completely agree, but I'd add a couple of things... if you understand the code, then LLMs are just providing acceleration to your efforts. Also, solving problems locally for yourself is great, but there's no reason why you shouldn't share the solution in case it helps someone else. Just be transparent about the possible quality concerns.
-
@promovicz Man in an ideal world sure, but in the world we live in people frequently write code for themselves and not others. How many projects have weird macros or unhelpful comments or quirky norms? To the extent that code is creative it frequently hinders understnding and reuse, not aids it.
@mjg59 But, why does that matter? Copyright protection does not depend on quality, usability or popularity. Bad art is protected. Even mainstream pop is protected, and whether its reuse is any good is kinda off-topic.
As a hacker I can also believe in a lot of "copyleft" ideas, but either of these concepts are there to protect a social (maybe legal) balance. You end up co-arguing a "might makes right" perspective, and risk devolving into fascism.
-
Free software people: A major goal of free software is for individuals to be able to cause software to behave in the way they want it to
LLMs: (enable that)
Free software people: Oh no not like that@mjg59 posting this on Mastodon.. looking for Friday night entertainment

-
@mjg59 But, why does that matter? Copyright protection does not depend on quality, usability or popularity. Bad art is protected. Even mainstream pop is protected, and whether its reuse is any good is kinda off-topic.
As a hacker I can also believe in a lot of "copyleft" ideas, but either of these concepts are there to protect a social (maybe legal) balance. You end up co-arguing a "might makes right" perspective, and risk devolving into fascism.
@promovicz I think a set of instructions to a machine should not be copyrightable and the rest flows from there.
-
@mjg59 it is absolutely wild to see self-described free software enthusiasts cheerfully be on the same side of copyright maximalism as Disney, RIAA and MPA
@mjg59 sorry, last one I promise
EDIT: since in this timeline we can't have nice things, I'm told the tug-of-war comic author is an absolute tosser, so dropped the meme. Originally it was the meme with foss devs using llms and microsoft on the "all software must be free" side, and free software activists and disney/riaa/mpa on the "copyright maximalism" side
-
@mjg59 sorry, last one I promise
EDIT: since in this timeline we can't have nice things, I'm told the tug-of-war comic author is an absolute tosser, so dropped the meme. Originally it was the meme with foss devs using llms and microsoft on the "all software must be free" side, and free software activists and disney/riaa/mpa on the "copyright maximalism" side
@bluca I do see your point and also please do not post Stonetoss at me
-
@barnoid Huh interesting, that's really not my experience of writing code - I sit down with a formed idea of what needs to happen and then I smash keys until it's there. And now I'm curious whether there's a real disconnect between with different models of coding.
@mjg59 @barnoid Yeah I think many of us need the back and forth with the compiler to fully flesh out an idea - it's certainly something that I've heard other people say as well.
And not just coding. Even emails or just plain old speech. Explaining an idea to someone else often results in me realising it wasn't fully formed after all, and the process of communicating it to someone else forces me to make it better. -
@bluca I do see your point and also please do not post Stonetoss at me
@bluca (The original version of this is pretty anti-semitic and the author is a fucking nazi)
-
Personally I'm not going to literally copy code from a codebase under an incompatible license because that is what the law says, but have I read proprietary code and learned the underlying creative aspect and then written new code that embodies it? Yes! Anyone claiming otherwise is lying!
@mjg59 I have also had the retained knowledge concept explained to me by a lawyer back in the days when I used to work with proprietary code bases
I wonder how quickly the various test cases will work their way through the courts before the LLM situation is clearer. They are doing the same things as us humans but are able to do it with much better recall. -
Personally I'm not going to literally copy code from a codebase under an incompatible license because that is what the law says, but have I read proprietary code and learned the underlying creative aspect and then written new code that embodies it? Yes! Anyone claiming otherwise is lying!
@mjg59 hey, I'm all for laundering IP, I just need to make sure it launders propiretary IP as well as open-source!
Faceless corps: NO NOT LIKE THAT!!
-
Clearly my most unpopular thread ever, so let me add a clarification: submitting LLM generated code you don't understand to an upstream project is absolute bullshit and you should never do that. Having an LLM turn an existing codebase into something that meets your local needs? Do it. The code may be awful, it may break stuff you don't care about, and that's what all my early patches to free software looked like. It's ok to solve your problem locally.
@mjg59 strictly local needs, you do you.
If using a giant model like Claude, you might want to consider what remodelling that code will cost the planet in terms of direct carbon output, electricity generation, water pollution, amortised environmental cost of building the Pollution Centres and the ongoing damage to local communities of the Pollution Centres.
If you can live with all that? Sure, use your magic auto complete. Just don't expect others to not judge you for it. Not saying I would, btw, but that's the argument .
-
Clearly my most unpopular thread ever, so let me add a clarification: submitting LLM generated code you don't understand to an upstream project is absolute bullshit and you should never do that. Having an LLM turn an existing codebase into something that meets your local needs? Do it. The code may be awful, it may break stuff you don't care about, and that's what all my early patches to free software looked like. It's ok to solve your problem locally.
@mjg59 I think the negativity comes from the fact that a lot of floss developers have other reasons why they work on projects besides scratching their own itch - "meeting the local needs" as you put it.
That is expanding their knowledge and, sometimes even the enjoyment of the programming act itself.
So if you treat open source development as a learning experience and an artistic expression, you're automatically going to balk at something that would take that away. -
Clearly my most unpopular thread ever, so let me add a clarification: submitting LLM generated code you don't understand to an upstream project is absolute bullshit and you should never do that. Having an LLM turn an existing codebase into something that meets your local needs? Do it. The code may be awful, it may break stuff you don't care about, and that's what all my early patches to free software looked like. It's ok to solve your problem locally.
@mjg59 i think the submitting it back is the part people are angry about not that it is possible
-
Free software people: A major goal of free software is for individuals to be able to cause software to behave in the way they want it to
LLMs: (enable that)
Free software people: Oh no not like that@mjg59@nondeterministic.computer my problem with this argument is that LLMs aren't good at modifying the software, nor are they good at creating software that's easily modifiable.
Also, I'd note that it's less free software people, and people who are interested in quality software, and it's that interest that has driven them to free software, because most free software is too high of quality for most companies to make/buy from an economical standpoint. -
Clearly my most unpopular thread ever, so let me add a clarification: submitting LLM generated code you don't understand to an upstream project is absolute bullshit and you should never do that. Having an LLM turn an existing codebase into something that meets your local needs? Do it. The code may be awful, it may break stuff you don't care about, and that's what all my early patches to free software looked like. It's ok to solve your problem locally.
@mjg59 The LLM-hate reminds me of the backlash against computers themselves. People insisted they were 100% worthless because someone got a bill for $0, and then a notice they were in arrears when it was not paid. Many projects either failed outright or people had to do their work twice, first the old pen and paper way which worked, and then also put it into the computer never to be seen again...
-
Free software people: A major goal of free software is for individuals to be able to cause software to behave in the way they want it to
LLMs: (enable that)
Free software people: Oh no not like thatI’ve heard this argument before and I disagree with it. My goal for Free Software is to enable users, but that requires users have agency. Users being able to modify code to do what they want? Great! Users being given a black box that will modify their code in a way that might do what they want but will fail in unpredictable ways, without giving them any mechanism to build a mental model of those failure modes? Terrible!
I am not a carpenter but I have an electric screwdriver. It’s great. It lets me turn screws with much less effort than a manual one. There are a bunch of places where it doesn’t work, but that’s fine, I can understand those and use the harder-to-use tool in places where it won’t work. I can build a mental model of when not to use it and why it doesn’t work and how it will fail. I love building the software equivalent of this, things that let end users change code in ways I didn’t anticipate.
But LLM coding is not like this. It’s like a nail gun that has a 1% chance of firing backwards. 99% of the time, it’s much easier than using a hammer. 1% of the time you lose an eye. And you have no way of knowing which it will be. The same prompt, given to the same model, two days in a row, may give you a program that does what you want one time and a program that looks like it does what you want but silently corrupts your data the next time.
That’s not empowering users, that’s removing agency from users. Tools that empower users are ones that make it easy for users to build a (nicely abstracted, ignoring details that are irrelevant to them) mental model of how the system works and therefor the ability to change it in precise ways. Tools that remove agency from users take their ability to reason about how systems work and how to effect precise change.
I have zero interest in enabling tools that remove agency from users.
-
@jenesuispasgoth @mjg59 This is not AI endorsement, but given a sufficiently large problem / codebase, I would wager you wouldn't get a reliably identical result from having a human write code for the same problem twice either.
We expect determinism from LLMs because "its computers", not because its necessary for good results. -
@mjg59 strictly local needs, you do you.
If using a giant model like Claude, you might want to consider what remodelling that code will cost the planet in terms of direct carbon output, electricity generation, water pollution, amortised environmental cost of building the Pollution Centres and the ongoing damage to local communities of the Pollution Centres.
If you can live with all that? Sure, use your magic auto complete. Just don't expect others to not judge you for it. Not saying I would, btw, but that's the argument .
-
Look, coders, we are not writers. There's no way to turn "increment this variable" into life changing prose. The creativity exists outside the code. It always has done and it always will do. Let it go.
They do speak of 'elegance' even 'beauty' when it comes to mathematical proofs.
Aesthetics are not a positivist axiology. Beauty is famously in the eye of the beholder.
Just because you are aware you write ugly code doesn't mean code cannot be beautiful, or that aesthetics are not a legitimate field of assessing information systems.