Incomplete Thoughts on AI and Code
I love this AI-powered clock from Matt Webb, which creates and displays a new time-related poem every minute. The only viable applications of large-language models seem to be fun side projects. Whether it’s this clock or for playing games where you prompt DALL·E 2 to create the most outrageous image.
In a professional context, generative AI is no more than a productivity tool and must be carefully applied. The models offer false information, turn against users, or become depressed. No output can be taken as is; everything you want to use needs to be cross-checked and verified.
Some software developers successfully supply the right prompts to create working code. While this does work surprisingly well, you still need to review the code for correctness and edge cases and refactor to match personal code-style preferences. Maybe using the AI produces results quicker, or the added work takes the same time as writing the code yourself—who knows?
There’s a notion in software project management whereby the teams that change often produce less stable software. Suppose maintainers only spend short amounts of time on a project; they will only understand small fractions of the overall system and they can never grasp the full impact of the changes they make. Now imagine a project contain large amounts of snippets produced by an AI, duct-taped together into a software system. How can developers build a complete understanding of that system if only 30% were created by humans? Does a mesh of AI-generated code have the same effect on a system’s stability as a team where developers constantly rotate in and out?