Public code repositories like Github are currently being beset by a flood of LLM-generated contributions. It’s becoming a bit of a problem and is one of the facets of the Great Flood the web is currently experiencing.
What does it look like when we are able to use LLMs to handle the flood of contributions? What happens when we’re able to screen and adopt PRs effectively with little to no human intervention?
I use the Voice audiobook app to listen to my DRM-free books. In this app, there’s a configuration setting for auto-rewind. If you pause the book, when you resume, it will rewind by X seconds. I didn’t like that feature, I wanted the amount of seconds to rewind to be based on how long it has been since I’ve paused. So if I resume within a minute, no rewind; within 5 minutes, 10 second rewind; more than that would be 30 seconds.
I can do this because I’m part of a small percentage of people who can clone a repo for an Android app, modify it, rebuild it and push it to my phone. But I don’t want this power to be constrained to a priesthood who know the secret language of coding. I want everyone to be able to do stuff like that.
Imagine a world in which, as I use a specific piece of software, I can request modifications to its behaviour to an LLM-augmented system. That system will pull the open source code, make the necessary modifications (following the project’s contribution guidelines), build it and reload it on my device. Then I can use it and test it, and fix any problems that come along. That modification can then be uploaded to my own repo and made publicly available for anyone else who wants it, or it could even be pushed as a PR to the original system who could scan it for usefulness, alignment, UX, etc., modify it if needed, and then merge it to the main branch.
This wonderful world of personal and communal computing would be unimaginable in a closed source world. No closed source system will accept an external AI to come in and read/modify it at will. This is why open source is more important than ever.
We need to build a Software Commons so that we can give everyone the ability to adapt their digital lives to their liking. So that these intimate, private devices to which we entrust most of our attention, these things which have great effects on our cognitive and emotional functions, remain ours in a real sense. And the way that we do this is to create the tools and processes to allow anyone to make modifications to their software by simply expressing that intent.
And what does communal software development look like? Let’s explore the space of social consensus mechanisms so we can find those that drive the creation of software which promote culture, connection, compassion and empathy.
I want to see the promise of community made by the 90’s web survive the FAANG+ Megacorp Baronies and flourish into a great digital metropolis. The web can still get free to be weird, we just have to make it happen together.
This was written by someone who never dealt with user requests. Typical user not only doesn't know how to define requirements in a clear way, they also don't understand limitations of the technology, side effects their changes can cause or different aspects of usability, compatibility and accessibility.
Those are the abilities that limit who can contribute to projects, not coding skills.
So for example you want an adaptive rewind time. Is it on by default? Where is in the settings? How does it interact with current auto-rewind feature (can you enable both at the same time?)? How do you name it so that typical user knows what it does? It's not that those are difficult questions to answer. It's that you need think about all that before you start changing code other people will use. Typical users don't have the knowledge or experience required to do it. And it gets way more complicated with bigger changes.
I have 20+ years of software development experience having to deal with user requests, so I am for sure sensitive to that fact! I don't think that current LLMs can do anything but the most superficial change to code. But that doesn't mean it always will, in 5-10 years, with realtime inference (e.g. 100x generations for the same prompt allowing for much better error correction) and video support, you could have a long session (say, 1 or 2 hours) of asking questions, reviewing mockups, tweaking the requirements, etc.) in order to understand the ask, and then the user will spend some time using it and testing it.