AI is in everybody’s mouth these days.
I admit I was sceptical at first. AI seemed to allow anybody, even those without any programming experience whatsoever, to create an entire software product. Programmers would become obsolete and simply replaced by anybody with a business idea.
To this day I still don’t see AI as the magic bullet that will overnight make businesses rich and developers unemployed and the reason is that the code that AI generates needs to be audited, maintained and extended over time.
Just as it makes no sense to create a fantastic car, when repairing and servicing cannot be done.
A developer still needs to audit AI-generated code to verify that it does what it says and has no undesired side effects or contains malicious codes. The developer approving AI-generated code becomes the owner of that code and carries the responsibility for correctness.
A developer also needs to maintain and extend the code, especially over time when features change, evolve or are extended, they may not be able to re-submit the code to the AI-generator. The developer needs to apply their skills to modify the code.
I also believe that no cloud-based AI should be a crucial part of a workflow. Relying heavily on a paid cloud-based AI interface is asking for trouble if the AI service is put of business, or has direct or indirect connectivity issues … as the recent cloud outages have shown.
My hard anti-AI stance has changed over the last few months when I was searching for solutions to solve coding issues and performance bottlenecks. After I had exhausted searches in Google, I gave ChatGPT a try and it solved my problems in very short times.
Things I have asked ChatGPT with very promising results:
- A visual bar using HTML/CSS with numeric steps to show within a web wizard.
- Algorithm in PHP to extend SimpleXLSX package to extract images from Excel files.
- Extract text from SVG including positions.
- Algorithm in C++ to extract location information from PNG images.
- Suggestions on best PHP package to split PDF files.
- Algorithm in C# to create MD5 hash from pixels only within a PNG image (without Exif information) for exact visual comparison.
- Alternative and more performant text extraction using iText with high degree of vector drawings.
- Increase performance of Ghostscript rasterization by allocating memory.
My summary is this: AI is definitely a very valuable tool to enhance existing code or create new code for small scopes. It can be creative, it can debug code, refactor code or make code more performant (alongside IntelliCode and CoPilot). What it produces must be audited and approved by a human developer. AI might also be very good at the moment as it is trained on only the latest data … unlike Google that archives data from 15, 20, 25 years ago. Time will tell.