Well maybe I’m begging for some pain by posting this, but I’ll provide an opposing view. I also apologize in advance for the novella. If you want TLDR and answers to the questions, skip towards the bottom and before the quote.
Let’s start off on some background. I wasn’t too keen on AI myself maybe a year or so ago and seldom used it. Then I figured I’d give it a go and started using it for finding hex colors, more generalized non-coding related questions, etc. Along the way, someone here mentioned that ChatGPT does a decent job with Xojo. Around this time they rolled out the Mac client so that you can get to it via a hotkey so I figured I’d give it a shot for code and I’m glad I did.
Speaking specifically about ChatGPT as that’s what I’m using, it’s pretty decent and sometimes excellent for Xojo code. The way I’ve explained it to folks, is that it’s similar to having an intern. You can often given them a task and they’ll get 80% of the way there. Their solution won’t be perfect, but they’ll have enough of a foundation to build upon that they just saved you a ton of time even if you need to wrap up the final 20%. ChatGPT for coding is exactly the same. More often than not, the code and solutions it provides are directionally correct, but it’ll need some work to bring it over the line. Anything super complex or that requires deep debugging, will absolutely require human intervention. In its current state, it can be immensely powerful for those who know what they’re doing. But if you’re a first time coder and know nothing about code, the correct way to do something, etc. then woe is you as AI will often lead you off into the weeds and you won’t even know it!
Here’s two real-world examples. I was having a bug in my network protocol stack where some index or count was clearly off. After spending an hour or more with ChatGPT, I kept running in circles. But this was more of an exercise to see if it could figure things out and what its functional boundaries might be. After closing the conversation and diving into the code myself, I figured things out within 5 maybe 10 minutes.
And then there’s the contrary situation. In my current app, I wasn’t storing the bounds for my various app windows and hence they were always being presented in the same spot within the display. I’ve done code to grab and store these bounds in preferences a zillion times myself in prior apps in Xojo, Real Studio, REALbasic, Objective-C and Swift. Maybe a 15 minute job that’s not hard at all. In under a few seconds, ChatGPT was able to create Xojo methods to store and retrieve window bounds to my app’s preferences. As a result I saved at least 10 minutes of time if not 14.
Just like everyone else here, I too have pondered the social and career implications of AI. I can absolutely see other’s viewpoints here and in many regards I agree. But alas I’m old enough to have lived through various inflection points within computing to have some inklings for where things go, but also have enough runway I still need to traverse before retirement to also make the implications meaningful to my own career and longevity. I remember when there was a move from centralized (mainframe, mini, etc.) to decentralized (PCs), limited networking (dialup, maybe some LocalTalk, etc.) to the Internet and of course now from non-AI to AI. I’ve seen all of this played out several times in my lifetime and there’s always folks that for various reasons don’t or won’t adopt the new technologies that are part of the here and now. In almost all cases, the new technology wins and the humans holding out lose. So although at first blush I wasn’t going to adopt AI and also saw it as a threat, the cat is out of the bag and our world will forever be changed. I can personally choose to adopt it, similar to say switching to Photoshop and digital photo processes or stay in the world of film, darkrooms, chemical processes, etc. It’s not that the old ways aren’t useful or we’ll never return to them (e.g. current retro or nostalgia trends), but to be a technologist one must continue moving forward regardless of how one feels about the new direction.
The other aspect that ChatGPT is awesome at, that has been touched on in this thread, is anything to do with marketing, customer related text/copy, etc. I’ll very often create a first draft of an ad, webpage, etc. and then have ChatGPT clean it up and be my copy editor. In this scenario, as I’m not a full-time marketer but instead a technologist, I’m the 80% and ChatGPT polishes things to get me to a much better 100%. Of course it’s not perfect and some tweaks might be needed, but I can’t tell you how many tens if not hundreds of hours of time it saves in just this one area.
Then there’s the argument for copyright and whether or not it’s ripping folks off. We’ll see how this plays out long term in society as well as in the courts. But the way I see it, it’s no different than an ambitious human. None of us create something in a vacuum and instead stand on the shoulders of those that have come before us. We all learn, tweak and expand upon the body of work that humans have created up to this moment in time. I’m not advocating plagiarism or ripping folks off, but just look at Stack Overflow, this forum or anywhere else where folks are sharing code, tips, tricks and methods to get something done. Anyone out there can read this data and directly use these solutions or build upon it themselves. ChatGPT and other AI platforms simply do this in volume and at scale. Frankly the path was already laid down by the search engines that came before it. If we as a society really wanted something different, then crawling everyone’s webpages should have been opt-in rather than the current model of opt-out.
Now do I believe AI is a panacea and will solve the world’s problems? Time will tell. Do I personally think the whole industry is hyped, yes absolutely and similarly to any new technology that has come before it. Here’s a great article from Baldur Bjarnason that speaks to the high level of how AI works, it’s limitations and why using it for programming can be a bad idea. So needless to say, I’m not a 100% AI advocate and am still skeptical, but in my own real-world use cases, I’m seeing great value.
So yes, I agree with many of you, but as a solo indie developer, who’s competing in the market with others who are likely already actively using AI, I’ve chosen to use it to level the playing field, save myself time/money and for it to act as a $20 a month intern. On so many things it’s also become a better search engine than a real search engine and saves me the time and effort in clicking through a ton of search result links.
Here’s a great example from a few months ago:
“What are some other good 80’s movies similar to those from John Hughes and movies like Say Anything, Broadcast News and Stand By Me?”
Try it for yourself. I’m sure you’ll find some interesting movies you’ve maybe forgotten as well as some new ones you’ve never heard about nor seen.
To more directly answer your original questions @Scott_C
- Yes, please!
- Not that I’m aware of nor do I think it matters. AI is quickly infiltrating most if not all of the major IDEs so this separation between code by humans and code by AI will soon be very gray and a gradient.
- I don’t think that software consumers generally think about things in this way. Instead I think the resulting actions are more important factors such as getting new features out more quickly, fixing more bugs, etc. How you do this, whether AI or not, I don’t think matters in their eyes.
- Yes, see above.
- See above towards the end.
Per the microblog image, I think this depends. There’s definitely a market for some things to be hand crafted and directly attributed to a human. Think coffee, wine, food, etc. But for other thing such as cars, having robotic welders is mostly a win as this keeps mass produced car prices down otherwise we’d all be stuck with $150K Italian exotics that are mostly crafted by hand.
To Tim’s point on posting AI answers, I of course am guilty of this. But in the few cases when I’ve done it, it’s mostly to give another perspective as it seems there’s so many around here that don’t use AI nor can see its capabilities. Of course, I’ll refrain from doing so in the future, unless if we happen to get a new AI subforum.
As a final point to all of this, I just spent nearly an hour crafting my reply to this thread so why not compare to ChatGPT. Here is what it says to this entire thread including reference links and within a response time of about 5 seconds:
The discussion on the Xojo Programming Forum raises concerns about the integration of AI in software development, with participants expressing skepticism about AI-generated code and its current applicability to Xojo. However, it’s important to consider the significant advantages that AI brings to the software development process:
- Enhanced Productivity and Efficiency
AI-powered tools, such as GitHub Copilot, have been shown to increase developer productivity by automating repetitive coding tasks and providing intelligent code suggestions. A study analyzing GitHub Copilot’s impact found that users accepted nearly 30% of the suggested code, leading to notable productivity gains. These tools assist developers in focusing on more complex aspects of software design and problem-solving.
- Improved Code Quality
AI assists in identifying potential bugs and suggesting improvements during the coding process. By leveraging machine learning algorithms, AI can analyze code patterns and detect anomalies that might be overlooked by human developers, thereby enhancing code reliability and maintainability.
- Accelerated Learning and Skill Development
For less experienced developers, AI can serve as a valuable learning tool. By providing code examples and explanations, AI aids in understanding new programming languages and frameworks, thereby accelerating the learning curve and fostering skill development.
- Rapid Prototyping and Innovation
AI enables rapid prototyping by quickly generating code snippets and automating parts of the development process. This acceleration allows developers to experiment with new ideas and iterate on designs more efficiently, fostering innovation and reducing time-to-market for new applications.
- Addressing Talent Shortages
The demand for software developers often exceeds supply. AI tools can help bridge this gap by augmenting the capabilities of existing teams, allowing them to handle larger projects and more complex tasks without a proportional increase in personnel.
While the concerns about AI-generated code quality and the current limitations in specific programming environments like Xojo are valid, the broader perspective highlights that AI integration in software development offers substantial benefits. By embracing AI tools, developers can enhance productivity, improve code quality, and drive innovation, ultimately leading to more efficient and effective software development processes.