Last week, I had the opportunity to attend a fireside chat in person with Satya Nadella, Microsoft's CEO and possibly the best technology CEO today. This is what it's like to be a founder backed by Coatue! As you can imagine, AI was a big topic, and among other insightful observations, Satya noted that GitHub Co-Pilot generates more revenue than GitHub overall. Which is pretty impressive.
The generation of code with AI feels like magic, and some people believe that AI will eventually replace the need for human software developers altogether. As a whole, I believe this is not going to happen, but regardless, we're only at the scaffolding stage of AI-powered development right now. While AI already makes it extremely easy to build prototypes from a single prompt, or to assist a real developer as a co-pilot, it generally doesn't produce code suitable for production.
Having been a Ruby developer since the beginning, this reminds me a lot of when Ruby on Rails was released as a Ruby gem. In a world where you had to write dozens of lines of code only to connect a database table to a class object, Rails allowed you to create a full stack CRUD experience with a simple scaffolding command.
There were many developers like me who were blown away by its simplicity. The ability to create a blog in 5 minutes inspired some of us to become web developers and entrepreneurs. This led to incredible companies such as Shopify, GitHub, Stripe, Instacart, Airbnb—and, of course, Commerce Layer!
These companies, however, never used Rails scaffolding in production. Because Rails was so easy to learn, many developers were able to build beautiful web applications in days rather than months. However, those who wanted to build apps that would scale couldn't skip the effort (and joy) of learning everything about Ruby.
To be precise, Rails is not Ruby, but a Ruby gem (a library in Ruby terminology). Although Ruby on Rails contributed significantly to the adoption of Ruby, the best Ruby on Rails developers were—and still are—skilled Ruby developers who use Rails as a framework and are in control of what happens behind the scenes.
To me, AI generated code is like a cross-language version of Rails scaffolding on a mass scale. Even non-developers can use it to generate good quality code, but shipping and maintaining a production-ready application is another story. Especially when "something went wrong", you need to know where to put your hands.
Craftsmanship in software is not dead. Not at all. Artificial intelligence requires more computer power, energy, and resources than ever. Adding more NVIDIA GPUs to your servers cannot be the only solution. There is a growing need for software optimization, and this can only be accomplished by understanding the primitives, how things work, and finding innovative solutions for a new generation of resource-hungry applications.
Satya said that a successful business always consists of a successful combination of systems and applications. This is why Microsoft is organized this way. My personal takeaway is: take advantage of AI as a system, but never stop being a developer, as the most successful applications and companies will continue to come from the brightest (human) minds.