Writing code is a way of expression for me. Whenever I am writing code, my thoughts convert into internal speech which then converts into code. But in the last few months, I have been transitioning to a new model of development leveraging AI tools.
I have been trying Github Copilot and ChatGPT for the last few months and since March I have had them integrated into my development environment. The results have been amazing and mindblowing. It's rare to witness a systemic change taking place in the world, and it's happening right before our eyes.
I primarily use IntelliJ for Java development and VS Code for UI/Node development. Github Copilot is integrated into both my IDEs. Github Copilot can understand my development patterns, coding style and autogenerates the code for me. It can help me write unit tests, functions, regex's with minimal effort.
For instance, I developed a new API for User management in Java in IntelliJ. Then I switched to VS Code and created a file called user-list.js. Copilot automatically understood what I was trying to achieve and started autogenerating the code.
While ChatGPT is not fully integrated into my IDEs, but it has been amazingly helpful in finding answers quickly. I have used it to review code for my open-source projects (warning: if you work in an enterprise/gov, do not copy-paste your source code into ChatGPT). It helped with refactoring complex code, writing unit tests etc. I must say that at times the generated code is not 100% correct, I still have to fix it, but a major chunk of my work is offloaded to AI.
Just to draw similarities with Airline industry, I now feel like a pilot sitting in the cockpit while autopilot system is flying the plane. A pilot is still required even when autopilot is engaged, but pilots need not do hard work all the time.
Well, what are the effects of incorporating AI into development flows?
Overall code quality improvement across the board because most code is generated and less error-prone.
Programmers need not be super skilled, even mediocre developers can
writegenerate better than average code and hence they need not be paid high wages.
Since incorporating AI into my dev cycle, my productivity has improved significantly and these AI tools just continue to amaze me every day.