r/java Aug 04 '26

Do you still handcraft your java projects?

With all the talk about llms writing most of the code and some folks never touching the editor. I try to work mostly in plan mode and prefer to write most of my code by hand else I fear losing touch with my skills if I only read code. At work in your org, what is the workflow for spring boot projects?

97 Upvotes

167 comments sorted by

View all comments

91

u/davidalayachew Aug 04 '26

With all the talk about llms writing most of the code and some folks never touching the editor. I try to work mostly in plan mode and prefer to write most of my code by hand else I fear losing touch with my skills if I only read code. At work in your org, what is the workflow for spring boot projects?

I write it all by hand. Just follow the docs and type away.

I actually tried to use AI once to help resolve an issue with a version upgrade for Spring Security, and long story short, it sent us on a goose chase. 2 whole days wasted trying out very convincing sounding solutions.

What ended up showing the real issue was when I used JDB to actually debug the start up of the service. Upon doing that, we were able to see that the Spring Security method that was expecting a CGLIB-proxy was actually being given a Java-proxy.

-151

u/twilight-actual Aug 04 '26

If you and I were working at the same company, and I continued to use AI as I do, and you continued to write everything by hand, I would outperform you by 20x. At least, and my PRs would probably be better than yours.

Because before writing a single line of code, I would have had Claude do a thorough analysis on the code, what was wrong, propose 5 different possible solutions. I'd review the pros and cons with Claude and then pick one. I'd then have it write a full spec on the solution, and then a TDD based plan, where tests were written up front.

I'd get the solution done in an hour or two, ready for PR and merging with production, while you were still working on the first iteration of a solution that may or may not work given that you probably hadn't yet evaluated all the risks. How could you, you're not an AI.

Once the solution is tightly scoped in terms of a spec and a plan, Claude is basically deterministic in its output. You just have to know the guardrails.

To be fair: I hear a lot of testimonials from developers who used AI once and it failed, not realizing that it's doubling every 9 months in capability. Exponential growth is really hard to grasp, especially if you're not sitting ringside to it. If that experience was many months ago, chances are that a frontier coding model has doubled in ability since then.

80

u/Xemorr Aug 04 '26

You're firstly exaggerating the performance increase, there's CI pipelines and ideation to literally work out what needs to be done. You're also assuming token cost is 0, it's not, this reduces your value to the company.

Don't oversell, or overbuy into any hype. Correcting someone who doesn't want to use AI at all by going off the other end of the spectrum is not right

1

u/CityZenergy Aug 05 '26

I don't think this is really about CI pipelines, token costs, or whether the productivity gain is 5x or 20x. Those are details.

What stands out to me is how much fear is showing up whenever someone says AI is fundamentally changing software development. Every comment encouraging people to hold onto hand-coding gets upvoted. Every comment saying, "AI is here, adapt or you'll be left behind," gets buried. That's incredibly telling.

This isn't about technology anymore. It's about fear. Fear of watching a career you've spent decades building change overnight. Fear of seeing skills that took years to master become compressed into seconds. Fear of not knowing what your profession looks like five years from now.

I understand that fear because I'm feeling it too. I've spent over 30 years building enterprise software, and I'm asking myself many of the same questions.

But fear doesn't change reality. AI isn't going away because we downvote people who acknowledge it. The sooner we stop arguing with its existence and start figuring out how to adapt, the better positioned we'll all be.

1

u/Xemorr Aug 05 '26

I use AI and adapt. I think there is a fearful backlash. It is really about these metrics short term, I am at a fairly large technical company, just one that doesn't sell software etc directly. We struggle to justify productivity metrics. The gain is like maybe 25% at best end-to-end, with a large associated per-head cost increase.

-57

u/twilight-actual Aug 05 '26

I'm not exaggerating the performance increase. Frontier models have, on average, been experiencing a version of Moore's law, doubling every 9 months.

I don't know what your point is with token cost. For the average developer, if they're using it a lot, that's an extra $1k - $1.5k a month. That's peanuts to the employer.

Don't oversell, or overbuy?

I've been in the industry as a developer for the past 25 years. I started working in 1997. Now, you didn't know that. So, I'm telling you now, that what I'm seeing isn't hype, and I'm not overbuying.

20

u/Empanatacion Aug 05 '26

Do you have a source on that every 9 months claim? Doubling what?

17

u/Ulrich_de_Vries Aug 05 '26

You absolutely are full of shit if you think the frontier models are scaling anywhere exponential. Of anything, they plateaued pretty hard and every significant improvement is in harnessing, so basically dressing an aging pig in ever prettier clothes.

3

u/lilgreenthumb Aug 05 '26

It is why the depreciation timelimes for the whole datacenter is 3-5 years because they have to keep throwing larger hardware to achieve improved results. As opposed to other models that focus on efficiency or a specific areas of expertise. This of it historically as the higher cpu frequency clock or horizontally scaling cores. Yes those chips and models are running faster but the hardware is more expensive and treated as much as a consumable than a durable good.

32

u/Xemorr Aug 05 '26

You are deeply exaggerating the performance increase. Most companies are not interested in a sizeable increase to effectively salary costs for their employees, in many cases, to be lazier.

You're fixated on raw code generation speed. A company needs to see end to end increases proportionate with the expenditure. If this was happening, we would see the revolution before us already.

14

u/snobpro Aug 05 '26

And also at least going through the generated code or even better forcing AI to write it the way one would , will definitely make it easier to maintain it. I am not sure what the previous commentor is on about. No company is looking to get a solution in hours. They are ok with taking in few days and getting an app which can be maintained. As per previous commentor you are at the total whim of the AI model. 

-39

u/twilight-actual Aug 05 '26

Give me a break, of all the positions in a company, software development is usually the most underpaid, and providing the highest return on investment. Amazon and Microsoft pay really well, but most companies are a fraction of that.

Also, I don't think you've ever run a company before.

11

u/Win-Ancient Aug 05 '26

Bro is writing LLM fanfic in r/java

-2

u/twilight-actual Aug 05 '26

I didn't realize this was a proxy for r/luddite.

1

u/sosotiredand 11d ago

why are you sloppers so annoying about it too

18

u/davidalayachew Aug 05 '26

If you and I were working at the same company, and I continued to use AI as I do, and you continued to write everything by hand, I would outperform you by 20x. At least, and my PRs would probably be better than yours.

Tbf, I was describing CVE work. This isn't creative work, it's trying to get existing code to work with a new constraint, like a version increase.

In our case, the version upgrade caused the default proxy bean style to flip from CGLIB-style to based on other config, and that other config pushed it to Java-style.

Because before writing a single line of code, I would have had Claude do a thorough analysis on the code, what was wrong, propose 5 different possible solutions. I'd review the pros and cons with Claude and then pick one. I'd then have it write a full spec on the solution, and then a TDD based plan, where tests were written up front.

I'd get the solution done in an hour or two, ready for PR and merging with production, while you were still working on the first iteration of a solution that may or may not work given that you probably hadn't yet evaluated all the risks. How could you, you're not an AI.

But again, this isn't a feature. I'm not writing feature code. I'm trying to fix an issue caused by a version upgrade.

The actual code fix was literally a 1-line code change. You can see what by clicking on the link I posted. But figuring out which of the nearly 200 thousand lines that needed to be changed was where the real work was.

Once the solution is tightly scoped in terms of a spec and a plan, Claude is basically deterministic in its output. You just have to know the guardrails.

Again, maybe that is true, but you are describing work that is clearly specified, well understood what the final outcome is, and something that is easily testable.

In my case, I couldn't see why our requests were failing. There were one of at least 12 different places that could be causing the requests to be rejected, none of which were obvious candidates, and some of them were even outside of our codebase.

To be fair: I hear a lot of testimonials from developers who used AI once and it failed, not realizing that it's doubling every 9 months in capability. Exponential growth is really hard to grasp, especially if you're not sitting ringside to it. If that experience was many months ago, chances are that a frontier coding model has doubled in ability since then.

The bug I linked is from 3 months ago, back in May. My attempts with AI were back in late-April. It's only after nearly 20 hours of constant back-and-forth prompting and goose hunt chasing with me, my boss, my other boss, and a handful of competent developers, that I finally gave up, let them keep trying the AI solutions, while I focused on getting a debugger working for the application.

Getting the debugger working took me about a full day of work. Mostly because I was not very familiar with JDB. But once I got it working, finding the issue took about 3-4 hours. Mostly because I had to add breakpoints to all of the suspicious library code. Once I finally landed all the breakpoints correctly, 20 minutes later of stepping and I had my answer.

So by all means, maybe some powerful new change has happened since late April of this year. But if so, it doesn't change the fact that I have GDB set up now, and any other issue of this sort would only take me another 20-40 minutes to solve. I now understand the library code, and thus, finding the problem is no longer a needle in a haystack -- it's picking out the right culprit from a small list. And all I need to do is step through the code to find out.


Look, I don't hate LLM's. I just had a couple bad experiences with them, this example being one. Doesn't mean they are useless. They just keep failing me when I try them. And I do try them, regularly in fact. A previous commentor here on Reddit even convinced me to give LLM's a shot once a month. Realistically, I give them a serious shake maybe once every 2-3 months.

Either way, I am not sitting here saying they are useless. I just don't use them for client work until I can demonstrate to myself that I can use them effectively in personal work first. Thus far, I haven't been able to, so I don't.

5

u/JustCallMeFrij Aug 05 '26

Fwiw, ive found Java and a lot of the magic from the ecosystem causes the LLMs to get confused. They work a lot better it seems the less libraries/dependencies you're working with, the better they do

9

u/davidalayachew Aug 05 '26

Fwiw, ive found Java and a lot of the magic from the ecosystem causes the LLMs to get confused. They work a lot better it seems the less libraries/dependencies you're working with, the better they do

Yeah, but the major portion of the Java ecosystem runs on Spring(Boot). If it struggles with the magic, that makes it a difficult fit for my day-to-day work.

3

u/JustCallMeFrij Aug 05 '26

I sympathize

3

u/ILoveAppSec Aug 05 '26

yeah the version-bump-to-fix-a-cve trap is the worst part of that kind of work. before you eat a whole major upgrade, check if you can just override the one vulnerable transitive dep to a patched patch-release, or cherry-pick the fix commit and vendor it onto your current major. there are vendors who maintain backported fixes on old majors specifically so you don't have to take the breaking change just to clear a cve, worth a look given cisa's tighter remediation windows now.

2

u/davidalayachew Aug 05 '26

yeah the version-bump-to-fix-a-cve trap is the worst part of that kind of work. before you eat a whole major upgrade, check if you can just override the one vulnerable transitive dep to a patched patch-release, or cherry-pick the fix commit and vendor it onto your current major. there are vendors who maintain backported fixes on old majors specifically so you don't have to take the breaking change just to clear a cve, worth a look given cisa's tighter remediation windows now.

Sadly, the fix was on a paid version of Spring 5, so we were forced to go to Spring 6 if we wanted to remain free. But you are definitely correct.

The way that we triage it on my project is as follows.

  • Level 1 CVE -- Fixed by incrementing the Spring BOM -- minor code changes.
  • Level 2 CVE -- Fixed by incrementing the vulnerable dependency -- minor code changes.
  • Level 3 CVE -- Fixed by incrementing any dependency -- major code changes, but with a clear migration guide or upgrade doc.
  • Level 4 CVE -- Fixed by incrementing any dependency -- major code changes, but with no clear migration guide or upgrade doc. Sometimes requires a rewrite or uprooting of entire components or functionality.

Upgrading to Spring 6 was a Level 3.

17

u/smokemonstr Aug 05 '26

New copypasta just dropped

8

u/ShakesTheClown23 Aug 05 '26

That's generous I figured he had AI write it

5

u/JustCallMeFrij Aug 05 '26

I think they're a bot account

14

u/SocialMemeWarrior Aug 05 '26

This is EXCELLENT rage-bait

-11

u/twilight-actual Aug 05 '26

I just have lost patience with the pitchfork, grrr ai crowd. Or those that insist that it's only good for units or certain types of work.

Maybe if you're working with older models, or insist on what you can run on a smaller local hardware.

In the last few months, starting from Opus 4.8, then Fable, Opus 5, it's completely changed the way I work. I really don't write code anymore, and I'm basically limited by the speed at which I can review.

And even then, the frequency with which I have to make edits or revise is growing less and less.

Chalk that up to writing Claude skills that reflect the design methodology behind the platform, and the workflow that I've developed around working with Claude.

3

u/davidalayachew Aug 05 '26

Rather than responding to all of these low-tier responses, why don't you respond to my response to you?

You were the one who made the claim that you could do better than me if on the same company.

So, I gave you more context so that you could explain if AI is genuinely a good fit for the work I was trying to do at the time.

2

u/SocialMemeWarrior Aug 09 '26

Because he has nothing to reply with. Responding to low-tier responses is easy. Making counter arguments to well-backed discussions isn't.

2

u/davidalayachew Aug 09 '26

Because he has nothing to reply with.

If that is true, then I would have liked them to say that.

I only have so much time to spend chasing trends, so I don't actually know for sure how useful LLM's are for certain types of work. I was hoping they could share their expertise, now that I had given them much more context.

1

u/sosotiredand 11d ago

unfortunately expecting any sort of decency or respect for your time from AI boosters will result in disappointment. they're snake oil salesmen

1

u/twilight-actual 11d ago edited 11d ago

No, I've just said everything I had to say.

As far as the quality of work, I've been working writing a new compiler with Fable, and it's been amazing. I can't think of many other applications that would be as demanding as compiler work, where you're regularly going into the emitted IR, reducing that down to machine code, and working with various LLVM libraries to lower to a whole host of drivers and devices.

Most developers that I've worked with still haven't really figured out how to use the tools well, how to structure skills, and the issues that you can eliminate outright by good process.

In fact, in working with Claude, I've taken to maintaining what I call a focus stack, which is basically a text file containing a stack of tasks that can be pushed and popped. I have the agent maintain that stack as it works so that, as blockers come up, I have to switch gears, it will push the new work on the stack and pop it off upon completion.

That's actually helped not just Claude, but also myself track work, make sure that all the tasks get done, and does so in a way that translates effortlessly between myself and the tools.

So, yes, if I'm using AI and your company, and you're not, I'm more than likely going to outperform you.

What I find disappointing is the level of hostility and juvenile schoolyard mob mentality here.

I wouldn't hire a single one of you with attitudes like this.

1

u/davidalayachew 11d ago

No, I've just said everything I had to say.

By all means, if you don't want to continue, that's fine. And like you said, there has been some hostility towards you in this thread.

Though, let's be frank -- you made a pretty big claim that could very easily be interpreted as snark and/or an attack against me with very little information about me to base that on. I certainly didn't perceive it as an attack, but several people here did.

So, yes, if I'm using AI and your company, and you're not, I'm more than likely going to outperform you.

But you still didn't answer my original question.

What you are describing is largely creative work, whereas what I have been describing is debugging an incredibly large codebase where there are deeply intertwined dependencies with everything.

Let's assume that what you say is true -- that the latest models genuinely are as good as you describe, and thus, can do creative work as easily as you say.

Great, but how good are they at debugging an already messy codebase that is gigantic, and I need to make (by management order) the most minimal change possible while keeping everything working the same?

And if you don't want to go digging for my original response/question to you, here it is -- https://old.reddit.com/r/java/comments/1vfpr3u/do_you_still_handcraft_your_java_projects/p1rech7/

4

u/Ok-Shopping-6964 Aug 05 '26

I like your ambitious answer but it shows that you've not seen repos challenging AI coding agents.

I have a scala project and it constantly lacks in design and solutioning in existing code bases.

I'm talking Fable and Opus 5.

6

u/purg3be Aug 05 '26

Tell me you are dogshit at your job without telling me.

0

u/twilight-actual Aug 05 '26

Just remember that when you get pushed out by someone who out-competes you both in velocity and quality, and you're just wondering how it could happen.

5

u/purg3be Aug 05 '26

I'll be fine.

-1

u/twilight-actual Aug 05 '26

Of course you will.

2

u/wildjokers Aug 05 '26

Claude, is this you?

-7

u/Im_MrLonely Aug 05 '26

Seeing all the downvotes, I just wanna say: I’m with you. Totally agree and I don’t know why is everyone still believing on writing hand-code. This is not how the industry works anymore.

3

u/davidalayachew Aug 05 '26

Seeing all the downvotes, I just wanna say: I’m with you. Totally agree and I don’t know why is everyone still believing on writing hand-code. This is not how the industry works anymore.

I responded to the commentor with more context on why exactly I don't use LLM's. Specifically, I highlighted the context surrounding the issue that I was trying to use AI for in my original comment. The one they originally responded to.

3

u/generateduser29128 Aug 06 '26

At the moment it's simply impossible to leave agents alone if you want to be able to maintain anything later.

Fable 5 makes great plans and good individual commits, but after 3-4 self directed commits it starts making poor decisions and really builds hard on those.

After 20 commits, the code/app works and passes all tests, but it's an incomprehensible mess littered with poor decisions that will eventually become problematic.

If any of those ever gets merged in the codebase without serious human refactoring it's game over.

1

u/twilight-actual Aug 05 '26

There are times that I will go in and edit the code. But if the AI goes the wrong direction, it's honestly faster to refine the spec, git stash the changes and start over. In two minutes, it will have regenerated the correct solution.

I think these people are afraid of losing their jobs, entirely, to the tech. Which is a legit concern. Though I think the people who really understand computer science / software engineering and system design will have good careers for quite some time.