30 years in the industry for me. It’s been a wild last few years watching this transformation. Like the OP I find it wholly unpleasant and I also can’t deny the productivity boost. I’m very glad I’m nearly ready for retirement and I look forward to watching this “progress” from a comfortable distance.
In all sincerity, what do you mean by wholly unpleasant?
25 years in my case, by the way, and I have found this to be the most liberating and creativity-boosting period of my career. And it’s not even close. I’ve written code in more languages in the past few years than in any other period. I’m finishing more projects than ever before. I’m learning faster than ever before. I’m enjoying programming more than ever before.
And to be clear, I don’t use AI for anything other than as a pair programming partner, or to build single-use scripts. I agree that full-blindfold vibe coding is unpleasant, it’s like getting into a debate with a forgetful and emotionless monkey paw. Skip the vibe coding, just let AI be a helper.
> In all sincerity, what do you mean by wholly unpleasant?
“Wholly” was too strong a word now that I think about it.
But I’ll give two main things I find unpleasant.
One: Normally I like working with other people. There is nothing more satisfying than collaborating on a complex problem with smart and conscientious colleagues. However, the bad experiences are now amplified:
- a random colleague gets sent down a wild gooose chase of an LLM claiming there is an issue with something I wrote. It’s a full blown hallucination because it found a confluence page which mentioned me and just decided to connect things together.
- another colleague is suddenly empowered with being able to vibe code websites and is now copying and pasting my replies into an LLM and pasting the LLM back at me over Slack.
- a colleague gives a quick drive by vibe coded PR to add a feature into something I own. It reimplements the same business logic that is already done elsewhere. It takes me more energy to explain all this than just do it myself.
There are dozens more examples. In isolation I can shrug each of these off, but it’s draining. Large organisations have become more “agile” with local optimisations and missing the bigger picture.
Two: while I agree that everything is getting done faster and I do get satisfaction out of that, I’m a deep in the weeds technical person. I don’t have it in me to be a big picture person or a people leader. I love having to think about algorithms, data structures, schemas, etc. While I can use AI has a pair programmer, it’s doing a lot of the thinking for me and it’s usually faster. So yes it makes me a better engineer, no I don’t enjoy not thinking as much. I don’t enjoy shifting solely to a higher level of abstraction. Maybe that makes me a bad engineer, but I cannot change how I feel about it.
That is understandable. It’s bad enough dealing with vibe slop that you personally asked for, I can barely imagine how bad it would be having to disentangle vibe slop when you weren’t even the one writing the prompts.
I strictly avoid allowing AI to change the level of abstraction I program in. Defining and orchestrating the architecture of an application is the most fun part anyway — quite apart from being the most important when others are touching your code, whether meat bags or LLMs.
This I think will explain the differences in experience in industry. As pressures increase, control and power moves away from developers who have historically had a pretty strong position to dictate how they work.
Not everyone is going to be able to use AI as just a tool. The reality I have seen is that AI has sped the time-to-pr up for those who don't care what they ship, so that gets baked into estimates and expectations.
Eventually those working carefully with AI will be like the carpenter still using hand tools while the shop is operating CNC machines. The business can't afford the craftsmanship, no matter how right the craftsman is to point out that their work is better.
This is why I love AI as an enabler for myself personally, but still think it's going to ruin the experience of being in the industry.
> Not everyone is going to be able to use AI as just a tool. The reality I have seen is that AI has sped the time-to-pr up for those who don't care what they ship, so that gets baked into estimates and expectations.
> Eventually those working carefully with AI will be like the carpenter still using hand tools while the shop is operating CNC machines. The business can't afford the craftsmanship, no matter how right the craftsman is to point out that their work is better.
The analogy doesn't work. CNC machines can be faster and better than a guy with hand tools. AI isn't like that.
What you need is some other race-to-the-bottom situation, because that's what AI is.
I'm with you up to the point where you compare AI to CNC, because AI is the polar opposite of a CNC machine. People wouldn't have nearly as much of a problem with it if that were the case.
That’s not been my experience. Not even remotely like that. I was never much of a stack overflow block copier. AI lets me do rapid refactoring without messy search and replace. AI lets me rip through logical pinch points without pulling out a whiteboard. And I couldn’t have ever “stack overflowed” my way to diving into a project in a brand new language.
> And I couldn’t have ever “stack overflowed” my way to diving into a project in a brand new language.
It's a very tiny project, but I dived straight into a new project in a new language completely by hand this month, precisely because I'm miserable and exhausted from my job requiring me to drive a bullshit machine instead of solving problems by thinking.
Getting a few minutes in the evening to actually program, and learn new things as I do it, has been crucial to maintaining any sanity at all in this brave new world of unending heaps of slop.
Learning any language involves internalising a massive pile of arbitrary syntax / core library knowledge. I find it flow-destroying and demotivating to be continually hampered by having to look up silly little things like how to get the length of a string, or how to work with dates. Being able to use AI to instantly turn a line of pseudo-code into a line of real code is not just great for productivity, it teaches me the language faster than any way I've experienced before.
My pre-AI coding style has always been to write terse pseudo-code first, just so I can map out core logic, what I'm iterating over, and what the meat of the routine will do. I formatted this pseudo-code as comments, and then treat them like headers, where I write the real code underneath. AI tab completion has made this way of coding insanely more productive, and gives me an incentive to write better pseudo.
(I also don't mind getting AI to write a whole page at a time, especially when it's a slab of uncreative boilerplate or glue code. AI routinely does a perfect job of smashing that out. But I will always pick through it line by line, renaming and rewriting in my personal style.)
the people I know who hate AI have a bizarre and unrelatable love for the pure math aspect of software engineering - the elegant software architecture, the efficient programming languages. the people who only care about getting stuff done are loving AI but people who spent their life learning how to properly craft high quality software are weeping - as they should be - now they know how kasparov felt
There is room in this world for Mcdonalds and Michelin Chefs.
I would also take your comment with a grain of salt. If the people you are talking about are javascript developers or people who do leetcode in interviews but never write that kind of code on the job, they are probably delusional. Ive seen many people call it a “craft” and what they produce is nothing of the sort.
If you really are good, you’ll still be in demand where it matters.
that is so true in fact I have only heard a few people say that actually, most say it more in theory than practice. Because in practice I have always been asked to solve pretty simple and boring problems far removed from the Dijkstra algorithms i did in college. i never used a graph data structure in my entire life lol
Cooking for you and your friends is satisfying as a craft and labor of love, as well as being experience. There is enjoyment to be gained from the process.
Compared to delivery, You may get the food quicker/easier. But for most people who cook it was never about that. There are certain people that enjoy generating as much food as possible. Some might call that gluttony or greed, over-indulgence, or in it for the wrong reasons. Perhaps these two groups of people have fundamentally different motivations. Try telling a chef that he should stop cooking and just order the food as delivery.
For a hundred years software was inscrutable enough to normies that you could be an artisan. But most professions haven't had that luxury for a long, long time. Try making and selling pretty much anything else you built by hand.
Now it's software people's turn to feel the pain of being a starving artist and watch as your attractive friends with no skills and a social media presence "make it" with their genius.
We haven't even begun to feel the weight of it yet.
Kudos to the lucky few artisans that the modern economy will support, but becoming a stocker at Ikea will probably be more lucrative than picking up a saw and plane.
I anticipate and welcome the market price of slopware dropping to zero, given that it’s now in infinite supply.
Too much talent has been cohabiting with SO copypasters, MBA idiots, and management dorks for too long, time to break up.
My org has restructured to gear up for reducing engineers' necessary skills
They've changed our job titles from 'Engineer' to 'Developer'.
Power (in the form of talking to business owners, organizing work, setting engineering direction) has been centralized. We had 6 engineering managers now we have one 'Director'.
I don't think I've solved a real problem in 8 months.
I think this is just a moment in time. People are spending billions of dollars to figure out how to make this AI stuff work better. A lot of the smartest people in the world are working full time to improve things.
Give AI a few years and see how you feel after people have made the AI and the tools to use AI even better.
"software engineer" covers a wide range of responsibilities. some engineers spend all their time contributing to the physics in a massive graphics engine. some spend most of their time as the sole maintainer of a web api that mostly plumbs together a bunch of services and provide data to UIs. some are frequently spitting out new services while other are maintaining 10 year old legacy codebases. the work we need to do, the tradeoffs we need to make, its just so vast.
now couple that with the wide range of variety (and dysfunction) that come from the business and organization. being a dev for a company which sells software is a whole different beast than being an in-house dev for a company which sells other products. startup, big org, old org, new org, strike team, the list goes on.
finally, engineers enjoy different aspects of building software more than others. the puzzle, the crafting, the api, the data structure, the architecture, solving end user needs, so many facets to what makes it enjoyable as a career.
this is a big reason why ai discourse online is so uneven and often unhelpful. were all assuming too much about what being a software engineer is; forgetting that my day-to-day can be wildly different than yours.
a lot of ai speedup comes from effective delegation of work. i do it, but i don't like it. it actively makes me feel tired in a way i don't feel when i do the work myself, or when i mentor and grow my team to do the work.
many other devs don't feel the way i do. some suddenly have these ai tools that make them feel more empowered and energized and excited.
llm's are genuinely a new computing paradigm because of their nature: plain human language as the interface. this is different enough that mapping our past computing concepts (like the evolution from assembly to C) may not hold as well as seem they should.
this all digs deep into who we are as individuals with specific desires, career history, goals, a specific role at a specific company. the part that's fucking beautiful and unique and human.
But if the aggressive industry-wide layoffs aren't enough of a clue, these giant ass companies (and the ai gatekeepers driving this shift) are not compatible with individual humans.
i dont mind llms as a tool, but im done with the perverse level of greed and inhumanity they seem to inspire in corporate leaders.
Some people never really liked writing code. They liked the result and the paycheck much more. Those folks are having the time of their lives now. Well, until the fall happens and software development is assmebly-lined.
I have always liked coding (started in the 80s). But I got bored having to deal with trivialities (spending life on fixing commas) and increasing accidental complexity (having to memorize tons of APIs). Now LLMs deal with that crap and I can apply stuff I read in research papers and such, with much lower threshold.
> But I got bored having to deal with trivialities
For me, at least (with probably half the experience) the trivialities are important for making me understand the design, so I can improve it.
If there's a lot of boilerplate, then we should condense that to something else.
Unfortunately, with the way these models are currently trained, they default to solving the same problem in multiple ways depending on the position of Jupiter and the Moon (apparently).
Unlimited lives and the ability to walk through walls is great fun for a bit. But also, you never actually played the game and it kinda ruined it for you, for all time.
You’ve seen the outcome, you solved nothing, learned nothing, and there’s zero reason for you to ever be proud of it.
The outcome isn’t yours, it’s the chatbots. Maybe you lie to yourself a bit… but you were barely necessary.
> Why do some software engineers love AI and some hate it?
n=1 but i'd say 3 aspects for me:
1. its forced on me at $job; its just a tool so let me use it when i need it and stop making my work-life miserable with childish tokenmaxing leaderboards
2. co-workers who send low-effort low-quality pr's that introduce tons of complexity and waste everyone's time and that they cant answer basic questions about because they no longer know how it works
3. the absolute cult-like manic behavior with some people around "ai"... yes its fun and interesting and cool tech so please stop treating it like a religion ffs
It’s because there always were two types of engineers and the difference was never clear until this technology existed. Some love the craft, and some love the results.
It's a Skinner box of productivity. Of course it's polarizing.
My own enthusiasm varies wildly day to day. I've been sick of squinting at punctuation marks and opening sequences of of tabs to trace through annoying abstraction layers for a long time; so I'm really excited to see those activities effectively automated away. But the same tools enable some really bad behavior (in myself and others), which really gets me down.
It's not hard to observe what the tools and systems can do. It's impressive. But I suspect for some the trade-off is not worth it based on their principles. No amount of disbelief or encouragement will change that.
There are a lot of negative Nancy types right now. They're just really loud and whiny. They're mourning the death of a world where they're "special" and powerful very specific ways. I feel them and have some empathy, and even some sympathy. I've been through a similar loss of status and a curtailment of the future I thought I could expect. But I picked myself up and kept going and adapted, so my sympathy runs out after listening to it for awhile.
That's not to say that there aren't problems in this world and that some gnashing of teeth isn't warranted - there really are issues, even with AI, but the malcontents have never been louder in my life. Outside of tech in the rest of society, many people haven't realized that the world has basically broken since 2016 and a lot of people are finally mourning the revolution in politics that we've lived through too. It really hasn't hit how tumultuous the last decade has been for most people yet.
I was "fortunate" in that I went through a life altering tragedy about that time so I got a little bit of perspective about how replaceable I was a bit before all these guys did. I realized how short life was, and how messed up things can get and how "the system" doesn't give a rats ass about you if you can't produce. I learned that viscerally, so perhaps to my detriment, I'm like the guy in the meme, "first time?" But these doomers and ai-haters and malcontents are mourning I think. In order to feel important and special again they rail against their replacement. I get it, I am still mourning the death of my old career. Some of these guys are realizing that they can be outdone by a machine for the first time in their lives. White collar worker types who thought "knowledge work" was safe and uniquely human are mourning at their own new found mediocrity. They say they can "do it better!" and maybe they can, but that doesn't matter - they're realizing that "doing it better" is not what is required. The people who don't want to use the new tools will be like people opposing the steam engine. They may not remember that John Henry died trying to beat the steam engine - I think that's the part they may have forgotten.
No, the loud irritation and frustration is a blend of a lot of things in my mind. But largely, what I see is a bunch of people who thought they were special and smart and unreplaceable are realizing that they're just as replaceable as the rest of people. They're mourning. Marxists call this alienation if I remember my Marx.
1. In some areas AI is extremely proficient, in others it's "two plus two equals three". Your experience with AI will highly vary depending on how knowledgeable it is about the particular problem you're facing. It's also a skill on itself how to talk to AI, just like "googling" used to be.
2. AI allows people to 10x things. If your organization has a healthy engineering culture then I assume people don't send for review shit like "change constant into hardcoded value" and AI-generated PRs are checked to fit the broader design, but if your organization was already full of idiots, then they produce 10x the output. Good luck trying to survive that.
I'm sitting at about a decade of experience and it feels equally bad here. Honestly right now I'm mostly waiting for either AI to blow up and companies to scale back massively or for other engineers to deskill themselves into oblivion so that skilled engineers get the edge again.
If neither gambit pay out then I'll just go find some other career and keep software as my hobby. I'm not going to let this billion dollar industry ruin the thing I enjoy.
In another decade I expect the processes and procedures will catch up.
We're at that awkward time where there is still an expectation to fill out JIRA tickets, but it is possible to ship multiple features at once in less time than the planning meeting takes.
As the models improve, the slop will reduce.
As the humans improve, the processes and procedures will change to match the new paradigm, whatever it becomes.
>I’d love to find a corner of the world where this hasn’t happened yet [...]
Start one?
There's definitely a market for software that doesn't give off the corporate, mass-produced, one-size-fits-all energy. 37signals famously made quite a business out of it.
I can't deny this is true, but it hasn't made me hate my job. More than anything, I'm trying to figure out how to thrive in a very different environment. I've definitely realized that sitting there and handcrafting my code to try to make it perfect isn't what my employer is going to want; they want a balanced trade-off. So, I need to find a good split in the middle where I can still add value by using my experience and skills to shape good quality, maintainable code, but I also am trying to use LLMs in places where they are doing a good job. The quality of the generated code, sans the unbelievably bad English prose, has gone up a fair bit, making me wince a bit less about it.
But, the sentiment about drowning in slop, well. Yeah kind of. I am not sure the polite way to tell people they should be thinking for themselves rather than just repeating what an LLM told them.
I absolutely use LLMs to assist in reviewing my own code as well as others, but I am always using my own judgment and speaking in my own voice. I will never copy-paste an LLM comment as if I wrote it, and I don't think even with a proper disclaimer that I'll ever copy-paste an LLM comment that I don't understand enough to confirm and rephrase on my own - instead, I use the LLM insights as a starting point. If I don't understand them, I dig deeper. If I disagree with the comment, I disregard it. And finally, if I understand it fully and agree with it, then I bring it up in code review, in my own voice.
I'm a little more lax when it comes to LLM generated code. A lot of test suites are already kind of a bit pointless thanks to the flawed prioritization of code coverage as a metric (it isn't a bad one generally, but there are cases where it is tragically bad, like when the code you are testing is effectively a DSL and the assertions are restatements of the DSL's contents...) and even when it's not, LLMs are often useful for generating decent test suites. Still a good idea to read them, but I give LLM-generated tests less attention and manually exercising code more attention: it seems like a good tradeoff to get a productivity improvement from LLMs.
To me the biggest sin is using LLMs or generative AI and pretending it is your own human expression. Please use your own words. If that's too much effort, I'm afraid I don't really want you working where I work or posting where I post, just for the sake of everyone's sanity. All of your LLM-assisted blog posts read like absolute shit and I'm tired of all of the excuses for it.
After we get through this slop phase, I think software engineering won’t be about code at all, if it even exists as a profession. Feels like the beginning of the end for the craft.
No way. It's simply another layer of abstraction. You don't code in binary, or assembly, or C, or vanilla JavaScript anymore.
Eventually "coding" will simply be prompting skill with the wisdom of architectural decisions.
That's also one way to describe what it's like to code with React et al these days, anyway. Component/hook selection skill with the wisdom of architectural decisions.
People code in assembly and c and vanilla JavaScript all the time. You may not, but none of those are even that niche of skills. I’ve even decoded machine code from binary (well hexadecimal, but a raw memory dump) by hand a few times when I didn’t have a disassembler handy. Layers of abstraction don’t prevent the need to understand the layer below, they just reduce the number of times it is necessary, which may allow delegating that knowledge to a smaller pool of people.
Assembly doesn’t exactly map to in 1:1. x86’s mov eax, ebx is the classic example that has two ways of being encoded. Not to mention sections, labels and all the other fancies.
There has always been some level of misalignment between the (beauty of high) quality of products made by craftsmen and the value of these products by whoever consumes them.
If you zoom out and look at other industries, we've seen this before many many times: Fast food completely commoditized the food industry. There are still extremely skilled people making the "highest quality" food. For example those at michelin star restaurants, these businesses typically don't make money by selling food anymore, they stay around for other reasons (hotel needs a fancy restaurant with a famous chef). We've seen the same when it comes to many other products: toys, furniture, most electronics, etc.
Nobody can swim against the forces of capitalism here, just not enough people care about high quality hand crafted software (the only people that really do are people right here in this thread hand crafting software). Sure there will be some corners of the economy where people doing everything by hand will keep their head above the water.
Think of it this way: back when people were sending letters to each others and responses took weeks, people (non professional writers) put a lot of thought into writing these letters. I'm sure if you show these people the average (non AI) emails we've been sending each other the last few decades they will complain about all the slop too (including how we all converse to each other right here). But you can definitely argue that this exponentially increased communication and sharing of ideas has outweighed our decreased ability to write properly (in self defense: I'm not a native english speaker).
This obviously sucks for those who care about high quality hand crafted software, but this is going to open the floodgates in terms of the accessibility of software development. And it's yet to be seen whether this is going to take all our jobs away or not. What's very much true (like the article says) is that the future job of software dev is going to look different, and the change is coming fast.
How much of modern software was slop before AI? Is this really something new? I argue it's been happening in many companies since at least 2010. Made with good old fashioned humans and some help from ZIRP. Remember that time I worked at Twitter?
SQLite is the most popular database in the world. It's maintained by 3 people. There's hope. AI is a great tool that's here to help you if you want, but at the end of the day, the output matters and it's quality not quantity. Don't work for people who don't agree.
With all due respect, this is a bit disingenuous coming from you.
GitHub's exponential growth in number of commits and PRs answers your question.
Before AI, if you wanted to contribute to OSS, you had to have _some_ idea of what the code did. At least enough of an idea to compile it so that you could test your changes.
That was the bar. Sure, lots of low quality PRs existed, but that gate kept the influx somewhat manageable.
Also, the diffs were a lot smaller, as bigger diffs meant bigger effort, a risky gamble for a PR that might not get merged. You've lived that life, so you get it.
Post AI (post Opus, really), any hooligan with $200/mo to burn can "land" a Heisenberg sized PR into any project with green tests without having the slightest bloomin' clue what their diff does or how the codebase they're integrating into works. That's impossible for humans to keep up with.
For every SQLite cathedral, there are a hundred corporate projects whose employers are mandating 100% AI generation with manual PR/MR merges.
Software is solved. Significant amount of code written (>90% of engineers) wrote slop. And it would get merged. Overall - both floor and ceiling of quality of software has definitely been raised. Just that it's had a labor scare and impact.
Before it needed you to jailbreak a console. Today point frontier at a console, and it could also figure it out. The console folks also can do that before release and ensure it's unbreakable.
Now that software is solved, we are faced with the philsophical necessity of our vocation.
Yup, just a problem of a misplaced comma I think.Let me rephrase it : "AI is used for work, but my website, and all the content in it, is entirely written by hand."
I wonder why your comment gets upvotes until getting to the top.
Our brains’ initial parse of that sentence, while sensible and probable, is incorrect. That is, the mind really wants to interpret “...for work, my website, and all...” as a list, but that leaves a dangling clause!
"While I may use AI for work, my website and all the content on it is entirely written by hand."
I don't think the original syntax is incorrect exactly, but too many commas in a sentence can make it harder to parse, which is why style guides often warn about it and advise thinking of certain commas as "optional."
30 years in the industry for me. It’s been a wild last few years watching this transformation. Like the OP I find it wholly unpleasant and I also can’t deny the productivity boost. I’m very glad I’m nearly ready for retirement and I look forward to watching this “progress” from a comfortable distance.
In all sincerity, what do you mean by wholly unpleasant?
25 years in my case, by the way, and I have found this to be the most liberating and creativity-boosting period of my career. And it’s not even close. I’ve written code in more languages in the past few years than in any other period. I’m finishing more projects than ever before. I’m learning faster than ever before. I’m enjoying programming more than ever before.
And to be clear, I don’t use AI for anything other than as a pair programming partner, or to build single-use scripts. I agree that full-blindfold vibe coding is unpleasant, it’s like getting into a debate with a forgetful and emotionless monkey paw. Skip the vibe coding, just let AI be a helper.
> In all sincerity, what do you mean by wholly unpleasant?
“Wholly” was too strong a word now that I think about it.
But I’ll give two main things I find unpleasant.
One: Normally I like working with other people. There is nothing more satisfying than collaborating on a complex problem with smart and conscientious colleagues. However, the bad experiences are now amplified:
- a random colleague gets sent down a wild gooose chase of an LLM claiming there is an issue with something I wrote. It’s a full blown hallucination because it found a confluence page which mentioned me and just decided to connect things together.
- another colleague is suddenly empowered with being able to vibe code websites and is now copying and pasting my replies into an LLM and pasting the LLM back at me over Slack.
- a colleague gives a quick drive by vibe coded PR to add a feature into something I own. It reimplements the same business logic that is already done elsewhere. It takes me more energy to explain all this than just do it myself.
There are dozens more examples. In isolation I can shrug each of these off, but it’s draining. Large organisations have become more “agile” with local optimisations and missing the bigger picture.
Two: while I agree that everything is getting done faster and I do get satisfaction out of that, I’m a deep in the weeds technical person. I don’t have it in me to be a big picture person or a people leader. I love having to think about algorithms, data structures, schemas, etc. While I can use AI has a pair programmer, it’s doing a lot of the thinking for me and it’s usually faster. So yes it makes me a better engineer, no I don’t enjoy not thinking as much. I don’t enjoy shifting solely to a higher level of abstraction. Maybe that makes me a bad engineer, but I cannot change how I feel about it.
That is understandable. It’s bad enough dealing with vibe slop that you personally asked for, I can barely imagine how bad it would be having to disentangle vibe slop when you weren’t even the one writing the prompts.
I strictly avoid allowing AI to change the level of abstraction I program in. Defining and orchestrating the architecture of an application is the most fun part anyway — quite apart from being the most important when others are touching your code, whether meat bags or LLMs.
> Skip the vibe coding, just let AI be a helper.
This I think will explain the differences in experience in industry. As pressures increase, control and power moves away from developers who have historically had a pretty strong position to dictate how they work.
Not everyone is going to be able to use AI as just a tool. The reality I have seen is that AI has sped the time-to-pr up for those who don't care what they ship, so that gets baked into estimates and expectations.
Eventually those working carefully with AI will be like the carpenter still using hand tools while the shop is operating CNC machines. The business can't afford the craftsmanship, no matter how right the craftsman is to point out that their work is better.
This is why I love AI as an enabler for myself personally, but still think it's going to ruin the experience of being in the industry.
> Not everyone is going to be able to use AI as just a tool. The reality I have seen is that AI has sped the time-to-pr up for those who don't care what they ship, so that gets baked into estimates and expectations.
> Eventually those working carefully with AI will be like the carpenter still using hand tools while the shop is operating CNC machines. The business can't afford the craftsmanship, no matter how right the craftsman is to point out that their work is better.
The analogy doesn't work. CNC machines can be faster and better than a guy with hand tools. AI isn't like that.
What you need is some other race-to-the-bottom situation, because that's what AI is.
I'm with you up to the point where you compare AI to CNC, because AI is the polar opposite of a CNC machine. People wouldn't have nearly as much of a problem with it if that were the case.
AI as helper is basically a better google search, which is not much different than what we did before AI (copy paste from stack overflow)
That’s not been my experience. Not even remotely like that. I was never much of a stack overflow block copier. AI lets me do rapid refactoring without messy search and replace. AI lets me rip through logical pinch points without pulling out a whiteboard. And I couldn’t have ever “stack overflowed” my way to diving into a project in a brand new language.
> And I couldn’t have ever “stack overflowed” my way to diving into a project in a brand new language.
It's a very tiny project, but I dived straight into a new project in a new language completely by hand this month, precisely because I'm miserable and exhausted from my job requiring me to drive a bullshit machine instead of solving problems by thinking.
Getting a few minutes in the evening to actually program, and learn new things as I do it, has been crucial to maintaining any sanity at all in this brave new world of unending heaps of slop.
I wish I had that kind of effortless motivation.
Learning any language involves internalising a massive pile of arbitrary syntax / core library knowledge. I find it flow-destroying and demotivating to be continually hampered by having to look up silly little things like how to get the length of a string, or how to work with dates. Being able to use AI to instantly turn a line of pseudo-code into a line of real code is not just great for productivity, it teaches me the language faster than any way I've experienced before.
My pre-AI coding style has always been to write terse pseudo-code first, just so I can map out core logic, what I'm iterating over, and what the meat of the routine will do. I formatted this pseudo-code as comments, and then treat them like headers, where I write the real code underneath. AI tab completion has made this way of coding insanely more productive, and gives me an incentive to write better pseudo.
(I also don't mind getting AI to write a whole page at a time, especially when it's a slab of uncreative boilerplate or glue code. AI routinely does a perfect job of smashing that out. But I will always pick through it line by line, renaming and rewriting in my personal style.)
the people I know who hate AI have a bizarre and unrelatable love for the pure math aspect of software engineering - the elegant software architecture, the efficient programming languages. the people who only care about getting stuff done are loving AI but people who spent their life learning how to properly craft high quality software are weeping - as they should be - now they know how kasparov felt
There is room in this world for Mcdonalds and Michelin Chefs.
I would also take your comment with a grain of salt. If the people you are talking about are javascript developers or people who do leetcode in interviews but never write that kind of code on the job, they are probably delusional. Ive seen many people call it a “craft” and what they produce is nothing of the sort.
If you really are good, you’ll still be in demand where it matters.
that is so true in fact I have only heard a few people say that actually, most say it more in theory than practice. Because in practice I have always been asked to solve pretty simple and boring problems far removed from the Dijkstra algorithms i did in college. i never used a graph data structure in my entire life lol
[dead]
I've compared to cooking a meal yourself.
Vs ordering delivery.
Cooking for you and your friends is satisfying as a craft and labor of love, as well as being experience. There is enjoyment to be gained from the process.
Compared to delivery, You may get the food quicker/easier. But for most people who cook it was never about that. There are certain people that enjoy generating as much food as possible. Some might call that gluttony or greed, over-indulgence, or in it for the wrong reasons. Perhaps these two groups of people have fundamentally different motivations. Try telling a chef that he should stop cooking and just order the food as delivery.
For a hundred years software was inscrutable enough to normies that you could be an artisan. But most professions haven't had that luxury for a long, long time. Try making and selling pretty much anything else you built by hand.
Now it's software people's turn to feel the pain of being a starving artist and watch as your attractive friends with no skills and a social media presence "make it" with their genius.
We haven't even begun to feel the weight of it yet.
There are cabinet makers who still make pieces by hand with hand tools. They charge whatever they want and do well. Not everything is Ikea.
Kudos to the lucky few artisans that the modern economy will support, but becoming a stocker at Ikea will probably be more lucrative than picking up a saw and plane.
Must be nice for all six of them.
And yet nearly all cabinets are not made by hand...
What doomerism. I really don't see it.
Slop has always been cheap. Now it's even cheaper. But software that actually fucking works AND does what you want is still expensive as hell.
>But software that actually fucking works AND does what you want is still expensive as hell.
Skilled craftsmen said the same thing, and yet everyone seems to prefer $1 Temu slop that breaks in a year.
Furthermore, software runs the world. Never before have we had such a chance to break the chains.
No it isn’t. If you don’t care about stuff like security or user friendliness you can do most of what you want through simple shell scripts probably.
I remember the same at the advent of desktop publishing
I anticipate and welcome the market price of slopware dropping to zero, given that it’s now in infinite supply. Too much talent has been cohabiting with SO copypasters, MBA idiots, and management dorks for too long, time to break up.
My org has restructured to gear up for reducing engineers' necessary skills
They've changed our job titles from 'Engineer' to 'Developer'.
Power (in the form of talking to business owners, organizing work, setting engineering direction) has been centralized. We had 6 engineering managers now we have one 'Director'.
I don't think I've solved a real problem in 8 months.
I think this is just a moment in time. People are spending billions of dollars to figure out how to make this AI stuff work better. A lot of the smartest people in the world are working full time to improve things.
Give AI a few years and see how you feel after people have made the AI and the tools to use AI even better.
Why do some software engineers love AI and some hate it?
I've got senior engineers (20+ yoe) who have never been having more fun and then some who feel like OP here.
Why is it so decisive? There's no other tool (not even emacs) that's caused this sort of division.
"software engineer" covers a wide range of responsibilities. some engineers spend all their time contributing to the physics in a massive graphics engine. some spend most of their time as the sole maintainer of a web api that mostly plumbs together a bunch of services and provide data to UIs. some are frequently spitting out new services while other are maintaining 10 year old legacy codebases. the work we need to do, the tradeoffs we need to make, its just so vast.
now couple that with the wide range of variety (and dysfunction) that come from the business and organization. being a dev for a company which sells software is a whole different beast than being an in-house dev for a company which sells other products. startup, big org, old org, new org, strike team, the list goes on.
finally, engineers enjoy different aspects of building software more than others. the puzzle, the crafting, the api, the data structure, the architecture, solving end user needs, so many facets to what makes it enjoyable as a career.
this is a big reason why ai discourse online is so uneven and often unhelpful. were all assuming too much about what being a software engineer is; forgetting that my day-to-day can be wildly different than yours.
a lot of ai speedup comes from effective delegation of work. i do it, but i don't like it. it actively makes me feel tired in a way i don't feel when i do the work myself, or when i mentor and grow my team to do the work.
many other devs don't feel the way i do. some suddenly have these ai tools that make them feel more empowered and energized and excited.
llm's are genuinely a new computing paradigm because of their nature: plain human language as the interface. this is different enough that mapping our past computing concepts (like the evolution from assembly to C) may not hold as well as seem they should.
this all digs deep into who we are as individuals with specific desires, career history, goals, a specific role at a specific company. the part that's fucking beautiful and unique and human.
But if the aggressive industry-wide layoffs aren't enough of a clue, these giant ass companies (and the ai gatekeepers driving this shift) are not compatible with individual humans.
i dont mind llms as a tool, but im done with the perverse level of greed and inhumanity they seem to inspire in corporate leaders.
Some people never really liked writing code. They liked the result and the paycheck much more. Those folks are having the time of their lives now. Well, until the fall happens and software development is assmebly-lined.
I have always liked coding (started in the 80s). But I got bored having to deal with trivialities (spending life on fixing commas) and increasing accidental complexity (having to memorize tons of APIs). Now LLMs deal with that crap and I can apply stuff I read in research papers and such, with much lower threshold.
> But I got bored having to deal with trivialities
For me, at least (with probably half the experience) the trivialities are important for making me understand the design, so I can improve it.
If there's a lot of boilerplate, then we should condense that to something else.
Unfortunately, with the way these models are currently trained, they default to solving the same problem in multiple ways depending on the position of Jupiter and the Moon (apparently).
It’s the NES Game Genie.
Unlimited lives and the ability to walk through walls is great fun for a bit. But also, you never actually played the game and it kinda ruined it for you, for all time.
You’ve seen the outcome, you solved nothing, learned nothing, and there’s zero reason for you to ever be proud of it.
The outcome isn’t yours, it’s the chatbots. Maybe you lie to yourself a bit… but you were barely necessary.
1. its forced on me at $job; its just a tool so let me use it when i need it and stop making my work-life miserable with childish tokenmaxing leaderboards
2. co-workers who send low-effort low-quality pr's that introduce tons of complexity and waste everyone's time and that they cant answer basic questions about because they no longer know how it works
3. the absolute cult-like manic behavior with some people around "ai"... yes its fun and interesting and cool tech so please stop treating it like a religion ffs
just my 3c
I agree and would add to that from my experience:
1. Too many people think that having lots of text makes something impressive, really it's just inconsiderate and nobody is reading it all.
2. Helping people often feels pointless because I can tell I'm just getting a cut/paste AI response back.
It’s because there always were two types of engineers and the difference was never clear until this technology existed. Some love the craft, and some love the results.
It's a Skinner box of productivity. Of course it's polarizing.
My own enthusiasm varies wildly day to day. I've been sick of squinting at punctuation marks and opening sequences of of tabs to trace through annoying abstraction layers for a long time; so I'm really excited to see those activities effectively automated away. But the same tools enable some really bad behavior (in myself and others), which really gets me down.
It's not hard to observe what the tools and systems can do. It's impressive. But I suspect for some the trade-off is not worth it based on their principles. No amount of disbelief or encouragement will change that.
There are a lot of negative Nancy types right now. They're just really loud and whiny. They're mourning the death of a world where they're "special" and powerful very specific ways. I feel them and have some empathy, and even some sympathy. I've been through a similar loss of status and a curtailment of the future I thought I could expect. But I picked myself up and kept going and adapted, so my sympathy runs out after listening to it for awhile.
That's not to say that there aren't problems in this world and that some gnashing of teeth isn't warranted - there really are issues, even with AI, but the malcontents have never been louder in my life. Outside of tech in the rest of society, many people haven't realized that the world has basically broken since 2016 and a lot of people are finally mourning the revolution in politics that we've lived through too. It really hasn't hit how tumultuous the last decade has been for most people yet.
I was "fortunate" in that I went through a life altering tragedy about that time so I got a little bit of perspective about how replaceable I was a bit before all these guys did. I realized how short life was, and how messed up things can get and how "the system" doesn't give a rats ass about you if you can't produce. I learned that viscerally, so perhaps to my detriment, I'm like the guy in the meme, "first time?" But these doomers and ai-haters and malcontents are mourning I think. In order to feel important and special again they rail against their replacement. I get it, I am still mourning the death of my old career. Some of these guys are realizing that they can be outdone by a machine for the first time in their lives. White collar worker types who thought "knowledge work" was safe and uniquely human are mourning at their own new found mediocrity. They say they can "do it better!" and maybe they can, but that doesn't matter - they're realizing that "doing it better" is not what is required. The people who don't want to use the new tools will be like people opposing the steam engine. They may not remember that John Henry died trying to beat the steam engine - I think that's the part they may have forgotten.
No, the loud irritation and frustration is a blend of a lot of things in my mind. But largely, what I see is a bunch of people who thought they were special and smart and unreplaceable are realizing that they're just as replaceable as the rest of people. They're mourning. Marxists call this alienation if I remember my Marx.
1. In some areas AI is extremely proficient, in others it's "two plus two equals three". Your experience with AI will highly vary depending on how knowledgeable it is about the particular problem you're facing. It's also a skill on itself how to talk to AI, just like "googling" used to be.
2. AI allows people to 10x things. If your organization has a healthy engineering culture then I assume people don't send for review shit like "change constant into hardcoded value" and AI-generated PRs are checked to fit the broader design, but if your organization was already full of idiots, then they produce 10x the output. Good luck trying to survive that.
I'm sitting at about a decade of experience and it feels equally bad here. Honestly right now I'm mostly waiting for either AI to blow up and companies to scale back massively or for other engineers to deskill themselves into oblivion so that skilled engineers get the edge again.
If neither gambit pay out then I'll just go find some other career and keep software as my hobby. I'm not going to let this billion dollar industry ruin the thing I enjoy.
In another decade I expect the processes and procedures will catch up.
We're at that awkward time where there is still an expectation to fill out JIRA tickets, but it is possible to ship multiple features at once in less time than the planning meeting takes.
As the models improve, the slop will reduce. As the humans improve, the processes and procedures will change to match the new paradigm, whatever it becomes.
>I’d love to find a corner of the world where this hasn’t happened yet [...]
Start one?
There's definitely a market for software that doesn't give off the corporate, mass-produced, one-size-fits-all energy. 37signals famously made quite a business out of it.
Germany is still there.
I can't deny this is true, but it hasn't made me hate my job. More than anything, I'm trying to figure out how to thrive in a very different environment. I've definitely realized that sitting there and handcrafting my code to try to make it perfect isn't what my employer is going to want; they want a balanced trade-off. So, I need to find a good split in the middle where I can still add value by using my experience and skills to shape good quality, maintainable code, but I also am trying to use LLMs in places where they are doing a good job. The quality of the generated code, sans the unbelievably bad English prose, has gone up a fair bit, making me wince a bit less about it.
But, the sentiment about drowning in slop, well. Yeah kind of. I am not sure the polite way to tell people they should be thinking for themselves rather than just repeating what an LLM told them.
I absolutely use LLMs to assist in reviewing my own code as well as others, but I am always using my own judgment and speaking in my own voice. I will never copy-paste an LLM comment as if I wrote it, and I don't think even with a proper disclaimer that I'll ever copy-paste an LLM comment that I don't understand enough to confirm and rephrase on my own - instead, I use the LLM insights as a starting point. If I don't understand them, I dig deeper. If I disagree with the comment, I disregard it. And finally, if I understand it fully and agree with it, then I bring it up in code review, in my own voice.
I'm a little more lax when it comes to LLM generated code. A lot of test suites are already kind of a bit pointless thanks to the flawed prioritization of code coverage as a metric (it isn't a bad one generally, but there are cases where it is tragically bad, like when the code you are testing is effectively a DSL and the assertions are restatements of the DSL's contents...) and even when it's not, LLMs are often useful for generating decent test suites. Still a good idea to read them, but I give LLM-generated tests less attention and manually exercising code more attention: it seems like a good tradeoff to get a productivity improvement from LLMs.
To me the biggest sin is using LLMs or generative AI and pretending it is your own human expression. Please use your own words. If that's too much effort, I'm afraid I don't really want you working where I work or posting where I post, just for the sake of everyone's sanity. All of your LLM-assisted blog posts read like absolute shit and I'm tired of all of the excuses for it.
After we get through this slop phase, I think software engineering won’t be about code at all, if it even exists as a profession. Feels like the beginning of the end for the craft.
No way. It's simply another layer of abstraction. You don't code in binary, or assembly, or C, or vanilla JavaScript anymore.
Eventually "coding" will simply be prompting skill with the wisdom of architectural decisions.
That's also one way to describe what it's like to code with React et al these days, anyway. Component/hook selection skill with the wisdom of architectural decisions.
People code in assembly and c and vanilla JavaScript all the time. You may not, but none of those are even that niche of skills. I’ve even decoded machine code from binary (well hexadecimal, but a raw memory dump) by hand a few times when I didn’t have a disassembler handy. Layers of abstraction don’t prevent the need to understand the layer below, they just reduce the number of times it is necessary, which may allow delegating that knowledge to a smaller pool of people.
The meaning of code will change. Maybe it will get a new name.
Software hasn't been about "real code" (asm) for a long time; yes, this was a common opinion when HLL's and compilers were starting.
> “real code” (asm)
You meant actual bytecode?
Assembly doesn’t exactly map to in 1:1. x86’s mov eax, ebx is the classic example that has two ways of being encoded. Not to mention sections, labels and all the other fancies.
That's correct but a bit nitpicky. We could talk about punchcards too, but I'm not old enough to credibly make that reference :)
:-)
I could be wrong, but AFAIK, switchboards^W patch panels were the OG programming method.
Real programmers use butterflies (mandatory xkcd reference) https://xkcd.com/378/
Cam shafts predate them.
There has always been some level of misalignment between the (beauty of high) quality of products made by craftsmen and the value of these products by whoever consumes them.
If you zoom out and look at other industries, we've seen this before many many times: Fast food completely commoditized the food industry. There are still extremely skilled people making the "highest quality" food. For example those at michelin star restaurants, these businesses typically don't make money by selling food anymore, they stay around for other reasons (hotel needs a fancy restaurant with a famous chef). We've seen the same when it comes to many other products: toys, furniture, most electronics, etc.
Nobody can swim against the forces of capitalism here, just not enough people care about high quality hand crafted software (the only people that really do are people right here in this thread hand crafting software). Sure there will be some corners of the economy where people doing everything by hand will keep their head above the water.
Think of it this way: back when people were sending letters to each others and responses took weeks, people (non professional writers) put a lot of thought into writing these letters. I'm sure if you show these people the average (non AI) emails we've been sending each other the last few decades they will complain about all the slop too (including how we all converse to each other right here). But you can definitely argue that this exponentially increased communication and sharing of ideas has outweighed our decreased ability to write properly (in self defense: I'm not a native english speaker).
This obviously sucks for those who care about high quality hand crafted software, but this is going to open the floodgates in terms of the accessibility of software development. And it's yet to be seen whether this is going to take all our jobs away or not. What's very much true (like the article says) is that the future job of software dev is going to look different, and the change is coming fast.
> Good luck standing out universe filled with AI slop apps.
This was written sarcastically, but I'm optimistic. The more crap that's out there, the more refereshing and noticeable it is when something is good.
How much of modern software was slop before AI? Is this really something new? I argue it's been happening in many companies since at least 2010. Made with good old fashioned humans and some help from ZIRP. Remember that time I worked at Twitter?
SQLite is the most popular database in the world. It's maintained by 3 people. There's hope. AI is a great tool that's here to help you if you want, but at the end of the day, the output matters and it's quality not quantity. Don't work for people who don't agree.
With all due respect, this is a bit disingenuous coming from you.
GitHub's exponential growth in number of commits and PRs answers your question.
Before AI, if you wanted to contribute to OSS, you had to have _some_ idea of what the code did. At least enough of an idea to compile it so that you could test your changes.
That was the bar. Sure, lots of low quality PRs existed, but that gate kept the influx somewhat manageable.
Also, the diffs were a lot smaller, as bigger diffs meant bigger effort, a risky gamble for a PR that might not get merged. You've lived that life, so you get it.
Post AI (post Opus, really), any hooligan with $200/mo to burn can "land" a Heisenberg sized PR into any project with green tests without having the slightest bloomin' clue what their diff does or how the codebase they're integrating into works. That's impossible for humans to keep up with.
For every SQLite cathedral, there are a hundred corporate projects whose employers are mandating 100% AI generation with manual PR/MR merges.
Software is solved. Significant amount of code written (>90% of engineers) wrote slop. And it would get merged. Overall - both floor and ceiling of quality of software has definitely been raised. Just that it's had a labor scare and impact.
Before it needed you to jailbreak a console. Today point frontier at a console, and it could also figure it out. The console folks also can do that before release and ensure it's unbreakable.
Now that software is solved, we are faced with the philsophical necessity of our vocation.
[flagged]
It's strange to see this on the site:
> While I may use AI for work, my website, and all the content on it, is entirely written by hand.
I mean, if you're tired of the slop and what AI is doing to the industry, why do you need to use it for a simple personal website?
I'm saying my site and everything on it is written manually.
I think they are saying they didn't use AI for it.
Yup, just a problem of a misplaced comma I think.Let me rephrase it : "AI is used for work, but my website, and all the content in it, is entirely written by hand." I wonder why your comment gets upvotes until getting to the top.
It is a great example of a garden path sentence.
Our brains’ initial parse of that sentence, while sensible and probable, is incorrect. That is, the mind really wants to interpret “...for work, my website, and all...” as a list, but that leaves a dangling clause!
The sentence is grammatical but confusing.
Or simply:
"While I may use AI for work, my website and all the content on it is entirely written by hand."
I don't think the original syntax is incorrect exactly, but too many commas in a sentence can make it harder to parse, which is why style guides often warn about it and advise thinking of certain commas as "optional."
Hes saying his site is written by hand