Interesting to think about how this will evolve. Over time, humans will have to do less of the work, and the combined system will be able to do more. (Though the selection pressure that you mention will continue to be there.)
It seems to me that we might not be too far away from “natural language programming”. With some combination of the the above approach, plus the program synthesis examples where you just specify a comment, plus some extra tricks, it seems like you could end up just sort of specifying your programs via an algorithm description in English.
You’d want to set it up so that it alerted you when it thought things were ambiguous, and that it auto-generated test cases for different possible interpretations and showed you the results.
I’ve personally started using TabNine in the last few weeks, and I’d say it’s just barely over the edge of being useful. But I can imagine next-gen versions of these things pretty radically transforming the process of programming.
With some combination of the the above approach, plus the program synthesis examples where you just specify a comment, plus some extra tricks
Another interesting direction to go with this—can you get it to do a sort of distillation step, where you first get amplified-GPT to implement some algorithm, a la the recursion dialogue above, and then you get it to generate code that implements the same algorithm?
Possible startup idea—design an IDE from the ground up to take advantage of GPT-like abilities.
I think just using the next-gen version of TabNine will be powerful, and I expect all major IDEs’ autocomplete features to improve a lot in the coming years, but I also suspect that if you designed an IDE to really take advantage of that these systems can do, you might end up designing something rather different from just today’s IDEs + better autocomplete.
Interesting to think about how this will evolve. Over time, humans will have to do less of the work, and the combined system will be able to do more. (Though the selection pressure that you mention will continue to be there.)
It seems to me that we might not be too far away from “natural language programming”. With some combination of the the above approach, plus the program synthesis examples where you just specify a comment, plus some extra tricks, it seems like you could end up just sort of specifying your programs via an algorithm description in English.
You’d want to set it up so that it alerted you when it thought things were ambiguous, and that it auto-generated test cases for different possible interpretations and showed you the results.
I’ve personally started using TabNine in the last few weeks, and I’d say it’s just barely over the edge of being useful. But I can imagine next-gen versions of these things pretty radically transforming the process of programming.
Another interesting direction to go with this—can you get it to do a sort of distillation step, where you first get amplified-GPT to implement some algorithm, a la the recursion dialogue above, and then you get it to generate code that implements the same algorithm?
Possible startup idea—design an IDE from the ground up to take advantage of GPT-like abilities.
I think just using the next-gen version of TabNine will be powerful, and I expect all major IDEs’ autocomplete features to improve a lot in the coming years, but I also suspect that if you designed an IDE to really take advantage of that these systems can do, you might end up designing something rather different from just today’s IDEs + better autocomplete.