And seems to be praising GPT/Copilot as being amazing, the future, etc? Though with so many deleted comments i'm still quite confused.
Regardless the author and I disagree strongly about the actual usefulness of Copilot. I do think ML could be a huge boon for many human applications, like coding, but it's far far from it. Furthermore Copilot's specific implementation seems to leave much to be desired[1].
To me ML is an infant right now and we're metaphorically and literally expecting that infant to drive a car. ML is in a weird, weird place.
If he is wrong and such tools are of small import then it isn't highly important that Emacs has such functionality. If he is correct and such functionality is essential then all of existing Emacs becomes merely a freemium teaser for Emacs 2021 Professional Edition with AI where they will provide only a fraction of the total value but collect most of the money from the ecosystem.
Worse its not even a license forever, nor even for a period of time. It's priced by the word.
Copilot was not the first GPT-3 editor out there. Now that the editor thinks for us, free software is more important now than ever before. A transparent pipeline from thought to paper.
I agree, the thought of hoards of developers sending their code to Microsoft (or AWS via CodeGuru) to train their proprietary semantic model is disturbing, because of the potential
network effects. They suck right now and have a lot of problems, and I hope they either stay that way, or that something open like this supersedes them.
Is there a tool where I can type garbage and it walks linearly through a git history of creating a new project, compiling, cloning, committing, etc. until my new copy is a replica of the original?
E.g., I set it to vue.js codebase. Then for each key I press it will:
1. create a new file if we're at the beginning
2. for each key pressed, output a character for that file
3. once the file has been "typed", close that one and open the next file and repeat.
4. once the whole enchilada has been "typed", then each key press will spell out "git commit..." on the command line then enter
5. once committed, each key pressed will spell out "git push..." then enter
6. etc. until I've typed the whole history of vue.js!
Maybe a "turbo mode" so I can set N characters for each character I type...
You know, there could be a kind of "bloat battle" game from this.
* player one tries to keep smashing the keyboard to "write" code and "commit" new features until the program can read email
* player two smashes keys to add low-effort issues to the tracker, post FUD to the mailing list to slow down the process, and add subtly wrong features for review on merge requests
Like hungry hippos except it translates directly to real world experience
Had a co-worker once whose commits in Perforce (where it's called "Submit") made us joke that he had probably bound Ctrl-S to "Submit". Apparently it wasn't as unlikely as we thought .
Interesting to see someone doing this, it often comes up that we should actually have more levels of version control granularity than merges and commits. Just need an application of AI to generate good commit messages here :)
It's something but it's ephemeral and not shareable. You can't reconstruct how a piece of code got written weeks later, to eg recover some debug helpers you deleted without committing because you thought you were done with debugging it.
But thanks for the tip about Emacs undo tree, didn't know about that. With some add-ons you can apparently eg find undoable changes for only some region of a buffer, etc.
I actually disagree with this because I think you should try to have the project even vaguely work at each commit, so "git bisect" will work. But maybe each commit could be a log of keystrokes instead of a text diff.
It's not a "Copilot for Emacs" though?
It's a layer on top of language models APIs made for Emacs.
So, if you use GPT-3, it will not be finetuned further on code like Copilot, only pretrained on data that did contain some code, and also the GPL portion only concerns that API-calling layer, not what the model was trained on, or what it can output (which is what the GPL related mess about Copilot is about).