ChatGPT launched on November 30th and in just three weeks it became the fastest-growing consumer application in history, I was surprised by how quickly it gained traction, for developers the implications go beyond the product itself

What sets ChatGPT apart is its ability to follow instructions and maintain context across a conversation, it's not just a better search engine or a chatbot, but a conversational interface to a large language model that can write, summarise, translate, explain, debug, or code

I was impressed by ChatGPT's coding capability, it can write, explain, and debug code with high quality for common patterns, however the failure modes are subtle and can produce code that looks correct but has logic errors that only surface in edge cases

For example, I used ChatGPT to generate a simple REST API using Flask, a Python web framework, and it produced 50 lines of code in seconds, the code was mostly correct, but it took me about 10 minutes to fix a subtle issue with the request handling, this experience taught me to always review the generated code carefully

Another example is when I used ChatGPT to generate test cases for a Java function, it produced 20 test cases in a few seconds, using JUnit, a popular testing framework, the test cases were comprehensive, but I had to modify them to fit the specific requirements of my project, this experience showed me the value of using ChatGPT as a starting point for test case generation

For code review and explanation, where a human verifies the output, ChatGPT's capability is immediately useful, but for unsupervised code generation, verification is essential to ensure the code is correct

Using tools like GitHub Code Review and GitLab Code Quality, I was able to integrate ChatGPT's code generation capability with my existing development workflow, this allowed me to use ChatGPT to generate code and then have it reviewed by my team, the trade-off is that it adds an extra step to the development process, but it ensures the quality of the generated code

One use case that excited early users was asking ChatGPT questions instead of searching, for questions with well-defined answers that do not require real-time information, ChatGPT often produces a more direct answer than a search results page

However, the limitation is the training cutoff and the lack of citations for verification, the user experience is so dramatically better for many queries that the information quality limitation was overlooked, which produced the backlash about hallucinations

Developers who used ChatGPT in December 2022 changed how they approached coding tasks, writing boilerplate, looking up API signatures, debugging syntax errors, generating test cases, all of these became conversational tasks

The IDE-centric workflow that had been stable for 30 years started to change at the edges, for example, I started using Visual Studio Code with the ChatGPT plugin to get code completion suggestions and code generation capabilities, this changed how I interact with my IDE and made me more productive

I also noticed that ChatGPT's code generation capability is not limited to a specific programming language, I was able to use it to generate code in Python, Java, and JavaScript, using frameworks like React and Angular, this flexibility makes ChatGPT a valuable tool for developers who work with multiple languages and frameworks

The IDE-centric workflow that had been stable for 30 years started to change at the edges, ChatGPT's impact on the developer experience is significant and will be interesting to see how it evolves in the future