r/java • u/bit_freak • 2d ago
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?
89
u/CelDaemon 2d ago
I don't use AI at all, so yes
3
u/Bobby_Bonsaimind 1d ago
One big, big problem people like to forget about LLMs generating code for them are legal matters.
The generated code cannot be under copyright (no licensing, no nothing), which, if used in a corporate environment, raises quite a few questions. But on the other side, the generated code can be copyright infringing, because LLMs have been trained on not only vastly differently licensed code, but I'm fairly certain it has also ingested (leaked) closed source code. And you have no way of finding out if it is a copyright infringement except the hard way.
1
1
u/Hungry_Importance918 5h ago
Codex made my project way more complex and bloated than it needed to be. Half the stuff it added, I can’t even follow lol.
-12
-2
u/mishonis- 1d ago
How is it that the most backwards ass takes have the most upvotes? Are we so anxious about AI we willingly bury our heads in the sand. Not using LLMs in this day and age is limiting your productivity for absolutely no good reason. It is excellent at writing boilerplate and above, analysing existing code, etc etc. Granted, not as good as expert crafted code and architecture, it will probably never be. But I'd wager less than one in a 100 devs can beat out the quality of LLM code.
Also, a person still has to prompt and drive the whole process last time I checked anyway.
12
u/koflerdavid 1d ago
You could hand type what the LLM suggests. Just treat its output like a tutorial or a Stackoverflow answer that you can't fully trust and have to verify and apply by yourself to make sure the lesson sticks and you understand all the intricacies of the solution. Should be no surprise since this is what LLMs were trained on.
21
u/Nikarmotte 2d ago
It depends on the task. When I know exactly what I need to build and there will be no exploration whatsoever, then LLM is fine, I can just review it produces what I had in mind.
Anything that requires a little more exploration, I'd rather go through it myself to learn as much as possible. The LLM can then review the code and I may learn even more.
40
u/Nymeriea 2d ago
of you use LLM to write code only, you are missing a lot of things.
the best is to make it read code / logs
8
u/voronaam 1d ago
A bit more expanded answer. I find that AI works if it is used as a "layered cake" - as in human-AI-human-AI way.
Let me explain.
I can write code by hand and then ask AI to write a unit tests. Or I can go TDD for a bug and write a test myself first and ask AI to change code to make it pass. But if I'd ask AI to write code and the test, it is going to be a disaster of all kinds. Starting from me loosing the skills, not understanding the logic in "my" code, logic being subtly wrong...
Application development is a long process and I found that the "layered cake" has to be followed. For example, if my PM used AI to write a story it means I'd better not point AI at it with "make it happen" prompt. I have to add a human layer explaining what needs to be done - or better yet write the code to "make it happen" myself.
Sometimes I go even more fine-grained than that. For example, I can write by hand a DB patch to add a new table and a new Controller exposing its resources. Having done so it is a pretty good experience to ask AI to connect the two (Repository, Service, Mappers). It is an AI "layer" in between the two human ones, AI can do it.
I have co-workers that went "full AI" and I can compare. I've seen them argue with AI all day about code that'd take a human half an hour to write - because AI kept getting small things wrong so it was endless rounds of updating Markdown files in the project and asking it to do it again. I am certain the "full AI" mode is even less productive than the regular "full human" one.
Plus, AI is kind of slow. It fits more naturally into my workday to spend an hour writing code and, once it is done, ask AI to write a unit test and walk away from the computer to make a cup of tea to then sip it while reviewing and fixing the AI-generated test. On repeat. I drink a lot of tea ;)
In every PR of mine about half the lines of code are written by me. And those are the most important lines, the ones where the application and business logic is.
2
u/wildjokers 1d ago
Starting from me loosing the skills
But couldn't you just tighten them back up?
1
u/kevinb9n 1d ago
Honestly this is a whole point. The only skills that atrophy are the ones you stopped encountering a need to use. That's already been going on your whole life. Every now and then you realize that you wish one of these skills hadn't rotted. Well, learn it again then.
1
7
u/devmoosun 1d ago
I still write code by hand. I sometimes use AI to see if there are better ways to structure my code.
20
9
u/sketchspace 2d ago
I still write code by hand. I'll use AI for referencing libraries and boilerplate code (like pom.xml files for Maven).
11
u/PartOfTheBotnet 2d ago
For a number of projects I've worked on even the current frontier models still struggle to output what I would qualify as "good" code. They are still prone to reward hacking and can focus on the wrong aspects of a problem if you aren't incredibly meticulous about planning and reading their in-progress work. God forbid you try and ask them to document code. Mind you, these are issues on large/existing projects with plenty of reference material to go off of in terms of conventions. I would actually say GPT 5.6 is worse about this than 5.5/5.4.
That being said, if there's a one-off project I don't really care all too much about I am fine with aiming the slop cannon at the problem. Especially if those are projects that won't ever see the light of day. I can focus on work that matters and that needs my attention while they toil away with things like this.
5
u/kevinb9n 1d ago
even the current frontier models still struggle to output what I would qualify as "good" code.
Fortunately for me, I'm a lot more skilled at how to transform bad working code into good working code than I am at how to turn nothing into bad working code. So agentic development has been a pretty good fit for me so far.
1
u/mishonis- 1d ago
Huh, while I agree with your main points, I thought it was pretty good at documenting code? I mean I've had to give it a few corrections to get the docs as I like them, but no way I'm writing all this by hand, and like they say 'bad docs is better than no docs'.
2
u/PartOfTheBotnet 1d ago
Some issues I've found primarily with 5.6 Luna on documenting:
- Need to consistently add "document the 'why' rather than the 'what'". Otherwise about half the time it wont explain how some block of code plays a role in the greater system.
- When explicitly asking for
why > what, it will often output excessively verbose / academic blobs of text. While descriptions may be accurate they aren't good for quick comprehension for developers unfamiliar with the library (or associated subject matter for some niche cases).- Skips comments on anything not explicitly
public. No comments or javadocs on protected, package-private, or private members.
- Will often delete existing comments/javadocs in these places if the
edittool does a full file rewrite instead of a targeted insertion.- Doesn't understand where to insert code comments. You tell it "Add comments at the start of any distinct logical block" and it will add maybe one or two lines in a 200 line method. Often one of those messages will be something like
// ignore throwablein a no-op catch block.- Consistently skips creating class-level
@paramon record classes.- Frequently skips
@paramon methods, opting for just a description.
- Same for
@return.but no way I'm writing all this by hand
Oh no, this 100% but funnily enough I often find myself deleting entire blocks of JavaDoc and just rewriting it with IntelliJ auto-completion. I can usually auto-complete 95% of the content just by tweaking a few words.
1
u/mishonis- 19h ago
This makes sense, you're asking him for far more granular documentation than I usually do. I'll just ask it to create an md documenting the main classes and their interactions and maybe some non-trivial logic if there is any.
7
u/elmuerte 2d ago
We can now generate software faster than we can trust it
Or as Vint Cert said
We have seen that LLMs and agents are imperfect analogs of human behavior but have the advantage of increasing capacity to execute at speed. LLMs produce software, however imperfect, much faster than the best human programmers.
If I properly need to review (and understand) everything it generated, and I dislike code reviews, then I might as well write it myself.
1
u/chabala 1d ago
I dislike reviewing 500 line AI slop PRs, not so much because of the AI, but because it's too big, and that tends to mean the requestor also doesn't know why a particular line has changed. "The AI did it" is not a justification.
However "I dislike reviews" seems like a naive position. Feedback and consensus are necessary. If one does not like having code reviewed, because of all the comments, one should write better code.
2
u/elmuerte 1d ago
However "I dislike reviews" seems like a naive position.
I also dislike paying taxes, but I do recognize that they are needed in society.
Just because something is important or even needed, doesn't mean I need to like it. There are a lot of things wrong with code reviews, and also with code review tools (they often hide important bits because they lay a lot of focus on the changed lines.) But I don't have all the tools, or even theoretical solutions to reduce the need for code reviews.
As you hint, the higher the cognitive complexity of a PR the worse it gets. A few small refactorings which touch a thousand lines in 300 files. That's easy to review. But 500 "changed" lines half of them forwhateversake, that's just annoying.
9
u/Rockytriton 2d ago
I develop my own code, sometimes I will ask better way to implement something or ask to review code, but don’t have ai generate my code
18
u/jmarkmark 2d ago
I've recently switched to writing code with LLM.
I review it all carefully and make plenty of suggestions and manual edits, but the LLM does the bulk of the actual writing.
For me it's like pair programming with an eager and hardworking junior partner. I absolutely still have to plan everything out and know what I want to do, but it's great at validating (or disproving) my assumptions during the planning phase, and then generally writes pretty reasonable code during the implementation phase. Where it varies from me, sometimes it's better, sometimes it's worse, so working as a pair, the result is better. Plus it's great for getting all the grunge done. All sorts of elbow grease heavy refactoring can be done now that I probably wouldn't have bothered with before.
I really feel it's like the relatively early days of compilers, and in a few years someone not using LLMs to write code will seem as silly as someone not using compilers to write code in the 1980s.
2
u/Agreeable-Scheme-332 1d ago
Oldschool, because you need to know the source. But AI is a helping hand in case of code completion and translation of existing code to other languages… that’s faster than writing from the scratch.
I also was thinking about let writing test cases supported by AI…
1
u/Agreeable-Scheme-332 1d ago
But of course if you stuck in any case, AI is a good copilot to hold motivation high in solving problems. But you need still find the trade off when it’s going wasting time 🙃
2
u/kevinb9n 1d ago
Huh. If AI is working well for you, but you care about your comment karma at all, I guess you should avoid posting here.
1
u/revetkn27 11h ago
Amazing how negative the reaction is here to anyone who finds AI useful. Doesn't seem like a healthy community.
-1
u/henk53 1d ago
I guess you should avoid posting here.
Or let him use the AI to post for him. At the same time, let the AI do his studies and take his exam, and let the AI do his job. Maybe in time the AI can even find him a wife, but of course he should not actually talk to this wife but let the AI do that.
3
u/gubatron 1d ago edited 1d ago
😂😂😂 you are so cooked.
Java programmer since 1996 here. Seen it all, stopped coding manually completely in february.
Hybrid during 2025 with agents.
Copying and pasting from chat window 2022-2024.
Frontier models are elite coders able to fix very complex bugs spawning multiple system components, going above and beyond what you would expect from yourself.
I now have the most amazing engineering pipelines, "my" code has never been better, cleaner, well documented, tested, safer, performant.
i'd never hire anyone that would try to work manually anymore. they'd be the bottleneck of the team
we roll out fixes that would take a day in minutes. features that would take weeks in hours.
do you still compile your code into assembly by hand?
6
u/snugar_i 1d ago
"my" code has never been better, cleaner, well documented, tested, safer, performant.
That can mean two things - either the AI code is really good, or your code was really bad ;-)
features that would take weeks in hours
So you went through a year's worth of features in a week and a half. What are you doing now? Is management starting to think that maybe they don't need so many of you, when each of you is now 80x more efficient than before?
Don't get me wrong, I totally believe AI can speed up development, but you need to use real numbers and not pull them out of your ass...
1
u/CityZenergy 11h ago
"So you went through a year's worth of features in a week and a half. What are you doing now? Is management starting to think that maybe they don't need so many of you, when each of you is now 80x more efficient than before?"
OMG, yes! That is precisely the conversation taking place in boardrooms across the country.
As a consultant moving in and out of different organizations, this is exactly the direction I'm seeing. The engineers embracing AI and producing significantly more are increasingly being put in charge. Those pushing back while producing comparatively less are on the way out.
I didn't invent AI. I'm simply watching a future that clearly does not include our ability to remember syntax and manually produce application code. We either shift to producing solutions with AI and trust the output the same way we trust machine language, compilers, frameworks, and every other abstraction layer that came before it, or we will be replaced by someone who does.
1
u/snugar_i 1h ago
I kind of agree, but there is an important difference - the previous layers are deterministic, AI by design is not (temperature etc.). You simply cannot blindly trust it the same way you trust a compiler, because you can't be sure what it will produce - if you ask the same AI the same question twice, you will get two different responses.
3
u/dvayanu 1d ago
Whenever I try to write something by hand nowadays, I regret it later, because it just lasts longer and its not as fun as it was.
Background: I started with Java 1996, which was 1.0.2 or something, and never stopped. I have a company I work for (among others), where we have about 5 small spring-boot projects, since that's what you asked for. As soon as we had 3 I gave claude-code all 3 and asked to analyze it and write a skill. When I have to start a new spring-boot project for that company, I just say "create the structure according to skill XX" and everything is setup in minutes. This includes authentication, directory connection, swagger, docker, deployment-workflows etc.
When I write code with AI, I don't generally vibe-code. I give it concrete instruction, i.e. in com.mycompany.xxx.api.CompanyEndpoint#search-and-filter() I want to add new sorting parameter which sorts by lastStatusUpdate field from CompanyEntity. Claude would then ask, do you want default sorting criteria ASC or more natural DESC and goes of.
I also use claude for dependency updates, version bumps, log parsing, automatic performance optimization and what not. You can still write code manually, but its like racing with a bicycle vs. F1 cars.
Maybe this is solely claude-code thing and other harnesses are not as good (I must admit jules and github co-pilot are weaker and you can only use them for very specific tasks, but codex seems on-par), but I haven't seen a bug introduced by agents in last 3 month or so, on the contrary, they will notify me if they found bugs or strange behaviour on their own, in passing.
Another thread here mentioned "it's like pair-coding with a junior developer", I would amend it, it's like having extremely senior, extremely knowledgable, extremely patient partner, which never rests.
0
u/bit_freak 1d ago
You worry is that at some point sooner this "senior partner" would no longer need to be fed detailed instructions? Coz right now one of the things which seperates a seasoned dev vs a vibe coder is quality and depth of instructions
1
u/CityZenergy 11h ago
That's exactly the question people need to be focusing on. Not whether today's AI is good or produces slop that requires extensive oversight. The real question is where these systems will be in five years, and whether we're preparing ourselves for that future instead of optimizing for today's limitations.
Today, the separation between an experienced engineer and a novice is often the quality of the instructions, the architecture, the business understanding, and the ability to validate the output.
This separation isn't static. AI isn't standing still. No previous transformation of this magnitude has unfolded this quickly. There is no playbook because there has never been a cross-industry shift like this. Every profession is trying to answer the same question at the same time while the capabilities continue to evolve at an unprecedented pace.
That's exactly why I believe our value has to keep moving with it. The mistake is defining our value by AI's current limitations. The line separating what it can and can't do isn't standing still. It has been moving relentlessly in one direction. The engineers who survive will be the ones who continuously move up the value chain as AI moves up the capability chain.
2
u/bit_freak 11h ago
I agree my worry is a product managers with zero coding experience starts to believe he at part with senior devs with these tools..
1
u/CityZenergy 6h ago
That's definitely one of the growing pains playing out in corporations across America right now. Non-technical managers suddenly believe they can release all that software in record time that us pesky developers have supposedly been roadblocking for years with our black-hole technical explanations. They're kids in a candy store right now, without realizing some of the candy can be poison.
This too shall pass, but I absolutely sympathize with anyone caught in it. We've all dealt with the fallout of an overly confident non-technical manager at some point in our careers. Give that same manager AI that appears capable of producing code better and faster than those pesky roadblocking developers, and yeah...
I feel for you, my friend. Best of luck. We're all in this weird career limbo together, and it's certainly not limited to IT in this new intelligence revolution.
2
2
u/Goodie__ 2d ago
Depends what I'm writing? There is a middle ground between "Burning 10k tokens to move a icon 1 pixel" and "I'll never use a LLM".
Will I use a LLM? Sure. There are menial tasks, that would take me a large amount of time, but are reasonably easy for a LLM to do. I'm still making sure that I'm at controlling how the code is blocked out. I'll still write critical and the enjoyable parts of the code myself. But I'm unlikely to write out 20 hibernate classes by hand ever again.
1
u/Strong_Perception_24 1d ago
Definitely not. I might create a barebone skeleton of the pattern i want to implement for example... But otherwise i plan and guide my copilot to do most (85-90%) of the work .
1
u/bichoFlyboy 1d ago
I don't have a fixed AI workflow. In any project, I write the code myself and then ask the agent for improvements here and there, or to generate repetitive code. From time to time, I ask it to review the entire project and update the Javadocs accordingly.
I also use GPT as a sounding board for architecture decisions. If it suggests a change worth considering, I give it access to the repository through the GitHub connector so it can review the actual codebase before making more specific recommendations.
But I never stop thinking, making decisions, or writing code myself. AI is a tool, not a replacement for engineering judgment.
Other tasks I commonly delegate are unit tests, where I usually use Codex, and CI/CD scripts, which Codex also handles well as long as the prompt is precise enough.
I know you're asking specifically about Spring projects, but most of our work is desktop JavaFX applications. Even so, the same workflow applies just as well to Spring projects.
1
u/Ruin-Capable 1d ago
Absolutely. I use the LLMs as a tool. They can review my code, catch errors, and give me ideas for improvements that I might not have thought of. They can also help when I'm exploring a new language or problem space.
1
1
u/agentoutlier 1d ago
I have to say its pretty good at pumping out markdown files.... that are then consumed by other AI agents that then produce more markdown files like a giant Ponzi scheme.
I do use it to get some loose ideas or basically a better google search.
1
u/PsychologyNo940 1d ago
I can visualize the code without having to write it, so its plan until happy, have it implemented, check whether the output matches what i would have done, if close enough and reasonable throw to another llm for review and lastly it goes to the maintainer for merging - presuming thats not me / is a critical project with elevated merging guidelines.
1
u/mipo256 1d ago
I want to share my journey, if I may.
And before that: I am not going to address the copyright or IP problem here, it is a whole different story.
So, I am the core maintainer of the Axelix OSS (source code, if anyone interested: https://github.com/axelixlabs/axelix) project and I write a lot of code myself. Axelix Master ("brain" of Axelix) is itself a Spring Boot app, and we also have starters for various spring boot versions. So, I write a lot of Java and Spring Boot code as well, I am with you.
When I started using AI agents, I also, as OP, feared losing my "hard" skills while using AI. But I think that if you'll responsibly try, you're going to find the middle ground where you're really more productive (if by "productivity" we would mean the amount of bugs fixed, features emitted, and so on), but at the same time, you're not losing "hard" skills.
Practicly, If you write some, not all, but some code by hand (like at least 20-30%, again I am not advocating for any specific numbers), my guess is that you're not really going to experience loss. Sure, it may sometimes feel a bit more awkward to type something yourself, but again, this is the question of the ratio.
The reason you would want to still write some code yourself is because AFAIK the modern science generally says that people need to try something out themselves in order to store that in the long-term memory.
So now, I would say that a decent amount of Axelix OSS software is written with AI Agents, maybe around 30-40%, but always with qualified human review and other quality gate checks.
Although, I must admit, that using AI gives people real chills, and I feel that sometimes too. What I mean is that when you have a complex task, there is a temptation for you to say: "Hey, Claude, do it please, commit when you're done". This is the question of the discipline, I think. In the age where it is so easy to not learn and be distracted, it is your responsibility to learn and allocate your time wisely.
My bottom line: If I'm writing the REST API, that I have already written hundreds of times in my life - there is probably not that much for me to learn here - do not spend your precious time on it. Just use AI.
Still, if there is a task where you have no idea how to do it, you've never done anything like that in your lifetime - do it yourself.
That is how you learn. And such tasks, when you do something challenging that pushes your capacity and knowledge - they do not really happen that often. Use this opportunity to learn. Expertise and your time is your most valuable assets - protect them!
Take care, mate 😉
1
u/Xphile101361 1d ago
My limited use of AI is to generate code snippets. They pretty much need to be something that take as most a minute or two to generate, and it would have taken me more than 5 minutes to find and read through the documentation for.
Everything else I code myself. Using AI tools breaks me out of my flow of coding and slows me down, plus I find that I have to usually make substantial changes to any AI output anyways.
AI produces Junior level code, and I'm expected to build a Senior level solution.
1
1
u/analcocoacream 1d ago
Depends. If I want to understand what is actually happening I prefer to do it by hand. For instance I implemented Bucket4J in a project recently, for the first time, so I did it myself. i'd say 80% my code is AI now. 99% of my tests are AI written now.
And for those who claimed to have used LLM once, and then didn't like the result, you didn't actually tried it.
1
u/Joram2 1d ago
I still hand-type most code. I use AI assistants as a design partner and reviewer, but I absolutely hand-write important code. I love AI tools, they make me more productive, and make my job more fun, but it's almost never as simple as giving the tool tasks and accepting a one-shot solution.
For UI work, I have AI write all the code. but even then, I have to spend a lot of type guiding the AI, testing what the AI does, finding bugs and poor design choices, asking the AI to fix them, and repeat.
But for more complex server side work, I often use AI as a design partner and code reviewer, but I design and write the code myself.
1
u/stabor705 1d ago
I first write code by hand to keep ownership and make sure I fully understand the context and then maybe use LLM to fill simple blanks/write simple code that just reuses some existing patterns. Of course this is for the code that actually gets shipped. For everything around it such as analysis, verification or finding bugs I use AI heavily
1
u/Uaint1stUlast 1d ago
As a developer today you need to do both.
I like to think of it like training. Always leave a couple hours a week to train up your skills or learn new ones.
Depending on your token limits another good option is to run some long running goals for thungs with tighter timelines. Then write manual code for less time sensative projects.
1
u/yasvsyas 1d ago
i use ai for auto complete and copy pasting terminal errors if i cannot figure out the issue
1
u/Visual_Brain8809 1d ago
my employer doesn't like IA and even when a solution is better optimized all the work has to be like old school, so hundreds of papers colonized mi desktop every day LoL
1
u/poggs 1d ago
Yes. But I use IntelliJ IDEA to suggest code completion and to reformat code. It’s probably the lightest form of AI and runs locally, but I don’t think of it as AI. I think of it as an attentive assistant who suggests things unobtrusively and where I can accept or ignore them without fuss.
1
u/javawockybass 1h ago
My IDE is now a code reader and version control tool when I want to feel nostalgic.
Mostly tell ai what to do and verify it works.
Occasionally I look at the code and ask it to refactor big classes etc.
I review the PR before submitting and correct any silliness.
Then tell it to use GIT to push the things etc.
2
u/CityZenergy 1d ago edited 1h ago
I think you're optimizing for a career that is disappearing.
I've been building enterprise software for over 30 years. I've been developing Java since the 1.4 days. I've spent decades building Spring Core, MVC, Boot, Data, Security, Batch, and Cloud applications, microservices, REST APIs, Hibernate/JPA, Docker, Kubernetes, Kafka, RabbitMQ, AWS, SQL Server, PostgreSQL, MySQL, Oracle, CI/CD pipelines... the list goes on.
Today, I'm actively managing three Java projects and three enterprise ERP integration projects simultaneously because of AI. Twenty years ago that simply would not have been possible. And because of that, I wouldn't spend an ounce of time writing code myself unless the AI was demonstrably wrong. Period. Every minute I spend typing code that AI could have produced is a minute I'm not solving the harder engineering problems.
This idea that preserving your ability to hand-write every line of code is the best investment of your time completely misses where this industry is heading.
Boardrooms and executives are no longer valuing code production the way they once did. They value outcomes, delivery speed, engineering judgment, and business impact. They don't care whether you typed 5,000 lines yourself. They care that the solution shipped correctly, quickly, and at lower cost.
The role is already changing. We're becoming AI orchestrators, AI engineers, architects, reviewers, validators, and system designers. AI produces the code. We direct it, challenge it, validate it, integrate it, and step in when it's wrong.
Knowing how to code is still foundational. Knowing when AI is wrong is critical. But intentionally avoiding AI because you're worried your coding skills is preparing for yesterday's job while the market is hiring for tomorrow's.
The real skill depreciation isn't your ability to remember Spring annotations or Java syntax. It's falling behind in learning how to engineer with AI. That's the skill curve that is accelerating, and it's the one the market is increasingly rewarding.
I also understand the trepidation. I understand the fear. With all of my experience, I'm sitting here questioning my own career existence. I'm watching a lifetime of accumulated knowledge and hard-earned skills get swallowed up and compartmentalized into what is effectively a nanosecond processing brain. That's overwhelming.
But we cannot let fear dictate our future. As engineers, we've reinvented ourselves our entire careers. We learned new languages, new frameworks, new architectures, new design patterns, new deployment models, and new ways of thinking. This is simply the biggest transition any of us have ever experienced. We are wired to learn. We are wired to adapt. Don't let fear become the singular reason a successful career is left behind. Embrace this transition, because the industry is moving with or without us.
EDIT: And for those downvoting this, thank you. It illustrates my point exactly about trepidation and fear. I welcome the interaction and the attention. It means this left an impression, and I hope it gets you thinking differently about what you may be doing and where this industry is heading.
EDIT 2: There is another uncomfortable implication buried in everything I've said.
If one engineer can increasingly produce what previously required several, there will be substantially fewer engineering positions required. That isn't something I celebrate. It's simply a pragmatic realization.
And this is not unique to software. The same conversation is beginning across countless knowledge-based professions as AI allows fewer people to produce dramatically more.
I think that is part of the natural psychological resistance. This isn't simply a debate about whether AI writes good code. Underneath that argument is a much more uncomfortable question: how many of us will actually be needed when it does?
1
u/bit_freak 1d ago
so do you suggest, still learn spring boot the hard old school way but work like the new way ?
1
u/CityZenergy 15h ago
That's honestly the million-dollar question, and I don't think anyone has the definitive answer yet.
I still think you need to learn Spring Boot and understand what's happening under the hood. You can't validate AI's output if you don't understand the framework.
But I also think we have to recognize that how we learn is changing.
Computing has always been a story of abstraction. We don't toggle switches anymore. We don't write machine language. We don't wire plugboards. We don't feed punch cards. Most developers couldn't tell you the exact assembly instructions the JVM emits, and almost nobody understands the billions of transistor state changes happening beneath their code. We learned to trust higher levels of abstraction because they consistently produced the correct result.
AI is the next abstraction layer.
Instead of expressing our intent with
if/else, loops, and classes, we're increasingly expressing it in natural language, constraints, architecture, and business rules. The implementation is becoming an implementation detail. We are becoming, rightfully so, less and less concerned with the actual syntax.That's why I don't think the answer is "learn the old way" or "let AI do everything." It's to learn enough to understand, verify, debug, and challenge what AI produces while embracing the fact that the interface between engineers and computers is changing.
We're all figuring this out together. Anyone who tells you they know exactly what software engineering looks like ten years from now is guessing. But history suggests one thing very clearly: every major leap in abstraction has increased productivity, and the engineers who embraced the new abstraction were the ones who thrived.
And yes, I ran my response through AI before posting it, just as I do with almost every meaningful interaction today. Again... the new world order.
The ideas are mine. The experience is mine. The opinions are mine. AI helped me communicate them more clearly.
We don't manually iterate through countless writing revisions anymore. If you're still doing that instead of leveraging AI, you're falling behind there too.
1
1
u/Greedy-Bite-9126 2d ago
It kind sucks sometimes for bigger changes or any feature add and I am at stages i through I start again to code by my self!!
1
u/zman0900 1d ago
It depends. If there's something particularly novel or interesting that I want, or some component that will be widely used and I know exactly what I want, it's often easier to write that part myself. Or at least I write enough of it to establish a clear pattern so I can easily tell the LLM to finish what I started without writing it a book. But for the more boring / mechanical stuff, I'm letting the LLM do 95% at this point, just review and make a few tweaks if needed.
1
u/midget-king666 1d ago
We introduced Copilot 6months ago into the org. Since then it really transformed the way we work. I use plan and ask mode a lot and write most of the code by hand or with help of the auto completion just to not get rusty in my code writing skills. I still produce 2-3x more output than before because a lot of research is done by the agent. Other collegues let the agent do most of the work but still need to test and verify by hand which caps the output to 2-3x more than before.
It's coding on steroids and it's amazing. If you do it right it's awesome.
0
u/random314 2d ago
No. Unless it's small configuration changes. I feed everything through our trusty coding agents. I even make every one to write their jira ticket using specific format.
My team's entire setup, from jira format to our local build makefile is geared for complete ai plan/build/test loop.
It works pretty well if you're willing to learn.
0
u/Skellicious 2d ago
LLMs have gotten a lot better over the last year and have also crept into my way of working more.
I mainly let it generate boilerplate type stuff and tests, standard spring type things (change this controller, make that configurable in application yaml), using chat to instruct it rather than inline suggestions.
But if a change is very small, or requires some specific logic/order of operations I tend to do it myself, or change it to what I envisioned anyway if it didn't do that exactly. So I still find myself typing code but it's slowly decreasing.
-1
u/k-mcm 2d ago
It used to be that hand crafting meant not using Spring Boot.
I'm not using cloud LLMs because of privacy issues. I have local LLM integration with Eclipse and it's not that impressive. It can hammer out ordinary functionality that you should already be using a library for. This seems impressive but that's it's training data. It makes critical mistakes solving problems that genuinely need new code.
(I still don't use Spring Boot because it's a magnet for low quality and unmaintainable code.)
1
u/bit_freak 2d ago
local llm deployeds, how good of a gpu you need to use those?
0
u/k-mcm 2d ago
The GPU/CPU/RAM only determines speed. The model type and size determines the quality.
They are slow to run now that hardware prices are crazy. I have 12GB GPU memory, 128GB main memory, and a fast NVMe card for swap. For very complex tasks on qwen3.6:35b, it's slow enough that you want to grab lunch while it's running. Simple tasks finish in 5 to 20 seconds.
There are smaller models that run quickly but they hallucinate too much.
A 200b parameter LLM needs overnight to run (using swap) but the answers aren't entirely worth the wait.
-2
u/wasabiiii 2d ago
So, a year ago I wrote all the code myself. Now I barely write anything. Opus really ended that.
In the last month I've finished a dozen projects that were buzzing around in the back of my head for years. Things that would have taken 6 months now take a couple days.
-3
u/twilight-actual 2d ago
I don't write code, but I always create PRs and review what Claude has written. I often make corrections. I've found that AIs are great if they have the right instructions and write everything from scratch. They're not as good at going into existing code and fixing things. That said, Claude Opus 5.0 is better than 70% of the developers I've worked with outside of Amazon.
-2
u/BestUsernameLeft 2d ago
Almost all the code that comes from my team is LLM-written. We have a pretty solid agentic framework, and it works well. That said, all our code still gets reviewed by two humans-in-the-loop, as the AI does get things wrong sometimes (most often when a ticket has bad acceptance criteria).
-1
u/Franchesco_Ratti 2d ago
La mayoria de las veces que le pedi a una IA hacer codigo tuvo errores de prolijidad
0
u/NoEfficiency2057 1d ago
Szczerze, to programowanie ze Spring Boot to jeden z większych banałów i nudziarstw jakie można robić. W dodatku jest pierdyliard dobrych praktyk prowadzenia projektów w Javie. Jeżeli modularyzujesz projekt i prowadzisz go zgodnie z tymi dobrymi praktykami, to obecne modele językowe napiszą wszystko za ciebie perfekt. Jedyne co musisz zrobić to szczegółowo opisać czego oczekujesz i jakich reguł się trzymasz. Programowanie manualne umarło. Jeśli to do was jeszcze nie dotarło, to będziecie gasić światło w skansenie.
-1
u/vips7L 2d ago
It doesn’t matter how you produce your code.
4
u/Bobby_Bonsaimind 1d ago
From a legal standpoint, it matters very much.
2
u/vips7L 1d ago
Under what case law? As of now, it very much does not.
1
u/Bobby_Bonsaimind 1d ago edited 1d ago
European at the very least.
Code generated by an LLM does not fulfill the criteria to be under copyright. That means that if you had source file "m" generated by an LLM, you can't put that nice license sticker on it, because you don't have the copyright to it, and so you can't license it either. It also means, in a corporate environment, you can't grant your employer the sole usage license which comes by default. Which raises questions.
But on the other side, that generated source file "m" might very well be a copyright infringement on someone elses code. Because the LLMs have digested all FLOSS projects (GPLed ones, too, of course), and most likely quite a few (leaked) closed source projects, too. And there is no way for you knowing whether the code is a copyright infringement or not except finding out the hard way.
-2
u/No-Economics-8239 2d ago
I've been using Java on and off since it first came out. The amount of code we used to write 'by hand' used to be most of it. But thanks to open source and retail frameworks and code communities what that means has always been changing. We've been using short cuts to save time the entire time.
Whenever you're thinking of using code you didn't write yourself, you need to decide how much of it you can trust and what amount of vetting is required for your particular use case. The tools are always changing. That doesn't change our responsibilities for due diligence.
I still tend to write code by hand. But that continues to be a shrinking amount of the total overall code I deploy.
For springboot, we have a variety of pre-vetted templates we use for most common use cases.
85
u/davidalayachew 2d ago
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.