Is AI Better Suited for Art or Engineering?
ChatGPT is super hot right now, and its two biggest uses are to generate art and to generate code.
Which astounds me, because while I enjoy the occasional AI portrait or landscape, I wouldn’t trust the code my interns wrote much less a black box AI system.
Can You Fail to do Art?
Take a trip down memory lane with me. A few years ago I was working on a ML-powered text summarization app, and one of the difficulties was getting the correct one-sentence summary.
Imagine I’m summarizing an article about the fighting in Ukraine. People interested in the politics would think the key information is in the statements made, the general public might be interested in the status of the fighting, whereas financial types might want to know what arms corporations are involved.
And they could all be right. To my understanding, language is an art, and art is subjective like that.
Coming back to AI art then, subjectivity means there’s always going to be a way to appreciate a piece coming out of Stable Diffusion. For every flaw generated in an AI painting, there’s some way to defend it as a deliberate choice, or even to claim it’s a quirky result of the technology, which is “cultural” in its own sense.
And even if you break all the rules, that just means you’ve made a new piece pushing the limits of what we mere humans can appreciate, and that in itself becomes an artistic statement.
You can’t lose with AI art, and given how easy it is and how it’s much higher quality than the layman’s artistic ability could produce, it seems only natural to expect more and more AI art going forwards.
To me, it seems to be a question of “when” rather than “if”.
Engineering Complex Systems
Last week my little brother asked me what the difference was between a programmer and a software engineer, and I told him it’s just a fancier term for the same thing. But there is truth in calling ourselves engineers, because the systems we build are complex, with a lot of logic and interdependent components, not dissimilar to great architectural constructions like bridges.
In that context, would you like to be the first to step on the AI bridge, gambling your life to see if the AI forgot to generate some bolts today?
The reality of current systems like ChatGPT is that they are huge black boxes, yet randomly unreliable, and unsuited to building scaling systems with complex logic and moving parts.
“But wait,” you cry. “I’ll write a suite of tests to check the results!”
Well if you only write a few unit tests or integration tests, you’re still vulnerable to edge cases and unexpected behaviour propagating through the system, which is the whole issue with the AI unreliability. So maybe on the 6th try it works properly, but on the 856242th server request maybe your database gets dumped.
So then assuming the strongest case where you write all the tests and handle the end-to-end and special cases, if you have all the logic and cases handled… Why didn’t you just write the code in the first place? It doesn’t really make sense.
All that is to say that ChatGPT and its code isn’t quite suitable for production - relying on ChatGPT-created apps at this point could be unpredictable and downright dangerous.
I know that there are people working to increase the transparency of these models already and increasingly better tools are being built to guide the AI, but we have a ways to go.
And to be clear, I think ChatGPT is far from useless in the hands of a skilled engineer.
The Practical Software Engineer’s Guide to ChatGPT
It’s simple. The best way to use ChatGPT is as a tool for learning.
It has extensive knowledge into every subject, so if you want to learn about concurrency or building a web app, it’ll tell you.
But of interest to software engineers in particular, ChatGPT’s repertoire also includes coding and library details, infinite patience, and the ability to express information in whatever form you need. That means if you need to ask about how to build a REST API in Haskell, with code snippets, as a person who’s never touched code before, you can provide it these details and it will relay to you the appropriate information. You can then follow-up and dive into details on how and why to do any of the steps it provides. Or if you want expert guidance on choosing between MongoDB or Postgres at 10,000,000 concurrent users and what the tradeoffs are, ChatGPT can provide that to you as well.
Think of ChatGPT as the best damn mentor you ever had.
And to be perfectly clear, a lot of what we do as software engineers is learn - that’s what makes a great engineer. Picking out the right libraries and right functions and knowing how they interact is key domain expertise. In fact I’d rather consult the domain expert on React Native hooks than some random 10x engineer with no React Native knowledge.
And ChatGPT provides to you all the domain expertise you could need, filling any gaps in your knowledge, on-demand.
For instance, instead of having to read Reddit documentation and work through its API, I asked ChatGPT what the easiest way to fetch some Reddit posts for NLP using Python (with which I’m most familiar), and it pointed me to praw
, a Python library to do just that, and even provided the code to do it. I was able to then follow-up to ask it how to get the Reddit API access strings I needed to use praw
! ChatGPT definitely saved me a couple of hours there.
Conclusion
These tools are revolutionary, no doubt about it, but it’ll take some people a while to admit it. The polish isn’t quite there yet to use them openly. For now, the gap of expertise on using AI tools means there is a niche for people who are skilled with AI to get an advantage over their peers. If you have an interest, I suggest you make the most of this era while you can.
Make art, because it’s fun, and you can’t go wrong.
Make code, learn something, but don’t rely on the AI to do all the work for you just yet.
Personally, I just realized I’m loving using Stable Diffusion artwork on my blog and I’m going to be doing more of it. And you know I’m already using ChatGPT to supplement my coding.
← Back to home