{"id":41,"date":"2026-02-27T14:45:09","date_gmt":"2026-02-27T14:45:09","guid":{"rendered":"https:\/\/coding-mischief.com\/?p=41"},"modified":"2026-02-27T14:45:09","modified_gmt":"2026-02-27T14:45:09","slug":"is-genai-making-code-generators-obsolete","status":"publish","type":"post","link":"https:\/\/coding-mischief.com\/?p=41","title":{"rendered":"Is GenAI Making Code Generators Obsolete?"},"content":{"rendered":"\n<p>For a long time, being a Java developer meant being a professional typist. We all know the drill: you create a simple data object, and suddenly you are staring at a 200-line file filled with getters, setters, equals, hashcode, and constructors. It is the Java Tax.<\/p>\n\n\n\n<p>To stay sane, we turned to magic tools. Lombok became the industry standard to hide the clutter. Before that, we had Orika, Dozer, or ModelMapper to handle the tedious job of copying data from one object to another, eventually leading many of us to MapStruct. They were lifesavers. But as we move into a world where Generative AI writes the code for us, I have started wondering: are these libraries becoming more of a burden than a benefit?<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Why we invited them to the party<\/h3>\n\n\n\n<p>Let us be fair\u2014we did not add these dependencies because we loved them. We added them because manual mapping is error-prone. If you have 50 fields in a User object and you forget to map zipCode to the DTO, that is a bug. Tools like MapStruct or the older Orika solved that. Lombok solved the wall of text problem. They gave us a way to keep our source code clean, our fingers from cramping up and working memory free of a gazillion IntelliJ shortcuts.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The hidden cost of Magic<\/h3>\n\n\n\n<p>But these tools are not free. I am not talking about money, but about the architectural cost.<\/p>\n\n\n\n<p>Every time you add a library, you are adding a learning curve. A junior dev cannot just read the Java code. They have to understand how a specific annotation processor or reflection-based mapper works. Then there is the security side. Every external dependency is another door left open for a potential vulnerability. We all remember how the entire industry spent some sleepless nights when the Log4j disaster hit back in late 2021. It was a wake-up call that even the most trusted, invisible utilities can become a massive liability overnight.<\/p>\n\n\n\n<p>The biggest headache, though, is long-term maintenance. We have all been stuck on an old version of the JDK because a core generative library was not updated to support the new Java module system or bytecode changes. When a library like Orika falls out of favor and stops being maintained, it becomes an anchor that prevents your entire stack from migrating forward. You end up trapped by the very tool that was supposed to save you time, investing weeks of migrations into a future sunk-cost.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Enter GenAI &#8211; The middleman we did not know we needed<\/h3>\n\n\n\n<p>Here is where it gets interesting. If I can ask an AI to write a standard Java mapper between these two classes, it happens in two seconds. No library needed. No annotation processor. Just plain, boring, readable Java.<\/p>\n\n\n\n<p>If the AI is doing the heavy lifting, why do we need the magic anymore? Plain Java is universal. It does not break when you upgrade your IDE. It does not have security vulnerabilities in its metadata. It just works. By using AI to generate the ugly code, we get the transparency of Plain Old Java without the manual labor.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The one reason to keep Lombok around<\/h3>\n\n\n\n<p>However, there is a catch. Even if an AI writes all my getters and setters, I still have to look at them. This is where Lombok might actually survive.<\/p>\n\n\n\n<p>Lombok\u2019s real superpower is not that it writes the code. It is that it hides the code. A class with five fields and a @Data annotation is much easier for a human to scan than a class with 100 lines of boilerplate. In a world of AI-generated code, the signal-to-noise ratio becomes the most important thing. We need to see the logic, not the plumbing.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">So, where do we go from here?<\/h3>\n\n\n\n<p>Are we reaching a point where we should stop reaching for MapStruct or ModelMapper by default? If an AI can generate a standard, searchable, and debuggable Java class for us, is the risk of a third-party dependency still worth it?<\/p>\n\n\n\n<p>I am starting to think that Plain Old Java might be making a comeback, powered by AI. We might finally get the best of both worlds: the safety of standard code and the speed of automation.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>For a long time, being a Java developer meant being a professional typist. We all know the drill: you create a simple data object, and suddenly you are staring at a 200-line file filled with getters, setters, equals, hashcode, and constructors. It is the Java Tax. To stay sane, we turned to magic tools. Lombok [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[7,3,6],"class_list":["post-41","post","type-post","status-publish","format-standard","hentry","category-idea","tag-genai","tag-java","tag-lombok"],"_links":{"self":[{"href":"https:\/\/coding-mischief.com\/index.php?rest_route=\/wp\/v2\/posts\/41","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/coding-mischief.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/coding-mischief.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/coding-mischief.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/coding-mischief.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=41"}],"version-history":[{"count":1,"href":"https:\/\/coding-mischief.com\/index.php?rest_route=\/wp\/v2\/posts\/41\/revisions"}],"predecessor-version":[{"id":42,"href":"https:\/\/coding-mischief.com\/index.php?rest_route=\/wp\/v2\/posts\/41\/revisions\/42"}],"wp:attachment":[{"href":"https:\/\/coding-mischief.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=41"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/coding-mischief.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=41"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/coding-mischief.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=41"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}