As AI enters the mainstream, we're seeing what might become a symbiotic relationship between software engineers and generative AI tools. AI, for example, can suggest code optimizations, identify bugs, and even predict the ripple effects of changes in a system.
Early this year, I did a lot of stunt coding with the AI, just to see what it could do. I also used it to help find a particularly confusing bug, to help identify code that needed to change to ensure compatibility with newer versions of platform software, to write short routines that helped my wife in her business, and to make a Chrome bookmarklet that helps me create "Also" links in my ZDNET articles. I wouldn't say that AI has become essential to my workload, but it's sure been a nice help.
Also: Okay, so ChatGPT just debugged my code. For real.
Without a doubt, the generative AI tools that have been all the rage this year were built by software engineers. AI can be part of the software engineering process. It can also be the result of software engineering.
Furthermore, AI can help developers do their jobs. If you think about aspects of software engineering -- design, coding, debugging, maintenance, management, testing, distribution, and migration (to name a few) -- AI can help in all of these areas. For instance, AI can automate repetitive coding tasks, making the process faster and more efficient. Additionally, it can predict potential bugs or vulnerabilities in the code, ensuring more robust and secure software.
There are, however, limits. I first used AI to write some simple routines. Then when I tried it with more complex routines, the AI started to chase its tail. But when I fed an AI a pile of code that had been breaking (where I couldn't find what was wrong), the AI pointed out the error. AI can also help set up testing regimes. It can help folks in tech support answer questions when new agents don't have the experience to know the answers on their own.
Also: How ChatGPT can rewrite and improve your existing code
In its current state, AI can't be relied on to get it right when helping with software engineering. It can be compared to a particularly talented but equally flakey college student, who sometimes has insights of deep brilliance but doesn't yield the accurate answers needed.
Then there's what AI can do for the world. This is where we need communal cogitation on the concept.
Keep in mind that the incredible advancements and applications of AI listed below are built upon the foundations of software engineering. Without the principles and practices of software engineering, these AI-driven tools and services wouldn't be possible.
Here are ten things AI does for us in the real world right now:
- Personal assistants like Siri, Alexa, and Google Assistant help us with tasks and answer questions.
- Healthcare algorithms assist in diagnosing diseases and predicting patient outcomes.
- Financial analysis tools help in stock trading and fraud detection.
- Content recommendation algorithms suggest movies, music, and articles based on our preferences.
- Customer service chatbots handle customer queries and complaints.
- Manufacturing robots assist in assembly lines and quality control.
- Language translation services are powered by AI.
- AI is used heavily in major studio games to make those games interactive, intelligent, and compelling.
- Security systems use facial recognition and anomaly detection in cybersecurity.
- Marketing algorithms personalize ads and customer outreach.
And since we've had the rise of generative AI this year (which is changing so much more), naturally, here are ten things AI will be doing for us in the next decade:
- Advanced healthcare could include AI-assisted drug discovery and personalized medicine.
- Climate modeling to predict and mitigate the effects of climate change.
- Emotional intelligence in AI that can read and respond to human emotions.
- Advanced robotics that can perform complex tasks and assist in daily life.
- Virtual reality experiences powered by AI, offering fully immersive virtual worlds.
- Education systems providing personalized learning experiences tailored to individual needs.
- Space exploration assisted by AI in navigating and operating spacecraft.
- Legal assistance through AI in legal research and case preparation.
- Art and creativity enhanced by AI-generated art and music, or as a collaborative tool for artists.
- Public safety improvements through AI in disaster prediction and response.
And then there's self-driving cars. In fact, AI and machine learning are improving communications effectiveness in self-driving cars, and improving the performance of the cameras in our smartphones.
AI, like software, will be embedded in everything we use, hopefully adding value all along the way.