AI-assisted programming: A cynical view
-
Proposed for discussion: The net, “middle of the bell curve”, result of programming by AI will be the further influx of “programmers” who write even more awful code, but work cheap. First, it was offshoring and hiring cheap H1-B labor for programmers. Taking our discipline from the level of professionals down to assembly line technicians. Non-tech bean counters, MBAs (full disclosure-I earned my MBA), and CTOs looking for better bonuses bought into those sources of reducing the development phase cost of the Software Development Life Cycle (SDLC). Now our industry is “et up” with the results - low quality code that drives up the biggest part of the SDLC costs - support and extension. Not all cultures encourage applying excellence and deductive reasoning in their work, but encourage varying degrees of making more money at the cost of excellence and just following “best practices” and other recipe books. The concepts of value engineering and defensive programming are rather alien to the cheap programmers. If you, as a developer (full disclosure-I have 40+ years experience as a hands-on software developer/engineer/architect, and still going strong) have ever had to clean up (or throw away and start over) on outsourced/H1-B code, you know what I mean. (Full disclosure - I have worked with H1-B and offshore programmers for almost 30 years, and there are some, a minority of them to be sure, excellent ones that do not fit the description) Now, even less knowledge about the discipline is needed when AI-driven programming just spits it out with even less “thinking with an engineer’s mind” and attention to the full SDLC. Low cost programmers can now be replaced by even lower cost “widget assemblers”. If you think too many software projects go south now (to wit, over-budget, fail to meet deadlines, buggy, high support costs, etc.), wait until the AI-assisted widget assemblers invade, making those CTO bonuses and short term labor overhead reductions even bigger. You know, cut costs and nab the bonus, then leave for another company before the support cost hens come home to roost. I am not against AI/ML. I love using the AI/ML services in Azure, as well as Microsoft’s ML.NET library. Training an application to be useful and accurate takes a LOT of data, but once trained and including a self-learning routine based on how it processes real world data has very useful application. AI as it is being used in Visual Studio is sometimes useful in code completion, and sometimes just annoying. MS needs to improve
I have been using ChatGPT the last couple of weeks and find it quite amazing, as a tool for me. And I am sure that as time progresses I will find it ever more useful. It is an accelerator, not a replacement. One of the core issues with technological advancement is the speed with which software is developed. Moore's Law defines technological, hardware advancement in geometric or exponential terms, but software advancement has been largely arithmetic, linear. It is an expensive and time consuming process to create software. It also takes a good deal of time for a developer to get comfortable with different programming languages, and it takes time to comprehend all of the complexity. AI is going to help accelerate significantly the speed at which developers can produce useful code, and that is a good thing. AI code will get better, a lot better, and we will learn how to become better programmers as a result of that. AI is not some singular independent consciousness, it is a cross section of our collective recorded history on the internet. It is us, empowered. Grab on tight.
-
Yep. I'm betting using AI to help you program is going to make a new software engineer a less able architect/programmer. It's going to be like how the calculator (app these days) has destroyed younger peoples ability to do basic math. I've got a college professor friend I game with who teaches immunology. He made the decision that his students couldn't use their cell phones during labs. There was an uproar from the students and one of the issues was they couldn't use their calculator app on the phone. He then posed a simple problem to the students: What's 13 divided by 26. Not one of the students was able to answer the question without using their calculator app!
-
Proposed for discussion: The net, “middle of the bell curve”, result of programming by AI will be the further influx of “programmers” who write even more awful code, but work cheap. First, it was offshoring and hiring cheap H1-B labor for programmers. Taking our discipline from the level of professionals down to assembly line technicians. Non-tech bean counters, MBAs (full disclosure-I earned my MBA), and CTOs looking for better bonuses bought into those sources of reducing the development phase cost of the Software Development Life Cycle (SDLC). Now our industry is “et up” with the results - low quality code that drives up the biggest part of the SDLC costs - support and extension. Not all cultures encourage applying excellence and deductive reasoning in their work, but encourage varying degrees of making more money at the cost of excellence and just following “best practices” and other recipe books. The concepts of value engineering and defensive programming are rather alien to the cheap programmers. If you, as a developer (full disclosure-I have 40+ years experience as a hands-on software developer/engineer/architect, and still going strong) have ever had to clean up (or throw away and start over) on outsourced/H1-B code, you know what I mean. (Full disclosure - I have worked with H1-B and offshore programmers for almost 30 years, and there are some, a minority of them to be sure, excellent ones that do not fit the description) Now, even less knowledge about the discipline is needed when AI-driven programming just spits it out with even less “thinking with an engineer’s mind” and attention to the full SDLC. Low cost programmers can now be replaced by even lower cost “widget assemblers”. If you think too many software projects go south now (to wit, over-budget, fail to meet deadlines, buggy, high support costs, etc.), wait until the AI-assisted widget assemblers invade, making those CTO bonuses and short term labor overhead reductions even bigger. You know, cut costs and nab the bonus, then leave for another company before the support cost hens come home to roost. I am not against AI/ML. I love using the AI/ML services in Azure, as well as Microsoft’s ML.NET library. Training an application to be useful and accurate takes a LOT of data, but once trained and including a self-learning routine based on how it processes real world data has very useful application. AI as it is being used in Visual Studio is sometimes useful in code completion, and sometimes just annoying. MS needs to improve
I think it's an accurate view. Yet it does not HAVE to be that way. First, there was "vi" We got Notepad on Windows. Then Visual C++. Then we got Visual Studio with Intellisense (Visual C++ did not have that). Now we have code-writing AI. You can still program in Notepad today. Would you do it? Probably not. But programming using Intellisense is a dependency, too. You can do without, but it's slower. The quality will suffer only because it takes too much time, not really because of a different procedure. It might be the same way with AI. The only thing I hope is that no-one ever will think that AI can actually replace creativity in humans. And that's a key in programming. But how could AI as a rule-built and rule-depending thing (may the rules be ever so obscure), compared to actual creativity of live beings? Of course it cannot, but the danger is that people might think it's "the same". People who think so must think that humans are just machines like a computer. I possibly digress but it might also be very pertinent.