I have tried out a few AI coding projecs recently. I have chosen Replit AI because it integrates the programming environment with hosting for both my code and dependencies. Plus it supports almost any language from almost-extinct 1960s languages to modern frameworks. I have only written web apps so far but it can also create iOS apps and I will try that soon.
My goals were initially to create a few basic internal tools for managing data from web apps. What I thought would take a few days took 30 minutes. So I added more features. And more. In 3 hours I had something better than any off-shelf app I knew of for the reporting goal at hand. In a few more days I realized it’s not only useful for me but may be useful to share with others on an app store.
What is most interesting to me (and intellectually freeing) is interacting with the AI chatbox to resolve bugs. I do not need to be an expert in React hooks or TypeScript generics or Firebase authentication - it knows all those details or can easily look them up. It frees me to just design and think about the big picture.
Long ago when I started programming in the 1980s I could just pick up the TRS-80 or Apple 2 manual and understand the whole language and OS - the entire programming environment was documented.
That has evolved over time so that there are so many more dependenceies when writing an app. While that adds tremendous capability, it is really hard to maintain competency in all of those areas and very timeconsuming to look them up. So it became very hard to be a “hobbyist” programmer even if I had the background to “think” like a programmer.
This is truly gamechanging. AI coding is not to the point where non-programmers can write a complex app with a few prompts. There is a need to design the UI and data structures as always, adn there is a need to debug issues even with AI. But it is so much more managable with AI assisting with the details so I can focus on the big picture.
I do believe this is a monumental change in software design. But I don’t think developers will be out of a job anytime soon - AI will just raise the bar regarding what is possible and expected in software development.
Fully agreed. The guidance and advise of an experienced developer reviewing the results is crucial. Otherwise the AI might create bloated, inflexible solutions having a poor or no design at all. And then you’ll hit a wall quickly.
And one problem remains: If a new framework/language/whatever is published, someone must document it for the AI to “learn” how it works (or is supposed to work). Or perhaps AI just invents the new framework/language/whatever itself…?
Kind of doable these days. One of my current “fun” projects has 3 frameworks (plus one open-source framework) and one background daemon, uses 3 different languages (Objective-C, AppleScript, JavaScript), handles private, really poorly commented APIs and is approaching 50000 lines of code. All developed and documented by AI with my guidance, advise and reviews
No question there. It is abundantly clear to me that I would benefit from an experienced developer reviewing and refactoring my AI code. Developers are not going to be unemployed - they may just shift their craft to a higher level.
Call it a prototype or an MVP or whatever - in a few hours I can now create a real working app for a complex task. It probably would have taken me longer in the past just to create wireframes or a crude UI mockup of the project. And it’s commented too with a long README courtesy of AI. So much easier to hand that off to a developer to “refactor and check for bugs” than to sit down from scratch trying to explain my concept for a new app to a developer who knows much more than I do about coding but does not have the domain-specific knowledge to design a really useful app.
The framework needs to be documented to human developers - correct? AI reads the same documentation. It even looks up the Devonthink forum if you ask it to write a JXA script for Devonthink!
(And if you are concerns about accurate vs inaccurate sources of information - you can direct it to the best source.)
And I’m not trying to discard your experiences. I just do not believe that unburdening all the tedious work to an entity whose output must then be verified and fixed.
The point I’m trying to make is that it might become increasingly difficult to find skilled programmers that are able to check AI-generated code if more and more people start vibe coding. You’ve learned to write code, @cgrunenberg has, I have, and many others. But how do people nowadays learn it (or to speak a foreign language, for that matter) if they don’t perceive the need to do so because it’s so much easier to have AI “just do it”? How do they become experienced (!) programmers?
Not to mention the ever increasing energy consumption by all these AI farms.
Yes that is true - and it generalizes to many other areas of life.
Automation is amazing when I fly airplanes - but younger pilots who trained from Day 1 with such automation are at a loss when the automation fails. Thus is becomes a necessity, not a backup.
AI is quite useful in assessing a medical history - but often the most important thing a doctor can do is identify the exception that needs urgent treatment or distinctly different treatment, yet that is where AI fails big-time.