Packt: Lately, AI has become a hot topic, especially in the field of web development, and we are seeing tools like GitHub Copilot, OpenAI GPT, and Claude being used everywhere. We’d like to understand how you see AI and large language models impacting developers' workflow? What sort of shift in software development are we seeing right now with the emergence of AI?
Miško Hevery: Yeah, I absolutely love LLMs. I think they're making my life so much easier. Whenever you have a question, like how do you do something, et cetera, it is so much easier to just type it into an LLM than to search Google.
The thing that I'm kind of worried about is LLMs can really answer these questions because they've scraped the internet. Are people still going to write these articles about how you do things if everybody just starts looking to LLMs? Who's going to then train the LLM? It's kind of a tricky situation where if everybody would stop writing on Stack Overflow and all of the blog posts that they have done, then LLMs will not be useful.
So any such idea that people have about all the engineers disappearing and nobody having to write any code, it might eventually happen, but we're just nowhere close. And I think people underestimate the 80-20 rule, which is that it is really easy to get 80% of something working but it’s really difficult to get the last 1%.
The other thing I kind of noticed is there's a lot of proliferation of these tools like Cursor AI, where they just generate code for you in large quantities. I'm kind of worried about that because at the end of the day, the hard part isn't writing the code. The hard part is maintaining the code, and if anything, I kind of joke that the LLMs now get to do the fun part. What I mean by that is when you hire an intern for example, you give them fun projects to do because you were like, hey, you know, do this fun thing. And then when the intern leaves, you get stuck maintaining like the sub-optimal code somebody with less experience has put together. And I feel like we're in the same situation with LLMs. The LLMs get the fun job of generating the code. And then I get the horrible job of maintaining the code that the LLMs generate. And I'm not sure I'm liking this situation that much because we're just not there yet with LLMs being able to take over existing code bases.
Now, LLMs are good at helping you understand existing codebase. Like if you come into a new project that you don't know anything about, LLMs are a godsend to kind of help you try to figure out where different parts of the code is, what's hooked up to whatever, et cetera. So I see LLMs right now as a multiplier of what I do, helping me get my job done in the fastest way. Definitely, I'm so much more productive with LMS around.