ES version is available. Content is displayed in original English for accuracy.
Advertisement
Advertisement
⚡ Community Insights
Discussion Sentiment
71% Positive
Analyzed from 13728 words in the discussion.
Trending Topics
#code#don#software#more#still#architecture#coding#data#where#years

Discussion (375 Comments)Read Original on HackerNews
I love being able to quickly bring out the program that is already running in my head without having to worry about the grind of typing it into a format that the compiler understands. Dealing with API names. Syntax. Language quirks. Library gotchas. A sizeable portion of my successful career as a software engineer was spent on the tiresome process of interacting with a text editor/IDE to get a program to do what I wanted.
I was there when people were still coding assembly. A slow torture where the simplest things took forever to get right.
Once I've mentally solved the problem, the fun is mostly over for me. Pure vibe coding is dull and unsustainable with current technology for all but the simplest systems; AI-assisted coding, on the other hand, rekindled my passion for computers.
I also prefer to drive cars with manual transmissions.
I'd say it probably depends on the kind of work you do - if the low level details are exciting then that's totally understandable. But if you're dealing with more rote CRUD work or soul sucking enterprise bullshit, then probably less so and the low level details are obstacles to getting things done, alongside sometimes unreasonable workloads.
I'm reminded of: https://www.stilldrinking.org/programming-sucks
> Every programmer starts out writing some perfect little snowflake like this. Then they’re told on Friday they need to have six hundred snowflakes written by Tuesday, so they cheat a bit here and there and maybe copy a few snowflakes and try to stick them together or they have to ask a coworker to work on one who melts it and then all the programmers’ snowflakes get dumped together in some inscrutable shape and somebody leans a Picasso on it because nobody wants to see the cat urine soaking into all your broken snowflakes melting in the light of day. Next week, everybody shovels more snow on it to keep the Picasso from falling over.
That said, AI will probably saturate most CRUD work first, which doesn't make for great job prospects.
Even those who work with CRUD apps need to know things like computational complexity of standard container types, and how to pick basic data structures or choose which basic algorithms to use. Otherwise you'll end up implementing things that have an unreasonably high computational cost that will rear its head at the wrong time.
> That said, AI will probably saturate most CRUD work first, which doesn't make for great job prospects.
I think so too. Today's AI models excel at makeshift plumbing. The boring CRUD jobs are the first ones to go with a prompt.
> That’s ok! The retro computing scene is delightful, full of people building and exercising old skills for the love of it.
Is anyone actually seeing a shift towards improved structure rather than more code, faster? We seem to be living in the Gatling-gun version of the picture John Carmack drew when modernity also ushered into precision marksmanship...
I'm making full-stack applications at the moment.
Like one of my personal projects is a sort of "middleware" for Godot, and it needs to be lean, precise and match certain rules, because it's meant to be used by many games, so I can't blindly trust AI to generate code for it, it'd be too sloppy,
BUT Codex reviews have been a great help in finding bugs that would have taken me ages to even notice on my own. Some of those AI findings helped me overhaul entire subsystems, still manually coded.
Yes. At work we recently finished a complete rewrite of the platform. The old codebase got abandoned and two new codebases got stood up. Previous stack was Phoenix LiveView and the new one is Phoenix API + Vue /w TypeScript. Zero code shared between the two. We took the opportunity to re-architect a lot of the core functionality and get rid of the tech debt that had been hounding us and killing our velocity for the past six years.
We finished the rewrite in two months. A little over 700k LoC total. 95% of it was planned, orchestrated and written by AI. We could have gotten it done faster, but we were well aware of the potential for slop and thus paid an absurd amount of attention to (and tokens for) code quality. For example, there is a 100% test coverage requirement in both server and client, combined with AI-driven review rules that say all tests must be non-vacuous, plus a ton of invariants enforced via deterministic checks. Everything from standard linting and formatting rules to AI-necessitated stuff like "comments cannot be more than five lines each" is in there. At the end of each week, we get together for ~30 minutes to review each bug that was fixed that week (there haven't been that many) and try to figure out if more deterministic checks can be added (or new ones extended) to prevent that class of bug from re-appearing. We actually have an Architecture epic with a dedicated Fable agent orchestrating all the initiatives and tickets in it and keeping track of improvements (and the occasional regression). So things like accessibility, usage of shared helpers, enforcement of common patterns, etc. are all kept track of.
The difference between the old codebase and the two new ones has been night and day. The new codebases, combined, are ~35% larger than what we had before, and yet there are way fewer bugs (we actually got suspicious at first and had to check to make sure our logging instrumentation was configured correctly). Performance is also stellar, features have been a lot easier to add and extend, and everything is a lot easier to find. When someone asks a question or has an issue we have a pretty good idea of what part of the codebase to look in and we're usually right.
It wasn't all unicorns and rainbows. Not everyone on the team was proficient with AI-driven development, so they had to be brought up to speed quickly and taught the tools and also what works and doesn't. Code reviews were also difficult and time-consuming. We had to deal with our anxieties about working in two new codebases none of us had authored much code in ourselves. What made all of it worse was that we were racing towards a deadline imposed by external factors so we all ended up working a lot of hours. It was essentially between getting it done this summer or waiting until next summer and we bit the bullet and did it. It absolutely would not have been possible without AI.
We're mid-way through a similar process at work. Rewriting a legacy app in a new language, with new architecture and new features.
And it's a mess.
We're at 10x loc (admittedly, the new programming language is more verbose than the old one), comments make no sense. Yes, we have ~100% coverage, but most of the tests are meaningless. The agent keeps removing our tests to replace them with tests that are easier to pass, breaking code invariants, removing all the engineered data structures and replacing them with stringly-typed code, etc.
And of course, given the number of LoC (and the fact that the agent rewrites so much code all the time), it's physically impossible that all of them were reviewed by a human being.
AI made it possible, insofar as upper management would never have greenlit the project without AI, but I can't escape the feeling that we're building on quicksands.
2 months of 80 hour weeks is 4 months of regular weeks. Can you clarify how many hours your team was putting in? And how large was your team?
This is why my current view in terms of LLM productivity gains are:
- debugging and triaging 5x
- refactoring when you have tests in place 3x
- greenfield where you have zero tests is about 1.5x
look, your application works, right? so it doesn't really matter what you or i think, and this is why AI matters. but this, your "100% test coverage" - that is pure slop. just 20 years ago, all the most popular software shipped with NO tests. are you getting it?
Focusing on data structures, architecture and algorithms is what competency in programming has looked like since forever. Building systems out of smaller pieces gets you there.
If your complaint above is that you were struggling with syntax and reading documentation, one might ask if you failed to progress past beginner levels, and now AI is just your cheat-code?
Also, are you implying that docs became better in the AI era?
yes, being able to bang out leetcode hard from head on an interview on paper matters so much... oh wait. it does not.
in the real world, outside of interview questions, it hardly matters. when it comes there, I'll optimizite it, but getting the first system up and running in a way I want is way more fun & challenging. need a lock free ringbuffer? I'll look up what's the latest way to build it. or just ask my AI.
That's about reciting standard data structures like stack and queues. I think parent is talking more about the design of primitives for the domain of the software. That requires creativity and insight.
Someone who says that programming is not about working at the level of about data structures and algorithms without LLMs raises red flags.
The datastructures already did the heavy lifting. The syntax was not something to struggle with, but it was the natural way to stick the bits together.
JavaScript for one never gave me this feeling, and I always felt that either the language, or the libraries, but something was always a struggle to overcome. (Python too... seriously, working with collections is a pain in the "pythonic" way for someone who has experienced LINQ... and for most line of business apps it is all about working with collections.)
Why? What makes you think your data structure design, architecture and algorithms are ever going to surpass AI in the near future?
You honestly can't see a (near) future where those 3 elements are done by AI, not by you?
That said, I think AI is still many years or decades away from completely replacing the Software Engineering profession. My kids are entering college right for a CS degree and that's what I tell them. I have skin in the game as I'm ultimately responsible for them.
I could be wrong, but anyone's opinion is at most an educated guess at this point.
That would be lovely.
It's sad that we're being forced to vibe code, though, because my day-to-day experience of that is that the agent does not respect the data structures I feed it, nor the architecture, nor the algorithms.
> Pure vibe coding is dull and unsustainable with current technology for all but the simplest systems; AI-assisted coding, on the other hand, rekindled my passion for computers.
Agreed.
M currently re-writing an app that I wrote years ago. All the issues came from data structures, queries, architecture that didn’t fit what emerged as the use case.
Now I can focus on those things and work far faster, and even ADJUST architecture, theorize about pros and cons of changes as I work … sometimes I find that some adjustments are easier than I thought.
The result is far faster development, and a more optimal result where I can stay focused on improvements / efficiency rather than random minutia.
Syntax isn’t a big deal. Names either. You can look them up. Remember them. Language gotchas are annoying and sometimes problematic.
To me, our job is understanding problems. And for me, understanding the problem involves wrestling with the code. I learn much from modelling problems in code, building theories, testing them.
Once an LLM system has generated some code I haven’t learned anything. Even when I read through the solution. It doesn't require the same activation of my brain. There’s nothing quite like working through the problem yourself.
LLMs definitely feel like they are draining my passion for computers. There were plenty of folks who checked out or were never truly passionate about programming. Now they’re louder than ever. “Nobody cares about code,” and, “optimizing is a waste of time.” Now we don’t even want to understand how it works, or whether it works at all. They repeat the lines their master have told them: get on board or get left behind.
I’m pretty sure I am risking getting, “left behind.” But I’m okay with that. The tech is truly the least interesting thing to me. If I don’t have a career in 10 years… oh well. I’ll still be programming.
I'll never let myself be left behind but the joy professionally of writing quality software is 100% gone.
Hadn’t good developers been focussing on those things, and other high-level modelling that relates the software system back to the underlying real world domain, for many years before the LLMs were in the picture?
I’d even say that it’s one of the most reliable markers of a more senior/experienced developer that their code reads like a clear and logical explanation of what the system does and why, with concerns well separated and minor details and technicalities abstracted away so they don’t clutter the rest of the code.
I would be interested to know what you mean by AI-assisted coding.
I've been coding for 50 years (40 professionally) and maintain several largish C++ code bases for commercial apps. There is no way that I am going to let an AI scan (train on), let alone edit, my code. But I do ask MSCoPilot questions, basically using it like turbo-charged StackOverflow. And I do get some value from that, even if it is often wrong. Is that what you mean?
"Walking on stilts made me taller"?
That exact sentence could have been said 20 years as well as 40 years ago. I don't know how you programmed pre-LLM, but line-by-line has long been a thing of the past, if it ever existed. I'm sure the folks creating the Apollo software were thinking a lot about data structures, software architecture and algorithms.
It all depends of course where the code sits between "low level mission critical code" and "high level throw-away code". every non-trivial project has code across that entire range.
E.g. the lower level the code, the more I want to get directly involved, and that may mean typing each line manually to get that code directly into my head (IME for that purpose, writing is better than reading - have that manually written code reviewed by LLM instead).
Of course that only works if you don't have a manager breathing down your neck who insists on prioritising implementation speed over quality ;)
Also you should try assembly coding with modern (non-LLM) tooling, it feels incredibly more productive than with the primitive tools on slow machines of the past.
Also:
> software engineers can focus on data structures, software architecture and algorithms.
Come on, this is was already "normal" decades before LLMs, that's why an entire zoo of high level languages was created which allow to describe a solution in a highly abstract (yet still precise) way. Replacing this high level problem specification in a programming language with a "sloppy" human language specification is arguably even a step back.
(also tbf, I'm writing this comment while sitting in a cafe while the LLM at home is busy coding a GL mocking library ;) (which is exactly the boring type of throwaway code which should be automated)
I see this a lot and I'm not sure why people don't think AI will be able to do this too. The self-play training that got them writing code can be used for this too.
Do you have examples of things that would be hard to train for? One that could be compensated for with changes elsewhere in the business process?
Or do you blindly trust what machine tells you at whatever time you are communicating with it?
Architecture I might give not needing line-by-line model. But I really doubt the same with data structures and algorithms. Those are in the end build from lines.
https://en.wikipedia.org/wiki/Edsger_W._Dijkstra#Use_of_tech...
AI would here be the word processor.
I prefer an AI that is good at data structures, architecture and algorithms. Then, finally, no more leetcode.
it's great.
I expect "a lot of people" understand perfectly well that that's where the joy comes from for you. Do you not understand that other people have different motivations?
I can write „you live, you die, get over with it, life is hard, love hurts” - it basically encodes all wisdom of countless poems, books. Yet I have seen many people getting that idea better when the knowledge of this simple truth is in a form of a story.
Conversely, if you write an algorithm using better structure, better data structures it makes a lot of difference.
A lot of people are bashing old practices, but from y standpoint, it always seems like a lack of proper (usage of) tooling to streamline the coding phase of building software.
Put another way: live coding, meta programming, high level abstraction, all have been possible for some 60 years now. Two generations! We don't need the monstrous amounts of accidental complexity involved in running dozens of GB in RAM for LLMs and all the "harness" apparatus, we have had from the right tooling for almost a century (!) now.
I bet thieves feel a rush when they rob a store. Does that also make it right?
AI-assisted coding isn't a thing. Why would anyone pay you to code when your competitor spends 1 minute spelling out a problem and doing the same thing for 59 more problems?
As far as I'm concerned coding is dead as a profession, now we are Harness Managers.
This is what declarative programming gives us, not what LLM-based generation offers.
> I love being able to quickly bring out the program that is already running in my head without having to worry about the grind of typing it into a format that the compiler understands.
Using natural instead of a formal language to get probabilistic results based on token fields is not bypassing arbitrary constraints of the compiler, it is dereliction of the responsibility to know and articulate precisely what you are specifying.
(I spent a few minutes checking, but couldn't find the original quote)
> Everyone who writes enthusiastically about AI already has the benefit of not having worked with AI
... because if you really do, and you actaully a capable developer, you become much less enthusiastic.
Anyway, definitely agree with your point, and let us also remember that it is our human output and expression which LLMs are trained on.
Have you been schooled in farming? Raising livestock? Milking cattle?
Does your ability to cook good food depend upon your ability to till soil and sow seeds?
I don't mean that in ass way but re: what other comments said:
> it feels like a rich getting richer scenario in all aspects of society
That's a problem with society, not technology.
Holding back technology won't fix society.
If tractors plowed reliably 95% of the time, but unless carefully monitored the other 5% of the time they would blow a big hole in the ground, it would be difficult to abandon your shovel entirely.
Pushing that analogy, AI is the equivalent of automating everything from tilling, growing, all the way to cooking. It is as if the human is involved at the beginning in specifying what they want, and at the end, in plating up the food and consuming the product. The next generation will have no clue about the entire farm-to-table chain.
It's not there yet, but rapidly making it a reality.
Also, there is no one "tech". Different pieces of technology have different levels of effect on the world, and different timelines in which the world can come to terms with it. AI is the thermonuclear weapon introduced to a musket world ... it came upon us suddenly, and instantly flattened the talent/merit based economy. Now everyone has access to the same exoskeleton; the difference between muscles is not important.
The second huge difference between AI (and ordinary tech) is that a literal handful of people are in control of its economics. That kind of power breeds fascism.
> That's a problem with society, not technology.
Semantics. The tech directly enables the incredible power imbalance, and helps seize the means of consensus and debate and reporting. There is no incentive/mechanism left to fix society. An advanced society like the US is weaponized against vaccines, and social media and AI are to blame.
uhmmm and what have y'all been doing to prevent fascism and wealth inequality up until the point -before- AI became a thing?
What did you do about the mandatory government IDs required to access the internet?
What did you do to reduce police brutality and unaccountability in the USA?
AI is the ONE thing that COULD give the common peasantry a chance.
..maybe that's why so many fires are being stoked against it.. *thinking emoji*
You're equating life skills to professional skills. I was not taught to milk a cow, but my milk comes from someone who was. The topic is whether software engineers in a professional context learned certain things about software.
Your milk likely comes from an automated milker machine..
No! And good thing I'm not a farmer!
The job of a SWE is to not produce the most sublime readable code with cute language bells and whistles that you can show off to your other programmer friends. Yes its fun to do and interesting, but the main value in writing code is to express your intent so you and other people that are working with you can actually build something of value.
Software has value to the people on your team reading it. The product that you create with your software has a far wider impact than just that. As such, there is for _sure_ optimization pressure on "professional software engineering" to be more productive and actually make the product better to use, faster, with more features users like. The user typically does not care that you used a new C++26 feature, as much as I enjoyed writing it for them.
If I can produce features for users faster and I can iterate on them faster, this is a boon to me. I can program by hand for fun all I want in my spare time, but if I want to produce value for someone else, it is economically infeasible for me to be a luddite, and I will simply be outcompeted. Previously you were outcompeted by smarter teams who out executed you (and who also worked more), and now you can be out executed by basically anyone using an LLM who actually understands that the end goal is making a product that is pleasant to use and actually has utility, not code that is pleasant to read.
You can be an "performative/artisanal programmer" just as you can do "performative/artisanal martial arts." Just know that there will not be a large market for it in the real world.
Does cooking food serve any purpose beyond mass producing food for restaurants to sell?
Well, yes? If you want to write code that isn't useful to anyone and just gives you warm fuzzies, go for it. I've done plenty of that. But it's exceptionally selfish to try to forbid technological improvements so that you can get paid to work exactly how you want to.
Does cooking food serve any purpose beyond mass producing food for restaurants to sell?
Should we ban industrial agriculture so that you can feel more proud of your rooftop garden?
how can one exist in modern society without being an exchange value in the capitalist political economy?
linux is where it is because it is able to be a critical part of said capitalist political economy. even if you want to be a FOSS contributor all your life, you need someone to figure out the "economy" part of it.
food is a false equivalence in this case.
The job value of an SWE is to maximize that profit. It doesn't matter if the product is better to use, faster, with more features users like - that's an early 20th century model of value production.
What matters is how much money the company can extract from its customers, and how little it can pay its employees. Use dark patterns, increase lock-in, and switch to a rental system with recurrent payments. Minimize employee benefits, require broad non-compete agreements, have long vesting periods and lay people off before its reached, or simply fire them and order the others to pick up the slack using AI.
If you want to write software meant to please the user, do that for fun in your spare time -- though remember that your employer still owns your IP, so it's not like you can create a market competitor.
Alas, the above was meant in sarcasm but is all too true.
The Luddites were not opposed to machines. They were opposed to bad labor practices, with machine-breaking as way of applying pressure on employers.
In the sense they were not opposed to all machines as a concept. They were definitely against machines they thought reduced their labor value:
"They wrecked specific types of machinery that posed a threat to the particular industrial interests in each region. In the Midlands, these were the "wide" knitting frames used to make cheap and inferior lace articles.[22] In the North West, weavers sought to eliminate the steam-powered looms threatening wages in the cotton trade. In Yorkshire, workers opposed the use of shearing frames and gig mills to finish woollen cloth.[23]"
Citations in
https://en.wikipedia.org/wiki/Luddites
What you say is true for modernized budō disciplines. They have very different purposes.
But this this is not what Musashi was concerned with. He was practicing kenjutsu (not kendo) / writing about hyōhō.
The primary criterion was absolutely murdering people as efficiently as possible in a life and death situation.
"The true Way of sword fencing is the craft of defeating the enemy in a fight, and nothing other than this"
As it happens, this was also the era when firearms had just been introduced to Japan. In 1575 Oda Nobunaga demolished the Takeda cavalry at the Battle of Nagashino, marking the first time firearms had been used at scale in Japanese combat, and in 1600 Musashi participated in the decisive Battle of Sekigahara where both sides used them extensively.
If it was still going on today, the warlords would be adopting drone warfare and vibecoded 3d printed cruise missiles.
The key for Nobunaga is "Ashigaru". Nobunaga gave the guns to the peasants. That also means that Nobunaga mass produced the guns to a level that no one else was doing.
Yes it was a technological brawl, but inadvertently it was one that worked with and uplifted the Ashigaru into a real combat force.
"We aren’t there yet, but carefully writing code completely by hand is moving from a -jitsu to a -do. "
IIRC Carmac has done judo (I'm not sure to what level).
Similar has already happened with martial arts, as OP mentions, and you've grown up with the new definition/focus not the original one.
That's a retroactively-applied justification to save the embarrassment for martial arts that don't make the cut for modern CQB.
I don't know how much weight your "just" is meant to carry, but I remember a culture of cope and excuses about why "my" flavor wasn't the winner of any MMA event.
But at least I got some exercise, strength, and flexibility out of it.
I think it's an interesting analogy, not to be dismissed so easily.
I don't see him saying the point is volume of code. I see AI generating code, and if I question it, it can justify design choices pretty well. I can give it bug symptoms, and it can find and fix the bug. Usually.
But yes, the analogy breaks down in the fact that I understand what it's saying and understand when it's wrong, because I learned it in the first place.
Or maybe it doesn't break down completely. If an MMA (AI) tells me to move in a way where I know I'll lose my balance, or over extend, I will say no, because of my previously acquired experience.
It's partly true, but where this logic gets stuck is software engineering, for both the cases.
Just telling the AI what to do won't get you to good software, especially when you want to use dozens of agents working in parallel, when you have something correctness sensitive, when you want the AI to try and solve a research problem you have a hunch about but not a concrete solution.
For example, the traditional best practice cycle of "small incremental change, code review, test, commit" is pretty much obsolete now. The way ten collaborating agents can make short work of a complex project is not something that fits in with our existing software engineering wisdom at all.
We are still trying to figure out the new science of software engineering. And the best way to get better now is to just figure out what works and what does not for your use case.
You're not really 'keeping up' with anything, you're just fooling yourself into being part of a process that wants to eradicate your presence.
It's almost like embracing this stuff is giving them an illusion of control they don't have
https://en.wikipedia.org/wiki/John_Carmack
oh
"eventually id Tech 5 is going to be open source also. This is still the law of the land at id"[0]
"Great! I think Microsoft has been a good parent company for gaming IPs"[1]
By sheer coincidence, John Carmack is peddling machine generated code.[2]
[0] https://web.archive.org/web/20081003111457/http://www.linuxg...
[1] https://x.com/ID_AA_Carmack/status/1308069857913720832
[2] https://80.lv/articles/john-carmack-s-agi-startup-keen-techn...
As for this current post (just a tweet really, public statement sounds overly official), I think he's making sense. If you don't follow industry trends, you'll eventually be out of touch. Whether you're a senior software engineer or engineering manager, keeping current with the evolution of tech will make you better at your job. Today that happens to be related to following AI developments, but it applied equally to learning higher level programming languages in the 90s, or big data engineering practices in the 2010s.
Elon Musk, Paul Graham, Steve Yegge and now, sadly John Carmack. Your average hacker scoffs at the idea of religion or faith, but somehow is comfortable with complete unquestioning fealty to whichever person who did something interesting with technology in the past and made enough money to afford drugs you don’t get arrested for and then they started prophesying.
Before you stone me, remember every prophet was downvoted in their own forum.
"We are fools for Christ's sake." 1 Corinthians 4:10
I am sure about few things, but it seems to me that monotheism and religious exclusivism at some times represent the worst aspects and outcomes of religious faith.
"We have given up our wisdom for Christ, but you have insight because of Christ. We are weak, but you are strong. You are honored, but we are dishonored"
Not quite the same of what you imply is it?
Someone who's seen the benfits, knows, with proof, the benefits exist. They're like Copernicus who realized the plants go around the sun, not the earth. The others are still like those who look up, see the planets go around the sky, and can't believe the earth is not at the center. They then shout "you're lying, you're crazy, burn the hertic!"
The massive benefits should be visible to outside observers as well, but where are they?
Why do you characterize people you disagree with as having "complete unquestioning fealty" to any of these figures who did something interesting with technology in the past? Seriously, why do you think that accurately characterizes anyone's view? I think this observation that John Carmack made on Twitter has some merit to it - it doesn't mean that I worship John Carmack as my god, or even that I think he's necessarily correct about any other issue. And why would I need to do either of those things to think that the one specific observation of his that we're talking about in this thread has merit to it?
> Architecture astronauts are out of touch and shouldn't give any advice because they haven't written code in ages. Only the hands on engineers can shape it since the design evolves in step with writing the code.
To
> I focus on the architecture patterns and high level goals and let the LLM take care of the rest.
Similar commentary was shared about anyone not writing the code daily, not just the architects.
No gotchas, I just think it's something which calls for introspection.
Arguably, architecture is the only thing that ever mattered. Below the level of architecture you're dealing either with algorithms or API calls. Algorithms can be validated by tests and API calls can be validated by tests and the type system.
But architecture is the one thing that could make or break a project and that you can't test for ahead of time. You either know how to create a good architecture or you don't. In fact, the whole point of the Spolsky's Architecture Astronauts' essay is that bad architecture (and bad architects) are a big problem.
AI works amazingly well below the level of architecture, but (I've found) it's not very good at architecture.
That exploration helped me see whether general "best practices" are applicable in this frame, and let me justify if not.
That was also prevailing opinion pre LLM:
> Only the hands on engineers can shape it since the design evolves in step with writing the code.
So I'm curious to know where people changed their minds.
Going from the specification to the code is not a one way street. You adapt the whole chain. Saying the only thing that matters is the spec is squinting your eyes and hoping for the best.
You stop learning how things actually end up in memory, compute, storage and network this way. Not sure how you can build a secure and fast spec then.
And even if you do know i never understand why not typing it out. You can use a lib if you don't want to worry about these details or know you are not skilled enough (tls f.e. ...). But having AI do it introduces uncertainty where there can be determinism.
I think it's just laziness and people not liking the pain of learning or needing to show off whatever first. Who knows. Still don't see a reason to use these tools outside of learning or whatever i used a google search for before.
that was truly, deeply, unnecessarily condescending of him.
it's so full of self-importance, even if he truly believes that whatever code he's writing is more important than anything else, it's really an unnecessary dig
especially coming from some guy who by many people is mostly known for his accomplishments in an era that many people would call retro computing now
sure I know this guy is almost literally the definition of the 10x programmer and he can choose to work on whatever he wants, so whatever he decided to work on is probably the most important thing to him, and if that's VR, that's ... also a choice.
doesn't mean he should be this condescending about what other people are doing
I work for myself developing apps and selling online. So I have no employer pushing to use AI. But I feel a bit like a dinosaur watching the incoming comet.
Currently, I just use MSCopilot as enhanced StackOverflow and I find it useful for that. But I have been nowhere near Cursor, Claude, harnesses, agents or 'vibe coding'.
It seems my options are:
1. Keep use AIs as an enhanced StackOverflow (e.g. to answer questions about APIs)
2. Embrace the new AI coding tools
Really not convinced about option 2. I don't trust AIs with code bases that I have built over 20 years. Also, I'm not far off retiring and I'm not sure I can be bothered to completely change how I work (again). Would be interested to hear what conclusions any fellow coding dinosaurs have come to.
An alternative way is using it as a pair programmer, which is one step above enhanced StackOverflow.
Run it on a throwaway system, pick a codebase you’ve always wanted to fix something about but didn’t have the time. Like you wanted to do a major refactoring or do a library migration to a better maintained library. Or you want to rewrite part of a program in rust for performance/security improvements.
The hardest part for me is sometimes it is hard to write what I want in a prompt; but you don’t have to put everything into the prompt, you can make a code edit as an example and then say; look at this diff, it is doing X; look for and apply this some transformation across codebase Y
If you have a good codebase, AI will have good patterns to follow and will produce pretty good code; and you can quickly iterate on the results (maybe over new context windows) and get high quality code that looks very close, if not indistinguishable from the pre-existing code.
Also try it with a frontier model though. With $20 for a one-month sub you can get a decent amount of GPT-6 Astra usage.
Thanks for the suggestion. But I don't have a throwaway system. All 3 of my codebases are commercial software that I charge money for. Also, I don't trust an AI not to serve substantial parts of my codebase to a competitor. Maybe I will try it if I start a new project. I fancy a go doing some Webassembly graphics at some point.
>Or you want to rewrite part of a program in rust for performance/security improvements.
My code is battle tested and robust through years of use. I don't rewrite stuff unless there is a real need.
JKD was supposed to be a martial art that adapted the best techniques from other martial arts. e.g. "have no style" because your style is constantly adapting.
After Lee died, JKD broke into two camps:
1. "We should only teach what Lee taught us and no more. e.g. the techniques he taught us are the core techniques."
2. "Lee taught us to be constantly adapting from other martial arts so there is no list of core techniques."
I've always loved this story as it highlights how humans have essentially two reactions to change: embracing it or fearing it.
0 - https://en.wikipedia.org/wiki/Jeet_Kune_Do
1 - https://en.wikipedia.org/wiki/Bruce_Lee
I'd wager that the most common reaction to change is actually "wearily accept it as there is no realistic option".
Most change is deleterious to those affected; it requires them to change how they live or work, or pay more, just to maintain the status quo. This sort of change is usually imposed by large organisations against which the individual is helpless.
When people are faced with that sort of change it's little wonder they complain about it, but eventually they have to submit to it or face a degredation in their life or work.
Then those who imposed the change roll their eyes and say "ugh, people are so afraid of change," being insulated from and benefitting from it.
The next time you receive a ToS update from your $FAVORITEVENDOR that negatively affects how you do something, or a new tax filing requirement from $GOV that takes up more of your personal time, do come on here and post about how you embraced the change.
There is plenty of middle ground which should be exercised. If anything, the reason we’re living in an increasingly shitty shit show shower is that too many people are too eager to selfishly embrace too much, with complete disregard for others or long term outcomes.
I have an issue with this analogy, since a professional MMA fighter is a highly skilled individual who has honed their body through years of training.
A more apt analogy might be "don't be the kung fu master who believes they can survive an atomic bomb, dropped from far above by a pilot who does not understand how it works, but who has nevertheless been gifted the ability to deploy it."
I once saw an early black and white film of 2 Chinese Kung Fu masters fighting in a ring. Some sort of grudge match I think. It was embarrassing. You would see better technique outside a Wetherspoons pub at 2am.
When you look at King Fu master as a software dev who refuses to use AI and MMA fighter as a dev who embraces AI.
Vibe coders who know nothing about software development are untrained rubes who got mechanical arm that thinks for itself, they can maul MMA fighter, they can maul Kung Fu master but at the same time arm might just rip off their own face.
posts on Twitter
Carmack hasn't produced anything noteworthy since AI was invented, therefore, how productive can it really be?
It could be he is doing incredible work in private... but it could also be that he's lost in the weeds, because AI is so counterproductive while feeling the opposite?
I remain a skeptic.
Wow that resonated by a scary amount.
We do spend all our time either code reviewing or talking with clients but the latter was already the case and the former was just better spaced out over time as this would before take many months.
I’m a critical user, not a categorical denier. But there are certain categories where I see the current AI face a wall: fitting new ideas, or existing code into an existing architecture particularly. Or work on the backend when constraints are not strictly enforced (for various historical reasons). Schematic understanding is still an issue.
Sometimes additional chunkings and detailed planning/instructions suffice. But other time, humans are still the best vehicles to code.
It’s spectacular for small projects, limited-scope apps (eg marketing campaigns etc) and for market-testable prototypes.
But if you don’t review and edit the code, things become unmaintainable soup very fast, with subtle logic bugs all over the place. And if you do review and edit the code, when working in large nontrivial codebases, then in my experience AI doesn’t actually go faster even if it feels like that at the start of each task.
Obviously this only holds if you have any sort of code quality standard to begin with (and I agree that with small / short-lived products you don’t need one)
OK so, it sounds empty and miserable to me, but we can stipulate that this is how it is working out for you.
Given that stipulation: how long do you think this can possibly last, when you are in a race to the bottom with everybody else who is doing this?
Have you made plans about how you will get out of your office lease, downsize, subcontract this button-pushing to even cheaper people overseas, etc.? Are you ready to lay off everyone who works for you, downsize your house to a smaller mortgage? Because you're on a burning platform. If you can do this, so can everyone else.
I mean, I think we all are, possibly, on the same burning platform; I don't think I can fully avoid AI so I am trying to make sense of it.
But I intend to fully avoid being in a race with other phone whisperers if I can.
If you company is all about creating things that go on the internet, sure, AI is your thing. But for most companies the internet is a communications tool rather than a product. Those companies are not seeing the claimed productivity gains.
I'm currently working on porting a mid-sized project to a new architecture, new programming language and of course adding new features.
Getting a new feature implemented is quite easy. You spend a few hours brainstorming specs with the agent, then ask it to implement it. This gives you extremely frequent code drops that add a new brick, add a new feature, etc. All of this with 100% code coverage (we also have mutation testing, strongly-typed code, standard and custom linters, etc.)
Then you look at the code. Code that has passed review, generally. You realize that the database schema has been broken silently, and that the agent has rewritten the tests or the golden fixtures to match. You realize that it has made assumptions that contradict the specifications and the product is going to break once it's in the hand of users. You realize that the 100% code coverage is essentially a convenient lie, because the code and tests have been written to make passing easy. You realize that none of the security golden rules have been followed, and that has managed to happen because the agent has somehow deactivated linting.
Why did it pass reviews? Well, because of deadlines. And because there is simply so much code (and so much unparsable/misleading documentation) that it's simply impossible to review all of this. And because things move so fast that nobody understands the CI pipeline anymore, and the explanations of the agent are convincing enough that surely, it knows better than you?
On the upside, bugfixing becomes so fast! Just add a new test, wait a few dozen minutes, and a new Merge Request appears. With equally convincing/misleading explanations, and something else broken.
After ~4 months, we had a bare bones deliverable, which we're now steadily expanding. If we had had to write the product manually, I suspect that it would have taken us at least one year, possibly two. So, that's the productivity increase. The productivity decrease is that what we have is not a product but a glorified demo, something that will work very nicely on the happy path, but on any other path, all bets are off.
At the end of the day, LLMs are still tools.
Maybe it's him, maybe it's his employer. I don't know. I am skeptical of AI's impact on work myself but I just don't think AI is the only thing to blame here.
(Note I'm not being pollyannish here -- a lot of codegen downright sucks).
He's been spinning his wheels for a while. Carmack is a great example of how important working on the right stuff is. He's undoubtedly a brilliant programmer. Through him we get to see that a brilliant programmer working on non-programming tasks, can produce nothing.
What's the complain exactly?
That AI still hasn't made my effort and thinking and directing and checking and ideas completely redundant and thus out of job?
It's like you people see everything in black and white and miss that most of the real world is a gradient of shades of grey and quite never full black or white.
I’d go even further. Shades of grey implies two extremes on a linear scale, but the world has colour, meaning wildly different interpretations that go in novel directions.
However, ironically, your comment reads to me as extremely black and white—full of certainty, rigidity, possibly some bad faith interpretation and straw manning—while the one you’re criticising has (some) nuance and doubt and seems open to the idea of being wrong.
What complain? OP asked a question. Carmack created Doom, Quake in 2, 3 years. What has he created in 4 years of AI? Should be exceptional if one of the most productive programmers ever says it makes him more productive.
What does he have to show?
He's doing research, not product work now.
I mean, when you start scoring goals like you did 5 years ago Ronaldo, but until then, I remain a skeptic about that training regimen.
As for misinterpreting - maybe you're misinterpreting. Or maybe it's unproductive and dare I say presumptuous to reply to people you know nothing about with 'you're probably wrong and I'm probably right'. Do you do that in real life? Working out great, I can only assume given you've adopted a similar approach here, or?
There are valid concerns there (and you should probably be playing around with LLMs), but he voiced none of them. He just led with a metaphor about obsolescence and then continued spreading FOMO with an authoritative voice.
> Musashi would probably have been pretty enthusiastic about assault rifles.
Musashi famously "retired to a cave, Reigandō, living as a hermit to write The Book of Five Rings" (https://en.wikipedia.org/wiki/Miyamoto_Musashi), for those not in the know.
Edit: Had to re-read a bunch of stuff about Musashi, and to Carmack's credit, seems to have been a relatively pragmatic guy when it comes to the choice of weapons in a battle, talking both about the benefits and drawbacks of firearms (although they were slightly different ones than we have today)
https://www.npr.org/sections/thetwo-way/2014/01/13/262096410...
> Its just that, it used to be free. All I needed was a computer.
https://xcancel.com/rustishard/status/2098853622263976328#m
Same here.
In particular regarding free as in freedom, so about access and control. Just like I never enjoyed working with proprietary coding platforms, OS, or IDEs, I’m not particularly excited about proprietary models.
This post brought to you by DraftKings. Reach Nirvana and its five bucks off your next bet on the Bardo!
https://www.w3.org/People/Berners-Lee/Kids.html
Seems like a fundamentally poor analogy. Software development is collaborative, not competitive.
Eh? Martial arts has always been a mix of utility and cultural artifact.
Greco-Roman wrestling flourished in a/alongside of military utility. Greeks and Romans had swords, shields, spears, bows and arrows. Boxing also traces its history all the way back to the Greeks.
Japanese, Korean, and Chinese arts developed in a society with, also, swords, shields, spears, bows and arrows. Notably these cultures often included weapons training ("kobudo" in Japanese) in their curriculum but that did not phase out the empty-handed aspect of the art.
Catch wrestling developed among sailors who would not be strangers to guns and rifles.
BJJ developed, well, today.
There has always been a component of sportsmanship and self-improvement in martial arts. Carmack misreads this introduction, methinks.
BTW, for you it would have been pretty bad if coding had been solved in the Quake-3 era. Quake-3 was technically sound but had excruciatingly boring and bland gameplay.
Fortunately, coding has not been solved.
Of course it's possible for it to go off the rails. Consider that a wildly swung sword can do damage you can't do with your bare hands. To prevent this, constrain your model to the solution shape you want by grounding it; give it contact with reality; ways to run the code it's generating and refine it to meet your goals; granular tests; etc.
The new job is in how you wield the tools and it is at least as complex as the old.
I get why most people get with the flow of what competition taught us: if you can't fight them join them. Yet I think it's demoralising we're forced to live the life forced upon us by a few techbros without real collective intelligence about the use of our resources and goals for the future. Again, it always has been a bit like that but never at this scale.
We're souless automatons feeding a machine god.
But software…? He’s declaring victory at virtually every level but the highest. Who honestly thinks JS should be cemented as permanent? X86/RISCV? CMake? It’s cool to abstract away the lower tiers when our tools are this powerful but it seems silly to leave this much performance, readability, and extensibility on the table forever.
If so… Very poor choice of metaphor. Nothing resembles AI coding quite so much as the mystical master waving his hands in karate-style movements, seeing dozens of his opponents helplessly bowl themselves over, and eventually coming to believe he truly has the power to defeat any enemy.
If I still edited videos I would have “make no mistakes” fly out of his hands, and the students would have little “you’re absolutely right” and “that’s on me” captions on them as they flip themselves over.
Cringed.
I have yet to see evidence that AI produces code that is higher in quality than human-written code. I have yet to see anyone show that burning through tokens is economically smarter than paying human engineers. All that is being revealed is how companies and software engineers truly feel about the work they do.
This technology is impressive, and we cannot doubt this. However, it seems that those within Silicon Valley are desperate to showcase the innovative spirit which has been absent for two decades.
Once you have that you can pick and choose when to engage this new tool at will to "not fall behind."
It doesn't have to be all or nothing.
Most jobs, programming included, aren’t like that at all. There’s an element of competition, but you don’t get killed by somebody who does it better. Maybe they get paid more, but you can still have a job too.
I read this advice like: in a world of backhoes, don’t be a guy with a shovel. Except a guy with a shovel is still very useful in the modern world. Backhoes are great but can’t do everything. And even for jobs they can, the shovel might be good enough.
I suppose it comes down to how hyper-competitive some people are, particularly the "greats", that working on software is in the same category as fisticuffs.
> [...] I don't like the "great equalizer" effect. [...] Like a kung-fu expert who wandered into a wild-west saloon of drunks all packing six-shooters. (I'm still working on this metaphor.)
Might as well share the entire off-the-cuff email, replying to a great software engineer friend who recently went academic, when they asked what I thought about AI development.
> "You're absolutely right," as the chatbots say.
> I think Claude Code (which I think is currently regarded as the best brand for software development) is for banging out *something* when you don't care so much about the quality. Like most applications of generative AI (homework cheating, customer service, usual corporate ticket-closing).
> And I'm definitely not thinking through the problem very well. The first time I noticed this was on UI design, where Claude would emit a generic *something*, and then the mode is to make incremental tweaks, rather than going through the mental exercises and holistic thinking.
> So sometimes I'm thinking like a non-technical manager, giving initial spec, and then iterating on things I notice -- not thinking like a designer, architect, or engineer.
> Or, like a senior engineer who has to mentor a hyperactive intern who bullshits and plagiarizes like crazy, and makes empty apologies like a sociopath when caught, but is the CEO's nephew, so you can't just fire and blacklist them. You just have to get *something* out of them.
> I can do much better design and better implementation myself, but it's good enough. And it's better than at least half the industry software engineers, so a lot of people who never cared much nor got very good, are in trouble. And management is often a poor judge of skill, if they even care.
> Besides the questions of its performance and utility, and all the ethics questions, I don't like the "great equalizer" effect. Now a lot more people can do (or seem to do) many of things I can do. And I'm having a lot of trouble job-hunting, and companies mostly want people to be using or building AI. Hence learning the robo-plagiarism tools. Like a kung-fu expert who wandered into a wild-west saloon of drunks all packing six-shooters. (I'm still working on this metaphor.)
That conversation might've started when I showed friend my new gen-AI portfolio site, so the context would be realist assessment and handling it, spoken to someone who already knows I'm an enthusiastic hardcore engineer.
I do see a whole set of people doing mystical passes in the air, sometimes with wires holding 'em up, in a set of ritual beliefs propped up by vast accumulations of power, money and pride, not to be questioned.
Didn't expect Carmack to be among those waving his hands about.
If it's so amazing, let's see the amazing thing he does. Go ahead. I'm sure Doom needs a really on-point web page with Inter.
Aircraft carriers are to a small extent superseded in their own right by strategic bombers and ballistic missiles. We may see nuclear aircraft carriers eventually superseded to some extent by missile/drone swarms and missile/drone deployment platforms, or some other threat.
If the new dominant technology, military in the sense of being used to dominate your adversaries in any arena, relies on data centers, is that infrastructure considered pretty robust? Will that data center infrastructure fully supersede the nuclear powered aircraft carriers, as has been done to battleships? Do hardened data centers and the software they run represent the main locus of national front line capability? Are AI researchers more like WW2 pilots, or are they more akin to the people who worked on the Manhattan project?
This post makes me think harder about physical computer infrastructure. Continuing the metaphor, silicon fabs, computer manufacturing supply chains and their related infrastructure are certainly the WW2 drydocks of our modern conflict, the WW2 drydocks having been critical for the Americans to churn out aircraft carriers. And the drydocks were only one piece, but might have been considered one of the most brittle.
Some seemingly brittle pieces of AI/data center infrastructure today are the fabs and the communication links. As far as I know, the fiber optic cables connecting continents are so exposed it's almost ridiculous, the cables lay directly on the ocean floor. If severing these links favors one or another global actor, my main question is why hasn't this already been done? You can ask the same questions about severing oil pipelines and the various global shipping chokepoints. I do wonder if fiber optic cables are defensible at all in the final analysis. And what life would/will be like without fiber optic connection between continents.
I'm not sure how much more durable satellite links are, due to the cascading debris effects of Kessler syndrome.
A key idea is that if the transoceanic communication links between the Americas and Eurasia were to be cut, either powers based in Eurasia or a power based in the Americas would gain an advantage.
Semiconductor fabs... Well, if I were a military strategist in charge of national security, I definitely wouldn't publish the location of every fab. And a a self respecting superpower wouldn't leave its EUV machine production external, or would it?
Fabless semiconductor companies and AI researchers are critical to current national security capabilities in the way that people who developed radar were critical to WWII. In the long enough term some people think that eventually data centers and the software running inside will supersede and encompass these functions. The question being increasingly not if, but when. Some people think that if it can be done by a computer, it eventually will be.
It really is all about timing, the Japanese thought the Pacific conflict with the USA would be short.
John, if the introduction of the translation of Book of Five Rings is so good, could you please share the identifying information including the translator or the person who wrote the introduction?
If you think there are going to be as many jobs in the future for people writing all their code by hand, I hate to break it to you. However, there will still be some jobs, and fewer people who want to do it. It will still be a path for some people.
With Instant Indian, all your code writing worries are now a thing of the past!
Have a dropdown menu to implement in Angular? Instant Indian.
Boss wants to use GraphQL? Instant Indian!
You can even use it for sexua ...
Never think again! Simply launch the Instant Indian dashboard and enter some vague product requirement just like every PM in history and in seconds your Angular v1 controller will be ready to use - in React!
Call now!
It's human nature. If your identity is defined by your kung fu and a technology is about to obsolesce your kung fu, then all logic goes out the window as you go all out in protecting your identity. It's mostly for themselves. They have to lie to themselves and tell themselves that they still "matter".
Similarly, most of the programmers skeptical about AI---me included---don't really do so out of a threat to a domain we've mastered. The problem is, models, to this day, need supervision so they understand requirements, so they know where to properly look for prior art, so that they "understand" the existing architecture. That includes you, Claude. Our kung fu has been six months away from obsolescence since roundabouts 2022 and in 2026 they even rehired a bunch of out-of-touch kung fu masters.
That is a very generous assessment of Frank Dux and George Dillman.
Dillman at least started off as the real deal. Dux was a total fantasist. I still find it hard to believe any bought into his 'blood sport' story, let alone made a film about it.
How do you recognize someone who isn’t lying to themselves? It’s hard. There’s no definitive answer but lies people tell themselves tend to be rosy and comforting. When someone tells you their own identity has been eviscrerated by AI that’s not a comforting lie. It’s more than likely a practical analysis.
Like put your shoes into the person you are arguing against, with some empathy, would you want to be treated this way?
Unless if you feel it’s referring to you then you’re saying what I said is true. If what I said is true, then it’s not an attack is it? I’m just spitting facts. So don’t get offended, don’t think of it as an attack.
The out of touch kung fu masters are all retired or close to it. They continue to shout about their big bet on AI as loudly as possible to protect their egos and, as a last ditch effort, whatever money they threw in.
After all, everyone who is mid-career and younger cannot possibly be a master of anything. Of course they're using AI at work, but that is an extremely far cry from the AI actually helping. They use it because it's shoved down their throats and they don't want to rock the boat. Working extra hours from home is the perfect way for everyone to save face.
In other words, the older generation is delusional. Nobody is surprised except the older generation.