{"id":609,"date":"2025-01-06T22:24:35","date_gmt":"2025-01-07T06:24:35","guid":{"rendered":"https:\/\/icanthascheezburger.com\/wordpress\/?p=609"},"modified":"2025-01-08T23:49:24","modified_gmt":"2025-01-09T07:49:24","slug":"ais-threat-to-software-developers","status":"publish","type":"post","link":"https:\/\/icanthascheezburger.com\/wordpress\/2025\/01\/ais-threat-to-software-developers\/","title":{"rendered":"AI&#8217;s Threat To Software Developers"},"content":{"rendered":"<p>Disclosure: The company I work for is very heavily invested in generative AI, specifically developer tools. As a result, I have financially benefited from recent AI popularity and I\u2019ve had involvement with building software products that incorporate modern generative AI. These are my opinions, but my closeness to AI has surely influenced these opinions.<\/p>\n<p>I&#8217;ve been seeing a lot of dread and fear from my peers about generative AI and the worries that it&#8217;s a threat to our industry and our livelihoods.<\/p>\n<p>If this is a thing that keeps you up at night, let me give you a few salient points that might help put your mind at ease:<\/p>\n<ul>\n<li>Have you ever actually tried leaning on generative AI to do anything nontrivial for programming? It largely can\u2019t, and it certainly isn\u2019t going to help you with big refactorings on large codebases because the context window would need to be way too large.<\/li>\n<li>Have you tried troubleshooting something complicated by relying only on the AI? AI can\u2019t troubleshoot because it can\u2019t interact with the system it\u2019s allegedly helping you write. It can\u2019t go too far past platitudes. They\u2019re somewhat personalized platitudes, sure, but writing software is a discipline where you get backed into super specific corners.<\/li>\n<li>Have you tried using an LLM-based tool with your large codebase to ask questions about the codebase itself? It gets hit and miss really fast.<\/li>\n<li>Have you tried asking an LLM to do anything remotely creative? It falls flat.<\/li>\n<li>Have you ever asked the LLM for a code sample on how to accomplish something, only to find that it generates code that references APIs that don\u2019t actually exist but sound plausible? That\u2019s not really a bug; it\u2019s core to how LLMs are designed; they don\u2019t have a notion of whether APIs exist.<\/li>\n<li>Have you tried leaning on AI tools to make your writing great? At best you get text with this milquetoast voice and sameness to it. It\u2019s forgettable and completely lacking in character.<\/li>\n<\/ul>\n<p>LLMs as we know them today aren\u2019t capable of logical reasoning (at best, we have future ones that pretend they can reason about things). They\u2019re incapable of interacting with the outside world as part of their operation. All they do is receive input and generate statistically plausible sounding output using that input plus their training data.<\/p>\n<p>And these deficiencies of LLMs aren\u2019t mere kinks that can be ironed out. Even if you added several orders of magnitude more tokens to prompts and could feed it your entire company\u2019s code and the code for all of your dependencies the LLM would still fall short because all that extra context still isn\u2019t helping the LLM understand what it\u2019s helping you write because <em>it doesn\u2019t understand anything in the first place<\/em>.<\/p>\n<p>To build an AI that can make software would require building a fundamentally different set of tools altogether.<\/p>\n<p>When ChatGPT came onto the scene a couple years ago it felt like it came out of left field, but ChatGPT is actually the result of decades of incremental research. It feels like it\u2019s evolved fast in the last 2 years but that\u2019s with billions being poured into improving it, and at the end of the day ChatGPT and its peers are all still fundamentally LLMs, and\u2013say it with me: all LLMs do is receive input and use that input with their training to generate statistically plausible output.<\/p>\n<p>Now, that\u2019s not useless! LLMs can be really handy while programming. They can be great at helping you start a project. You can ask them high-level questions to help you learn new things (assuming that you\u2019re asking about something it has a lot of training data for). They can often cut through the toil of certain tasks, like writing tests.<\/p>\n<p>But the moment you try to really lean hard on the LLM to help you with something (programming or not), you realize the LLM\u2019s \u201cknowledge\u201d is ultimately very shallow, and they get really hand-wavy as soon as you\u2019re asking about anything nontrivial.<\/p>\n<p>I understand why LLMs feel scary. They make for remarkable demos. We\u2019ve been conditioned for decades to think of computers as being really rigid and picky about how you communicate with them, and ChatGPT suddenly comes along and breaks that assumption with uncannily human-seeming responses. But the corollary of that is that we also assume the output of ChatGPT is highly reliable and consistent like a computer but it\u2019s not; it\u2019s giving output that\u2019s just as loosey-goosey as the input we get to give it. It looks plausible and in many cases it will give factually correct output, but it\u2019s never correct because it knew anything; the math just worked out in its favor.<\/p>\n<p>You can\u2019t do knowledge work without knowledge.<\/p>\n<p>I\u2019m not suggesting we be complacent. Complacent industries get disrupted all the time. But so much of the fear I see from engineers about generative AI is based on this assumption that it\u2019s capable of things it can\u2019t actually do. If you look past the hype and try to really understand what today\u2019s AI can can\u2019t can\u2019t do, you\u2019ll realize that AI\u2019s about as capable of stealing your engineering job as Alexa or Siri.<\/p>\n<p>A much bigger worry for me (and something that we saw happening in \u201922\u201323) is companies getting into a panic about their spending and deciding to lay off engineers, usually saying they\u2019re overstaffed. The companies probably aren\u2019t actually overstaffed, but when you fire people you see those cash savings on your balance sheet instantly, and you won\u2019t actually start seeing the effects of firing a chunk of your team until months or years down the road, and leadership doesn\u2019t really learn anything.<\/p>\n<p>Software engineers are one of the only roles who have enjoyed decent leverage negotiating compensation in the last 20 years, and companies resent them for that.<\/p>\n<p>Companies can lay off their engineers regardless of whether LLMs can help fill in the gap or not (and they do), but reality eventually catches up with you.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Disclosure: The company I work for is very heavily invested in generative AI, specifically developer tools. As a result, I have financially benefited from recent AI popularity and I\u2019ve had involvement with building software products that incorporate modern generative AI. These are my opinions, but my closeness to AI has surely influenced these opinions. I&#8217;ve [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[1],"tags":[],"class_list":["post-609","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/icanthascheezburger.com\/wordpress\/wp-json\/wp\/v2\/posts\/609","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/icanthascheezburger.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/icanthascheezburger.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/icanthascheezburger.com\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/icanthascheezburger.com\/wordpress\/wp-json\/wp\/v2\/comments?post=609"}],"version-history":[{"count":0,"href":"https:\/\/icanthascheezburger.com\/wordpress\/wp-json\/wp\/v2\/posts\/609\/revisions"}],"wp:attachment":[{"href":"https:\/\/icanthascheezburger.com\/wordpress\/wp-json\/wp\/v2\/media?parent=609"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/icanthascheezburger.com\/wordpress\/wp-json\/wp\/v2\/categories?post=609"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/icanthascheezburger.com\/wordpress\/wp-json\/wp\/v2\/tags?post=609"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}