> 99% of the code in this PR [for llama.cpp] is written by DeekSeek-R1
I hope we can put to rest the argument that LLMs are only marginally useful in coding - which are often among the top comments on many threads. I suppose these arguments arise from (a) having used only GH copilot which is the worst tool, or (b) not having spent enough time with the tool/llm, or (c) apprehension. I've given up responding to these.
Our trade has changed forever, and there's no going back. When companies claim that AI will replace developers, it isn't entirely bluster. Jobs are going to be lost unless there's somehow a demand for more applications.
"Jobs are going to be lost unless there's somehow a demand for more applications."
That's why I'm not worried. There is already SO MUCH more demand for code than we're able to keep up with. Show me a company that doesn't have a backlog a mile long where most of the internal conversations are about how to prioritize what to build next.
I think LLM assistance makes programmers significantly more productive, which makes us MORE valuable because we can deliver more business value in the same amount of time.
Companies that would never have considered building custom software because they'd need a team of 6 working for 12 months may now hire developers if they only need 2 working for 3 months to get something useful.
> That's why I'm not worried. There is already SO MUCH more demand for code than we're able to keep up with. Show me a company that doesn't have a backlog a mile long where most of the internal conversations are about how to prioritize what to build next.
I worry about junior developers. It will be a while before vocational programming courses retool to teach this new way of writing code, and these are going to be testing times for so many of them. If you ask me why this will take time, my argument is that effectively wielding an LLM for coding requires broad knowledge. For example, if you're writing web apps, you need to be able to spot say security issues. And various other best practices, depending on what you're making.
It's a difficult problem to solve, requiring new sets of books, courses etc.
Just as a side note, at my university about half the CS people are in the AI track. I would guess that number will keep increasing. There is also a separate major that kind of focuses on AI/psychology that is pretty popular but I am not sure how many people are in it. A good number of the students have some kind of "AI startup". Also, although it violates the honor code, I would be willing to bet many students use AI in some way for doing programming assignments.
This isn't to say you are wrong but just to put some perspective on how things are changing. Maybe most new programmers will be hired into AI roles or data science.
The ask from every new grad to be assigned to ai development is unreasonable right now and they are probably hurting their careers by all going the same direction honestly. It’s a small fraction of our development efforts and we usually hire very senior for that sort of role. We still need people that can program for the day to day business needs and it’s a perfect starting role for a new grad yet almost all of them are asking for assignment to ai development.
I appreciate anyone that can utilise ai well but there’s just not enough core ai model development jobs for every new grad.
Agree and disagree. You do it need a “degree in AI”. However, you need to be using AI in your degree. Really using it.
What are those “day to day business needs” that you think people are going to do without AI?
In my view, this is like 1981. If you are saying, we will still need non-computer people for day-to-day business needs, you are wrong. Even the guy in the warehouse and the receptionist at the front are using computers. So is the CEO. That does not mean that everybody can build one, but just think of the number of jobs in a modern company that require decent Excel skills. It is not just the one in finance. We probably don’t know what the “Excel” of AI is just yet but we are all going to need to be great at it, regardless of who is building the next generation of tools.
Wouldn't the AI track be more about the knowing the internals, being able to build models, ... So in your 1981 example that would be saying about half of the people are enrolling in computer hardware courses, whereas only a fraction of those are needed?
I would assume any other CS course teaches/is going to be teaching how to use AI to be an effective software developer.
I agree with your point in general, but saying one needs to be great at using AI tools gives way too much credit to companies’ ability to identify low performers. Especially in large organizations, optics matter far more than productive output. Being able to use AI tools is quite different from saying you are using AI tools!
An actual hardcore technical AI "psychology" program would actually be really cool. Could be a good onboarding for prompt engineering (if it still exists in 5 years).
Yeah, the younguns smell opportunity and run towards it. They'll be fine. It's younguns) the less experienced folks in the current corporate world that will have the most to lose.
The really experienced of us will have made this mistake enough times to know to avoid it.
I didn’t get a smart phone until the 2010s. Stupid I know but it was seen as a badge of honour in some circles ‘bah I don’t even use a smart phone’ we’d say as the young crowd went about their lives never getting lost without a map and generally having an easier time of it since they didn’t have that mental block.
Ai is going to be similar no doubt. I’m already seeing ‘bah I don’t use ai coding assistants’ type of posts, wearing it as a badge of honour. ‘Ok you’re making things harder for yourself’ should be the reply but we’ll no doubt have people wearing it as a badge of honour for some time yet.
> I worry about junior developers. It will be a while before vocational programming courses retool to teach this new way of writing code, and these are going to be testing times for so many of them.
I don't agree. LLMs work as template engines on steroids. The role of a developer now includes more code reviewing than code typing. You need the exact same core curriculum to be able to parse code, regardless if you're the one writing it, it's a PR, or it's outputted by a chatbot.
> For example, if you're writing web apps, you need to be able to spot say security issues. And various other best practices, depending on what you're making.
You're either overthinking it or overselling it. LLMs generate code, but that's just the starting point. The bulk of developer's work is modifying your code to either fix an issue or implement a feature. You need a developer to guide the approach.
That's a broad statement. If the IDE checks types and feeds errors back to the LLM, then that loop is very well able to fix an issue or implement a feature all on its own (see aider, cline etc )
It isn't. Anyone who does software development for a living can explain to you what exactly is the day-to-day work of a software developer. It ain't writing code, and you spend far more time reading code than writing it. This is a known fact for decades.
> If the IDE checks types and feeds errors back to the LLM,(...)
Irrelevant. Anyone who does software development for a living can tell you that code review is way more than spotting bugs. In fact, some companies even have triggers to only trigger PR reviews if all automated tests pass.
Think of how much easier it is to learn to code if you actually want to.
The mantra has always been that the best way to learn to code is to read other people’s code. Now you can have “other people” write you code for whatever you want. You can study it and see how it works. You can explore different ways of accomplishing the same tasks. You can look at the similar implementations in different languages. And you may be able to see the reasoning and research for it all. You are never going to get that kind of access to senior devs. Most people would never work up the courage to ask. Plus, you are going to become wicked good at using the AI and automation including being deeply in touch with its strengths and weaknesses. Honestly, I am not sure how older, already working devs are going to keep up with those that enter the field 3 years from now.
People get wicked good by solving hard problems. Many young developers use AI to solve problems with little effort. Not sure what effect this will have on the quality of future developers.
that's basically the AI rubicon everywhere. From flying plans to programming: Soon there'll be no real fallback. When AI fails, you can't just put the controls in front of a person and expect them to have reasonable expertise to respond.
Really, what seems on the horizon is a cliff of techno risks that have nothing to do with "AI will take over the world" and more "AI will be so integral to functional humanity that actual risks become so diffuse that no one can stop it."
So it's more a conceptual belief: Will AI actually make driving cares safer or will the fatalities of AI just be so randomly stochastic that it's more acceptable.
>So it's more a conceptual belief: Will AI actually make driving cares safer or will the fatalities of AI just be so randomly stochastic that it's more acceptable.
I would argue that we already accept relatively random car fatalities at a huge scale and simply engage in post-hoc rationalization of the why and how of individual accidents that affect us personally. If we can drastically reduce the rate of accidents, the remaining accidents will be post-hoc rationalized the same way we always have rationalized accidents.
This is about the functional society where people fundamentally have recourse to "blame" via legal means one another for things.
Having fallbacks, eg, pilots in the cockpit is not a long term strategy for AI pilots flying planes because they functionally will never be sufficiently trained for actual scenarios.
By the time book comes out it's outdated. DeepSeek has its own cut-off date.
And here is the problem: AI needs to be trained on something. Use of AI reduces the use of online forums, some of them are actively blocking access, like reddit. So, for AI to stay relevant it has to generate the knowledge by itself. Like having full control of a computer, taking queries from human supervisor, and really trying to solve. Having this sort of AI actors in online forum will benefit everyone.
Before this comment is being downvoted, please note the irony. The AI models may solve some technical problems, but the actual problems to be solved are of a societal nature, and won't be solved in our lifetimes.
I agree there are hard societal problems that tech alone cannot solve -- or at all. It reminds me of the era, not long ago, when the hipster startup bros thought "there is an app for that" (and they were ridiculously out of touch with the actual problem, which was famine, homelessness, poverty, a natural disaster, etc).
For mankind, the really big problems aren't going away any time soon.
But -- and it's a big but -- many of us aren't working on those problems. I'm ready to agree most of what I've done for decades in my engineering job(s) is largely inconsequential. I don't delude myself into thinking I'm changing the world. I know I'm not!
What I'm doing is working on something interesting (not always) while earning a nice paycheck and supporting my family and my hobbies. If this goes away, I'll struggle. Should the world care? Likely not. But I care. And I'm unlikely to start working on solving societal problems as a job, it's too much of a burden to bear.
> If you ask me why this will take time, my argument is that effectively wielding an LLM for coding requires broad knowledge.
This is a problem that the Computer Science departments of the world have been solving. I think that the "good" departments already go for the "broad knowledge" of theory, systems with a balance between the trendy and timeless.
I definitely agree with you in the interim regarding junior developers. However, I do think we will eventually have the AI coding equivalent of CICD built into perhaps our IDE. Basically, when an AI generated some code to implement something, you chain out more AI queries to test it, modify it, check it for security vulnerabilities etc.
Now, the first response some folks may have is, how can you trust that the AI is good at security? Well, in this example, it only needs to be better than the junior developers at security to provide them with benefits/learning opportunities. We need to remember that the junior developers of today can also just as easily write insecure code.
If it can point out the things you may need to consider, it is already better at security than most dev teams in the world today. Deep Seek can already do that.
This is my main worry with the entire AI trend too. We're creating a huge gap for those joining the industry right now, with markedly fewer job openings for junior people. Who will inherit the machine?
Full disclosure: I am writing a chat app that is designed for software development
> It's a difficult problem to solve, requiring new sets of books, courses etc.
I think new tooling built around LLMs that fits into our current software development lifecycle is going to make a big difference. I am experiencing firsthand how much more productive I am with LLM, and I think that in the future, we will start using "Can you review my conversation?" in the same way we use "Can you review my code?"
Where I believe LLMs are a real game changer is they make it a lot easier for us to consume information. For example, I am currently working on adding a Drag and Drop feature for my chat input box. If a junior developer is tasked with this, the senior developer can easily have the LLM generate a summary of their conversation like so:
At this point, the senior developer can see if anything is missed; if desired, they can fork the conversation to ask the LLM questions like "Was this asked?" or "Was this mentioned?"
And once everybody is happy, you can have the LLM generate a PR title and message like so:
All of this took me about 10 minutes, which would have taken me an hour or maybe more without LLMs.
And from here, you are now ready to think about coding with or without LLM.
I think with proper tooling, we might be able to accelerate the learning process for junior developers as we now have an intermediate layer that can better articulate the senior developers' thoughts. If the junior developer is too embarrassed to ask for clarification on why the senior developer said what they did, they can easily ask the LLM to explain.
The issue right now is that we are so focused on the moon shots for LLM, but the simple fact is that we don't need it for coding if we don't want to. We can use it in a better way to communicate and gather requirements, which will go a long way to writing better code faster.
Yeah, it's going to suck for junior developers for a while.
The ones who are self-starters will do fine - they'll figure out how to accelerate their way up the learning curve using these new tools.
People who prefer classroom-learning / guided education are going to be at a disadvantage for a few years while the education space retools for this new world.
I think, seeing recordings of people using LLMs to accomplish non-trivial tasks would go a long way.
I’d love to watch, e.g. you Simon, using these tools. I assume there are so many little tricks you figured out over time that together make a big difference. Things that come to mind:
- how to quickly validate the output?
- what tooling to use for iterating back and forth with the LLM? (just a chat?)
- how to steer the LLM towards a certain kind of solutions?
- what is the right context to provide to the LLM? How do it technically?
I believe Simon has full transcripts for some of the projects he’s had LLMs generate the code for. You can see how he steers the LLM for what is desired and how it is course corrected.
I personally think that having hands on keyboards is still going to be imperative. Anyone can have an idea, but not everyone is going to be able to articulate that idea to an AI model in a way that will produce high quality, secure software.
I'm by no means an expert, but I feel like you still need someone who understands underlying principles and best practices to create something of value.
This assumes that prompts do not evolve to the point where grandma can mutter some words to AI that produces an app that solves a problem. Prompts are an art form and a friction point to great results. Was only some months before reasoning models that CoT prompts where state of the art. Reasoning models take that friction away.
Thinking it out even further, programming languages will likely go away altogether as ultimately they're just human interfaces to machine language.
> programming languages will likely go away altogether
As we know them, certainly.
I haven't seen discussions about this (links welcome!), but I find it fascinating.
What would a PL look like, if it was not designed to be written by humans, but instead be some kind of intermediate format generated by an AI for humans to review?
It would need to be a kind of formal specification. There would be multiple levels of abstraction -- stakeholders and product management would have a high level lens, then you'd need technologists to verify the correctness of details. Parts could still be abstracted away like we do with libraries today.
It would be way too verbose as a development language, but clear and accessible enough that all of our arcane syntax knowledge would be obsolete.
This intermediate spec would be a living document, interactive and sensitive to modifications and aware of how they'd impact other parts of the spec.
When the modifications are settled, the spec would be reingested and the AI would produce "code", or more likely be compiled directly to executable blobs.
...
In the end, I still think this ends up with really smart "developers" who don't need to know a lick of code to produce a full product. PLs will be seen as the cute anachronisms of an immature industry. Future generations will laugh at the idea that anybody ever cared about tabs-v-spaces (fair enough!).
Take for example neuralink. If you consider that interface 10 years, or further 1000 years out in the future, it's likely we will have a direct, thought-based human computer interface. Which is interesting when thinking of this for sending information to the computer, but even more so (if equally alarming) for information flowing from computer to human. Whereas today, we read text on web pages, or listen to audio books, in that future, we may instead receive felt experiences / knowledge / wisdom.
Have you had a chance to read 'Metaman: The Merging of Humans and Machines into a Global Superorganism' from 1993?
We have already entered a new paradigm of software development, where small teams build software for themselves to solve their own problems rather than making software to sell to people. I think selling software will get harder in the future unless it comes with special affordances.
I think some of the CEOs have it right on this one. What is going to get harder is selling “applications” that are really just user friendly ways of getting data in and out of databases. Honestly, most enterprise software is just this.
AI agents will do the same job.
What will still matter is software that constrains what kind of data ends up in the database and ensures that data means what it is supposed to. That software will be created by local teams that know the business and the data. They will use AI to write the software and test it. Will those teams be “developers”? It is probably semantics or a matter of degree. Half the people writing advanced Excel spreadsheets today should probably be considered developers really.
Mostly agree, even without a database-centered worldview.
Programming languages are languages to tell the computer what to do. In the beginning, people wrote in machine code. Then, high level languages like C and FORTRAN were invented. Since then we’ve been iterating on the high level language idea.
These LLM based tools seem to be a more abstract way of telling the computer what to do. And they really might, if they work out, be a jump similar to the low/high level split. Maybe in the future we’ll talk about low-level, high-level, and natural programming languages. The only awkwardness will be saying “I have to drop down to a high level language to really understand what the computer is doing.” But anyway, there were programmers on either side of that first split (way more after), if there’s another one I suspect there will still be programmers after.
No, enterprise software is typically also risk management and compliance, domains where rules rule. Someone needs to sign off on the software being up to spec and taking responsibility for failures, that's something any submissive LLM is willing to do but can't.
Maybe, but it's the same argument trickling down. You'll need the CRUD-apps because you hired Cindy to press the button, and if shit goes pear-shaped, you can point to Cindy in the post-mortem. If it's some AI agent pressing the button to egress data from the database, and there's an anomaly, then it's a systemic failure at a macro level at that company, which is harder to write a press release about.
At some point, I wonder if there will be advantageous for AI to just drop down directly into machine code, without any intermediate expression in higher-level languages. Greater efficiency?
Obviously, source allows human tuning, auditing, and so on. But taken at the limit, those aspects may eventually no longer be necessary. Just a riff here, as the thought just occurred.
In the past I've had a similar thought, what if the scheduler used by the kernel was an AI? better yet, if it is able to learn your usage patterns and schedule accordingly.
Many applications can and should be replaced by a prompt and a database. This is the nature of increased expressive and computational power. So many whip manufacturers are about to go out of business, especially those offering whips-as-a-service.
...which is a good thing. Software made by the people using it to better meet their specific needs is typically far better than software made to be a product, which also has to meet a bunch of extra requirements that the user doesn't care about.
> There is already SO MUCH more demand for code than we're able to keep up with. Show me a company that doesn't have a backlog a mile long where most of the internal conversations are about how to prioritize what to build next.
This is viewing things too narrowly I think. Why do we even need most of our current software tools aside from allowing people to execute a specific task? AI won't need VSCode. If AI can short circuit the need for most, if not nearly all enterprise software, then I wouldn't expect software demand to increase.
Demand for intelligent systems will certainly increase. And I think many people are hopeful that you'll still need humans to manage them but I think that hope is misplaced. These things are already approaching human level intellect, if not exceeding it, in most domains. Viewed through that lens, human intervention will hamper these systems and make them less effective. The rise of chess engines are the perfect example of this. Allow a human to pair with stockfish and override stockfish's favored move at will. This combination will lose every single game to a stockfish-only opponent.
But the bit of data we got in this story is that a human wrote tests for a human-identified opportunity, then wrote some prompts, iterated on those prompts, and then produced a patch to be sent in for review by other humans.
If you already believed that there might be some fully autonomous coding going on, this event doesn’t contradict your belief. But it doesn’t really support it either. This is another iteration on stuff that’s already been seen. This isn’t to cheapen the accomplishment. The range of stuff these tools can do is growing at an impressive rate. So far though it seems like they need technical people good enough to define problems for them and evaluate the output…
I tried something related today with Claude, who'd messed up a certain visualization of entropies using JS: I snapped a phone photo and said 'behold'. The next try was a glitch mess, and I said hey, could you get your JS to capture the canvas as an image and then just look at the image yourself? Claude could indeed, and successfully debugged zir own code that way with no more guidance.
I should've said I didn't do any control experiment. I looked more closely at what Claude did in another case and it was console-logging some rough features out of the canvas data that time. If it actually was "looking at" the image the first time, it had to have been through a text encoding -- I think I remember a data URL briefly starting to appear in the transcript.
GAI (if we get it) will start creating its own tools and programming languages to become more efficient. Tools as such won’t be going away. GAI will use them for the same reasons we do.
It's interesting. Maybe I'm in the bigtech bubble, but to me it looks like there isn't enough work for everyone already. Good projects are few and far between. Most of our effort is keeping the lights on for the stuff built over the last 15-20 years. We're really out of big product ideas.
That's because software is hard to make, and most projects don't make it far enough to prove themselves useful--despite them having the potential to be useful. If software gets easier, a whole new cohort of projects will start surviving past their larval stage.
These might not be big products, but who wants big products anyway? You always have to bend over backwards to trick them into doing what you want. You should see the crazy stuff my partner does to make google docs fit her use case...
Let's have an era of small products made by people who are close to the problems being solved.
Yes a capacity increase from the developer side is great but it's supply side and we need to figure out how to accelerate transforming needs into demand. This is what I foresee developers turning into (at least some capable of this). Articulating logical solutions to be built to problems and evaluating results from what's generated to ensure it meets the needs.
Aka Devs can move up the chain into what was traditionally product roles to increase development of new projects. This is using the time they have regain from more menial tasks being automated away.
That's the naiveity of software engineers. They can't see their limitations and think everything is just a technical problem.
No, work is never the core problem. Backlog of bug fixes/enhancements is rarely what determines the headcount. What matters is the business need. If the product sells and there is no/little competition, the company has very little incentive to improve their products, especially hiring people to do the work. You'd be thankful if a company does not layoff people in teams working on mature products. In fact, the opposite has been happening, for quite a while. There are so many examples out there that I don't need to name them.
Show me a company that doesn't have a backlog a mile long where most of the internal conversations are about how to prioritize what to build next.
Most companies don't have a milelong backlog of coding projects. That's a uniquely tech industry-specific issue, and a lot of it is driven by the tech industry's obsessive compulsion to perpetually reinvent wheels.
Companies that would never have considered building custom software because they'd need a team of 6 working for 12 months may now hire developers if they only need 2 working for 3 months to get something useful.
No, because most companies that can afford custom software want reliable software. Downtime is money. Getting unreliable custom software means that the next time around they'll just adapt their business processes to software that's already available on the market.
I’m more bearish about LLMs but even in the extreme optimist case this is why I’m not that concerned. Every project I’m on is triaged as the one that needs the most help right now. A world when dozen projects don’t need to be left on the cutting room floor so one can live is a very exciting place.
>There is already SO MUCH more demand for code than we're able to keep up with. Show me a company that doesn't have a backlog a mile long where most of the internal conversations are about how to prioritize what to build next.
We really are in AI moment of iPhone. I never thought I would witness something bigger than the impact of Smartphone. There are insane amount of value that we could extract out. Likely in tens of trillions from big to small business.
We keep asking how Low Code or No Code "tools" could achieve custom apps. Turns out we are here via a different route.
>custom software because they'd need a team of 6 working for 12 months may now hire developers if they only need 2 working for 3 months to get something useful.
I am wondering if it be more like 2 working for 1 month?
And this kind of fear mongering is particularly irritating when you see that our industry already faced a similar productivity shock less than twenty years ago: before open source went mainstream github and library hubs like npm we used to code the same things over and over again, most of the time in a half-backed fashion because nobody had time for polishing stuff that was needed but only tangentially related to the code business. Then came the open-source tsunami, and suddenly there was a high quality library for solving your particular problem and the productivity gain was insane.
Fast forward a few years, does it look like this productivity gains took any of our jobs? Quite the opposite actually, there has never been as many developers as today.
(Don't get me wrong, this is massively changing how we work, like the previous revolution did, and how job is never going to be the same again)
The main problem is that engineers in the Western world wont get to see the benefits themselves because a lot of Western companies will outsource the work to AI-enabled, much more effective developers in India.
India and Eastern EU will win far more (relatively) than expensive devs in the US or Western EU.
> That's why I'm not worried. There is already SO MUCH more demand for code than we're able to keep up with. Show me a company that doesn't have a backlog a mile long where most of the internal conversations are about how to prioritize what to build next.
And yet many companies aren't hiring developers right now - folks in the C suite are thinking AI is going to be eliminating their need to hire engineers. Also "demand" doesn't necessarily mean that there's money available to develop this code. And remember that when code is created it needs to be maintained and there are costs for doing that as well.
I continue to suspect that the hiring problems are mainly due to massive over-hiring during Covid, followed by layoffs that flooded the market with skilled developers looking for work.
I'd love to see numbers around the "execs don't think they need engineers because of AI" factor. I've heard a few anecdotal examples of that but it's hard to tell if it's a real trend or just something that catches headlines.
I think execs don’t see the problems we have with AI because you don’t need to be an expert to be an exec. I run into the edges of AI every day. There are things it is good at and things not so good at, and it varies from model to model and context to context (you can have two conversations with the same model, about the same thing, and get vastly different outputs; eg a test that uses different assertion patterns/libraries that are different from the rest of the project). As an “expert” or “highly skilled” person, I recognize these issues when I see them, but to a layman, it just looks like code.
Massive overhiring or not, it's the fact that many (skilled) engineers can't find a job. Many companies were shut off during the past few years and market became oversaturated over the night. Whether AI will help to correct the market creating more demand we will see but I wouldn't hold my breath. Many domain specific skills became a commodity.
We had a huge boom due to the low interest rates allowing businesses to pay developers with borrowed money, effectively operating at a loss for years on the basis of future growth. Now interest rates have risen the need to actually be profitable has caused a lot of optimization and lower hiring overall.
Where's the fact coming from, as in it's higher than before? I seem to be getting more than ever recruiting emails, and have felt out interviewing at a few places which we're very eager to find staff level talent.
Personal experience and also from many people I know around. Previously I would receive a request for an interview every two days or so. Lately, perhaps once a month, if at all. Foundational skills that I have were always scarce on the market so that makes me believe that the demand for them is now much much lower.
Another data point is that there's been ~10 companies that I have been following and all of them have been shut down in the past year or so.
And the general feeling you get from the number of HN posts from people complaining about not being able to find jobs. This certainly hasn't been like that before.
100% agree with this take. People are spouting economic fallacies, and it’s in part cause CEOs don't want the stock prices to fall too fast. Eventually people will widely realize this and by then the economic payoffs are still immense.
When GPT-4 came out, I worked on a project called Duopoly [1], which was a coding bot that aimed to develop itself as much as possible.
The first commit was half a page of code that read itself in, asked the user what change they'd like to make, sent that to GPT-4, and overwrote itself with the result. The second commit was GPT-4 adding docstrings and type hints.
Over 80% of the code was written by AI in this manner, and at some point, I pulled the plug on humans, and the last couple hundred commits were entirely written by AI.
It was a huge pain to develop with how slow and expensive and flaky the GPT-4 API was at the time. There was a lot of dancing around the tiny 8k context window. After spending thousands in GPT-4 credits, I decided to mark it as proof of concept complete and move on developing other tech with LLMs.
Today, with Sonnet and R1, I don't think it would be difficult or expensive to bootstrap the thing entirely with AI, never writing a line of code. Aider, a fantastic similar tool written by HN user anotherpaulg, wasn't writing large amounts of its own code in the GPT-4 days. But today it's above 80% in some releases [2].
Even if the models froze to what we have today, I don't think we've scratched the surface on what sophisticated tooling could get out of them.
I read that Meta is tasking all engineers with figuring out how they got owned by deepseek. Couldn't they just have asked an llm instead? After their claim of replacing all of us...
I'm not too worried. If anything we're the last generation that knows how to debug and work through issues.
> If anything we're the last generation that knows how to debug and work through issues.
I suspect that comment might soon feel like saying "not too worried about assembly line robots, we're the only ones who know how to screw on the lug nuts when they pop off"
I don't even see the irony in the comparison to be honest, being the assembly line robot controller and repairman is quite literally a better job than doing what the robot does by hand.
If you're working in a modern manufacturing business the fact that you do your work with the aid of robots is hardly a sign of despair
I don't claim it's a sign of despair. Rather, it's a boots-dug-in belief that one does is special and cannot be done autonomously. I think it's wholly natural. Work, time, education ... these operate like sunk costs in our brains.
I think what we're all learning in real-time is that human technology is perpetually aimed at replacing itself and we may soon see the largest such example of human utility displacement.
Heh, yeah. But the llm in this instance only wrote 99% after the author guided it and prompted over and over again and even guided it how to start certain lines. I can do that. But can a beginner ever get to that level when not having that underlying knowledge?
Yep, and we still need COBOL programmers too. Your job as a technologist is to keep up with technology and use the best tools for the job to increase efficiency. If you don’t do this you will be left behind or you will be relegated to an esoteric job no one wants.
I briefly looked into this 10 years ago since people kept saying it. There is no demand for COBOL programmers, and the pay is far below industry average. [0]
My poor baby boy Prolog... it's only down there because people are irrationally afraid of it :(
And most are too focused on learning whatever slop the industry wants them to learn, so they don't even know that it exists. We need 500 different object oriented languages to do web applications after all. Can't be bothered with learning a new paradigm if it doesn't pay the bills!
It's the most intuitive language I've ever learned and it has forever changed the way I think about problem solving. It's just logic, so it translates naturally from thought to code. I can go to a wikipedia page on some topic I barely know and write down all true statements on that page. Then I can run queries and discover stuff I didn't know.
That's how I learned music theory, how scales and chords work, how to identify the key of a melody... You can't do that as easily and concisely in any other language.
One day, LLM developers will finally open a book about AI and realize that this is what they've been missing all along.
A fair amount has been written on how to debug things, so it's not like the next generation can't learn it by also asking the AI (maybe learn it more slowly if 'learning with AI' is found to be slower)
The nature of this PR looks like it’s very LLM-friendly - it’s essentially translating existing code into SIMD.
LLMs seem to do well at any kind of mapping / translating task, but they seem to have a harder time when you give them either a broader or less deterministic task, or when they don’t have the knowledge to complete the task and start hallucinating.
It’s not a great metric to benchmark their ability to write typical code.
Sure, but let's still appreciate how awesome it is that this very difficult (for a human) PR is now essentially self-serve.
How much hardware efficiency have we left on the the table all these years because people don't like to think about optimal use of cache lines, array alignment, SIMD, etc. I bet we could double or triple the speeds of all our computers.
My observation in my years running a dev shop was that there are two classes of applications that could get built. One was the high-end, full-bore model requiring a team of engineers and hundreds of thousands of dollars to get to a basic MVP, which thus required an economic opportunity in at least the tends of millions. The other, very niche or geographically local businesses that can get their needs met with a self-service tool, max budget maybe $5k or so. Could stretch that to $25k if you use offshore team to customize. But 9/10 incoming leads had budgets between $25k and $100k. We just had to turn them away. There's nothing meaningful you can do with that range of budget. I haven't seen anything particularly change that. Self-service tools get gradually better, but not enough to make a huge difference. The high end if anything has receded even faster as dev salaries have soared.
AI coding, for all its flaws now, is the first thing that takes a chunk out of this, and there is a HUGE backlog of good-but-not-great ideas that are now viable.
That said, this particular story is bogus. He "just wrote the tests" but that's a spec — implementing from a quality executable spec is much more straightforward. Deepseek isn't doing the design, he is. Still a massive accelerant.
The thing with programming, to do it well, you need to fully understand the problem and then you implement the solution expressing it in code. AI will be used to create code based on a deficit of clear understanding and we will end up with a hell of a lot of garbage code. I foresee the industry demand for programmers sky rocketing in the future, as companies scramble to unfuck the mountains of shit code they lash up over the coming years. It's just a new age of copy paste coders.
I want this to be true. Actually writing the code is the least creative, least interesting part of my job.
But I think it’s still much too early for any form of “can we all just call it settled now? In this case, as we all know, lines of code is not a useful metric. How many person hours were spent doing anything associated with this PR’s generation and how does that compare to not using AI tools, and how does the result compare in terms of the various forms of quality? That’s the rubric I’d like to see us use in a more consistent manner.
LLMs excel at tasks with very clear instructions and parameters. Porting from one language to another is something that is one step away from being done by a compiler. Another place that I've used them is for initial scaffolding of React components.
"I hope we can put to rest the argument that LLMs are only marginally useful in coding"
I more often heard the argument, they are not useful for them. I agree.
If a LLM would be trained on my codebase and the exact libaries and APIs I use - I would use them daily I guess. But currently they still make too many misstake and mess up different APIs for example, so not useful to me, except for small experiments.
But if I could train deepseek on my codebase for a reasonable amount(and they seemed to have improved on the training?), running it locally on my workstation: then I am likely in as well.
We are getting closer and closer to that. For a while llm assistants were not all that useful on larger projects because they had limited context. That context has increased a lot over the last 6 months. Some tools will even analysis your entire codebase and use that in responses.
It is frustrating that any smaller tool or api seem to stump llms currently but it seems like context is the main thing that is missing and that is increasing more and more.
That post is the best summary I've seen of what happened in LLMs last year, but what's crazy is that it feels like you wrote it so long ago, and it's only been four weeks! So much has changed since then!
Mainly DeepSeek, but also the fallout: a trillion-dollar drop in US stock markets, the new vaporware Qwen that beats DeepSeek, the apparent discrediting of US export controls, OpenAI Operator, etc.
I am working on something even deeper. I have been working on a platform for personal data collection. Basically a server and an agent on your devices that records keystrokes, websites visited, active windows etc.
The idea is that I gather this data now and it may become useful in the future. Imagine getting a "helper AI" that still keeps your essence, opinions and behavior. That's what I'm hoping for with this.
eh, a hint. i was digging around some thing in these veins long time ago - more like collecting one's notions, not exact low-level actions - but apart of it being impossible back then, i dropped it for this simple reason: if you build such thing, it will know about you much more than you know. And that, in somebody else's hands.. identity theft would seem like walk in the park.
For sure, thank you for that hint. One of the most important things to consider is that something like this can't be misused on someone else, e.g. as a surveillance tool.
I should have clarified, I'm only building this for myself and my own use, there are no plans to take it further than that. Basically, I am trying to learn while building something that satisfies my own needs.
Not sarcasm. This is more a reaction to big data. Here's an analogy: Imagine cloud providers like iCloud, Google Drive, OneDrive etc. As a reaction to those, Owncloud and Nextcloud emerged for personal (well, also business) use.
My idea with this is inspired by that. It's just for personal use and to address my own needs.
There's a fairly low ceiling for max context tokens no matter the size of the model. Your hobby/small codebase may work, but for large codebases, you will need to do RAG and currently it's not perfect at absorbing the codebase and being able to answer questions on it.
Thank you, I experimented in that direction as well.
But for my actual codebase, that is sadly not 100% clear code, it would require lots and lots of work, to give examples so it has enough of the right context, to work good enough.
While working I am jumping a lot between context and files. Where a LLM hopefully one day will be helpful, will be refactoring it all. But currently I would need to spend more time setting up context, than solving it myself.
With limited scope, like in your example - I do use LLMs regulary.
The dev jobs won‘t go away, but they will change. Devs will be more and more like requirements engineers who need to understand the problem to then write prompts with the peoper context so that the llm can produce valuable and working code. And the next level will be to prompt llms to generate prompts for llms to produce code and solutions.
But already I hire less and less developers for smaller tasks. The things that I‘d assign to a dev in Ukraine to explore an idea, do a data transformation, make a UI for the internal company tool. I can do these things quicker with llm than trying to find a dev and explain the task.
> One person setting the objectives and the AI handling literally everything else including brainstorming issues etc, is going to be all that's needed.
A person just setting the prompt and letting the AI do all the work is not adding any additional value. Any other person can come in and perform the exact same task.
The only way to actually provide differentiation in this scenario is to either build your own models, or micromanage the outputs.
I said this in another comment but look at the leading chess engines. They are already so far above human level of play that having a human override the engines choice will nearly always lead to a worse position.
> You're not expecting it to always be right, are you?
I think another thing that gets lost in these conversations is that humans already produce things that are "wrong". That's what bugs are. AI will also sometimes create things that have bugs and that's fine so long as they do so at a rate lower than human software developers.
We already don't expect humans to write absolutely perfect software so it's unreasonable to expect that AI will do so.
I don't expect any code to be right the first time. I would imagine if it's intelligent enough to ask the right questions, research, and write an implementation, it's intelligent enough to do some debugging.
Agreed, though to your point I think we'll end up seeing more induced demand long-term
- This will enable more software to be built and maintained by same or fewer people (initially). Things that we wouldn't previously bother to do are now possible.
- More software means more problems (not just LLM-generated bugs which can be handled by test suites and canary deploys, but overall features and domains of what software does)
- This means skilled SWEs will still be in demand, but we need to figure out how to leverage them better.
- Many codebases will be managed almost entirely by agents, effectively turning it into the new "build target". This means we need to build more tooling to manage these agents and keep them aligned on the goal, which will be a related but new discipline.
SWEs would need to evolve skillsets but wasn't that always the deal?
I think quality is going to go up - I have so much code I wish I could go back and optimize for better performance, or add more comprehensive tests for, and LLMs are getting great at both of those as they work really well off of things that already exist. There has never been enough time/resources to apply towards even the current software demand, let alone future needs.
However, it also highlights a key problem that LLMs don’t solve: while they’re great at generating code, that’s only a small part of real-world software development. Setting up a GitHub account, establishing credibility within a community, and handling PR feedback all require significant effort.
In my view, lowering the barriers to open-source participation could have a bigger impact than these AI models alone. Some software already gathers telemetry and allows sharing bug reports, but why not allow the system to drop down to a debugger in an IDE? And why can’t code be shared as easily as in Google Docs, rather than relying on text-based files and Git?
Even if someone has the skills to fix bugs, the learning curve for compilers, build tools, and Git often dilutes their motivation to contribute anything.
Eh it performed a 1:1 conversion of ARM NEON to wasm SIMD, which with the greatest will in the world is pretty trivial work. Its something that ML is good at, because its the same problem area as "translate this from english to french", but more mechanistic
This is a task that would likely have taken as long to write by hand as the AI took to do it, given how long the actual task took to execute. 98% of the work is find and replace
Don't get me wrong - this kind of thing is useful and cool, but you're mixing up the easy coding donkey work with the stuff that takes up time
If you look at the actual prompt engineering part, its clear that this prompting produced extensively wrong results as well, which is tricky. Because it wasn't produced by a human, it requires extensive edge case testing and review, to make sure that the AI didn't screw anything up. If you have the knowledge to validate the output, it would have been quicker to write it by hand instead of reverse engineering the logic by hand. Its bumping the work off from writing it by hand, to the reviewers who now have to check your ML code because you didn't want to put in the work by hand
So overall - while its extremely cool that it was able to do this, it has strong downsides for practical projects as well
Every time AI achieves something new/productive/interesting, cue the apologists who chime in to say “well yeah but that really just decomposes into this stuff so it doesn’t mean much”.
I don’t get why people don’t understand that everything decomposes into other things.
You can draw the line for when AI will truly blow your mind anywhere you want, the point is the dominoes keep falling relentlessly and there’s no end in sight.
The argument has never changed the argument has always been the same.
LLMs do not think, they do not perform logic they are approximating thought. The reason why CoT works is because of the main feature of LLMs, they are extremely good at picking reasonable next tokens based on the context.
LLM are good and always have been good at three types of tasks:
- Closed form problems where the answer is in the prompt (CoT, Prompt Engineering, RAG)
- Recall from the training set as the Parameter space increases (15B -> 70B -> almost 1T now)
- Generalization and Zero shot tasks as a result of the first two (this is also what causes hallucinations which is a feature not a bug, we want the LLM to imitate thought not be a Q&A expert system from 1990)
If you keep being fooled by LLM thinking they are AGI after every impressive benchmark and everyone keeps telling you that in practice LLM are not good at tasks that are poorly defined, require niche knowledge, or require a special mental model that is on you.
I use LLM every day I speed up many tasks that would take 5-15 mins down to 10-120 seconds (worst case for re-prompts). Many times my tasks take longer than if I had done it myself because it’s not my work im just copying it. But overall I am more productive because of LLM.
Does LLM speeding up your work mean that LLM can replace Humans?
Personally I still don’t think LLM can replace Humans at the same level of quality because they are imitating thought not actually thinking. Now the question among the corporate overlords is will you reduce operating costs by XX% per year (wages) but reducing the quality of service for customers. The last 50 years have shown us the answer…
This is called the AI effect - where the goalposts are moved every time an AI system demonstrates a new ability. It's been going on for decades. https://en.wikipedia.org/wiki/AI_effect
Aka people have been consistently calling out the AI hype as being excessive for decades, despite a weird push by the marketing segments of the programming community to declare everything as being AGI. The current technology is better and has more applications, yes. For certain fields its very exciting. For others its not
The idea that deep blue is in any way a general artificial intelligence is absurd. If you'd believed AI researchers hype 20 years ago, we'd have everything fully automated by now and the first AGI was just around the corner. Despite the current hype, chatgpt and co is barely functional at most coding tasks, and is excessively poor at even pretty basic reasoning tasks
I would love for AI to be good. But every time I've given it a fair shake to see if it'll improve my productivity, its shown pretty profoundly that its useless for anything I want to use it for
"You can draw the line for when AI will truly blow your mind anywhere you want, the point is the dominoes keep falling relentlessly and there’s no end in sight"
I draw the line, when the LLM will be able to help me with a novel problem.
It is impressive how much knowledge was encoded into them, but I see no line from here to AGI, which would be the end here.
How are you defining apologists here? Anti-AI apologists? Human apologists? That's not a word you can just sprinkle on opposing views to make them sound bad.
Thanks to Simon for pointing out my point is encapsulated by the AI effect, which also offers an explanation:
"people subconsciously are trying to preserve for themselves some special role in the universe…By discounting artificial intelligence people can continue to feel unique and special.”
> Thanks to Simon for pointing out my point is encapsulated by the AI effect
And someone else pointed out that goes both ways. Every new AI article is evidence of AGI around the corner. I am open to AI being better in the future but it's useless for the work I do right now.
AI will blow my mind when it solves an unsolved mathematical/physics/scientific problem, i.e: "AI, give me a proof for (or against) the Riemann hypothesis"
Actually, it happened _long_ before that - 2018 was when I became aware of this technique, but I'm sure there's previous art: https://nullprogram.com/blog/2018/07/31/ (Prospecting for Hash Functions for those who already know).
That said, this is really brute forcing, not what the OP is asking for, which is providing a novel proof as the response to a prompt (this is instead providing the novel proof as one of thousands of responses, each of which could be graded by a function).
The thing is, that's not true at all. AI is great for some tasks, and poor for other tasks. That's the reason to break it down like this, because people are trying to explain where AI will and won't revolutionise things, instead of following along with the already-popping AI bubble uncritically
For example: AI's smash translation. They won't ever beat out humans, but as an automated solution? They rock. Natural language processing in general is great. If you want to smush in a large amount of text, and smush out a large amount of other text that's 98% equivalent but in a different structure, that's what AI is good for. Same for audio, or picture manipulation. It works because it has tonnes of training data to match your input against
What AI cannot do, and will never be able to do, is take in a small amount of text (ie a prompt), and generate a large novel output with 100% accuracy. It simply doesn't have the training data to do this. AI excels in tasks where it is given large amounts of context and asked to perform a mechanistic operation, because its a tool which is designed to extract context and perform conversions based on that context due to its large amounts of training data. This is why in this article the author was able to get this to work: they could paste in a bunch of examples of similar mechanical conversions, and ask the AI to repeat the same process. It has trained on these kinds of conversions, so it works reasonably well
Its great at this, because its not a novel problem, and you're giving it its exact high quality use case: take a large amount of text in, and perform some kind of structural conversion on it
Where AI fails is when being asked to invent whole cloth solutions to new problems. This is where its very bad. So for example, if you ask an AI tool to solve your business problem via code, its going to suck. Because unless your business problem is something where there are literally 1000s examples of how to solve it, the AI simply lacks the training data to do what you ask it, it'll make gibberish
It isn't the nature of the power of the AI, its that its inherently good for solving certain kinds of problems, vs other kinds of problems. It can't be solved with more training. The OPs problem is a decent use case for it. Most coding problems aren't. That's not that it isn't useful - people have already been successfully using them for tonnes of stuff - but its important to point out that its only done so well because of the specific nature of the use case
Its become clear that AI requires someone of equivalent skill as the original use case to manage its output if 100% accuracy is required, which means that it can only ever function as an assistant for coders. Again, that's not to say it isn't wildly cool, its just acknowledging what its actually useful for instead of 'waiting to have my mind blown'
The difference is though there isn't a whole lot of "whole cloth novel solutions" being written in software today so much as a "write me this CRUD app to do ABC" which current generations are exceedingly good at.
There are probably 10% of truly novel problems out there, the rest are just already solved problems with slightly different constraints of resources ($), quality (read: reliability) and time. If LLMs get good enough at generating a field of solutions that minimize those three for any given problem, it will naturally tend to change the nature of most software being written today.
I think there's a gap of problems between CRUD and novel. I imagine novel to be very difficult, unsolved problems that would take some of the best in the industry to figure out. CRUD problems are really basic reading/writing data to a database with occasional business logic.
But there's also bespoke problems. They aren't quite novel, yet are complicated and require a lot of inside knowledge on business edge cases that aren't possible to sum up in a word document. Having worked with a lot of companies, I can tell you most businesses literally cannot sum up their requirements, and I'm usually teaching them how their business works. These bespoke problems also have big implications on how the app is deployed and run, which is a whole different thing.
Then you have LLMs, which seem allergic to requirements. If you tell an LLM "make this app, but don't do these 4 things," it's very different from saying "don't do these 12 things." It's more likely to hallucinate, and when you tell it to please remember requirement #3, it forgets requirement #7.
Well, my job is doing things with lots of restraints. And until I can get AI to read those things without hallucinating, it won't be helpful to me.
You need to substitute "AI" with "LLMs" or "current transformer architecture" or something. AI means something completely new every few years so speaking of what AI can't do or can never do doesn't make any sense.
I just wrote up a very similar comment. It’s really nice to see that there are other people who understand the limits of LLM in this hype cycle.
Like all the people surprised by Deepseek when it has been clear for the last 2 years there is no moat in foundation models and all the value is in 1) high quality data that becomes more valuable as the internet fills with AI junk 2) building the UX on top that will make specific tasks faster.
IDK, I was playing with Claude yesterday/this morning and before I hit the free tier context limit it managed to create a speech-to-phoneme VQ-VAE contraption with a sliding window for longer audio clips and some sort of "attention to capture relationships between neighboring windows" that I don't quite understand. That last part was due to a suggestion it provided where I was like "umm, ok..."
Seems pretty useful to me where I've read a bunch of papers on different variational autoencoder but never spent the time to learn the torch API or how to set up a project on the google.
In fact, it was so useful I was looking into paying for a subscription as I have a bunch of half-finished projects that could use some love.
I 100% agree with you our trade is changed forever.
On the other hand, I am writing like 1000+ LOC daily, without much compromise on quality and my mental health, and thought of writing some code that is necessary but feels like a chore is not longer the case. The boost in output is incredible.
> Our trade has changed forever, and there's no going back. When companies claim that AI will replace developers, it isn't entirely bluster. Jobs are going to be lost unless there's somehow a demand for more applications
This is a key insight - the trade has changed.
For a long time, hoarding talent - who could conceive and implement such PRs - was a competitive advantage. It no longer is because companies can hire and get similar outcomes, with fewer and mediocre devs.
But at the same time, these companies have lost their technological moat. The people were the biggest moat. The hoarding of people were the reason why SV could stay ahead of other concentrated geographies. This is why SV companies grew larger and larger.
But now, anyone anywhere can produce anything and literally demolish any competitive advantage of large companies. As an example, literally a single Deepseek release yesterday destroyed large market cap companies.
It means that the future world is likely to have a large number of geographically distributed developers, always competing, and the large companies will have to shed market cap because their customers will be distributed among this competition.
It's not going to be pleasant. Life and work will change but it is not merely loss of jobs but it is going to be loss of the large corporation paradigm.
> literally a single Deepseek release yesterday destroyed large market cap companies
Nobody was “destroyed” - a handful of companies had their stock price drop, a couple had big drops, but most of those stocks are up today, showing that the market is reactionary.
You completely misunderstood the reason for the stock price drop. It was because of the DeepSeek MoE model's compute efficiency which vastly reduced the compute requirements needed to achieve a certain level of performance.
Notice how Apple and Meta stocks went up last 2 days?
You are misunderstanding my point. It is because anyone with a non-software moat will likely be able to leverage the benefits of AI.
Apple has a non-software moat: Their devices.
Meta has a non-software moat: their sticky users.
So does Microsoft, and Google to an extent with their non-software moat.
But how did they build the most in the first place? With software that only they could develop, at a pace that only they could execute, all because of the people they could hoard.
The companies of the future can disrupt all of them (maybe not apple) very quickly by just developing the same things as say Meta and "at the same quality" but for cheaper. The engineers moat is gone. The only moat meta has is network effects. That's one less barrier for a competing company to deal with.
Of course R1 wasn't written by AI. But the point is that in the past, such high quality software could only be written in a concentrated location - SV - because of computing resources and people who could use those computing resources.
Then in the 00s, the computing resources became widely available. The bottleneck was the people who could build interesting things. Imagine a third world country with access to AWS but no access to developers who could build something meaningful.
With these models, now these geographically distributed companies can build similarly high quality stuff.
R1 IS the example of something that previously only could be built in the bowels of large SV corporations.
I'm a developer that primarily uses gh copilot for python dev. I find it pretty useful as an intelligent auto-completer that understands our project's style, and unusual decorators we use.
What tools would you tell a copilot dev to try? For example, I have a $20/mo ChatGPT account and asking it to write code or even fix things hasn't worked very well. What am I missing?
While I dont know your scenario as an avid user of both gpt and claude, I would recommend move away from Google style search queries, and begin conversing. The more you give the LLM the more you'll get close to what you want.
A long time ago, I held the grandiose title of software architect. My job was to describe in a mix of diagrams, natural language and method signatures what developers were supposed to do.
The back and forth was agonising. They were all competent software engineers but communicating with them was often far more work than just writing the damn code myself.
So yes I do believe that our trade has changed forever. But the fact that some of our coworkers will be AIs doesn't mean that communicating with them is suddenly free. Communcation comes with costs (and I don't mean tokens). That won't change.
If you know your stuff really well, i.e. you work on a familiar codebase using a familiar toolset, the shortest path from your intentions to finished code will often not include anyone else - no humans and no AI either.
In my opinion, "LLMs are only marginally useful in coding" is not true in general, but it could well be true for a specific person and a specific coding task.
Who would the new applications be for? I figure that it’ll be far easier to build apps for use by LLMs than building apps for people to use. I don’t think there will be this large increase of induced demand, the whole world just got a lot more efficient and that’s probably a bad thing for the average person.
take some process that you, or someone you know does right now that involves spreadsheets and copy-pasting between various apps. hiring a software engineer to build an app so it's just a [do-it] button previously didn't make sense because software engineer time was too expensive. Now, that app can be made, so the HR or whatever person doesn't need to waste their time on automatable tasks.
The thing that has me most inspired is that one will finally get to ask the questions that seemed strange to ask before. Like, 1:40 times, when I press the button nothing happens for 10 seconds and I don't know if I've pressed the button properly.
The people who are spending time manually doing a task that could be handled by a program are usually the exact same people who don't have the experience (or authority) to be able to say "this is a thing that could be automated with a tool if we paid a few thousand dollars to develop it".
Hiring someone to remodel a bathroom is hard enough, now try hiring a contract software engineer, especially when you don't have budget authority!
That said, I heard about a fire chief last year who had to spend two days manually copying and pasting from one CRM to another. I wish I could help people like that know when to pay someone to write a script!
I imagine even in that role figuring out how to hire someone so solve a problem would still take longer than manually crunching through that themselves.
If AI increases the productivity of a single engineer between 10-100x over the next decade, there will be a seismic shift in the industry and the tech giants will not walk away unscathed.
There are coordination costs to organising large amounts of labour. Costs that scale non-linearly as massive inefficiencies are introduced. This ability to scale, provide capital and defer profitability is a moat for big tech and the silicon valley model.
If a team of 10 engineers become as productive as a team of 100-1000 today, they will get serious leverage to build products and start companies in domains and niches that are not currently profitable because the middle managers, C-Suite, offices and lawyers are expensive coordination overhead. It is also easier to assemble a team of 10 exceptional and motivated partners than 1000 employees and managers.
Another way to think about it is what happens when every engineer can marshal the AI equivalent of $10-100m dollars of labour?
My optimistic take is that the profession will reach maturity when we become aware of the shift in the balance of power. There will be more solo engineers and we will see the emergence of software practices like the ones doctors, lawyers and accountants operate.
This is a really interesting take that I don't see often in the wild. Actually, it's the first time I read someone saying this. But I think you are definitely onto something, especially if costs of AI are going to lower faster than expected even a few weeks ago.
I'm tempted by this vision, though that in itself makes me suspicious that I'm indulging in wishful thinking. Also lutusp wrote a popular article promoting it about 45 years ago, predicting that no companies like today's Microsoft would come to exist.
A thing to point out is that management is itself a skill, and a difficult one, one where some organizations are more institutionally competent than others. It's reasonable to think of large-organization management as the core competency of surviving large organizations. Possibly the hypothetical atomizing force you describe will create an environment where they are poorly adapted for continuing survival.
To play devils advocate, the main obstacle in launching a product doesn't involve the actual development/coding. Unless you're building something in hard-tech, it's relatively easy to build the run of the mill software.
The obstacles are in marketing, selling it, building a brand/reputation, integrating it with lots of 3rd party vendors, and supporting it.
So yes, you can build your own Salesforce, or your own Adobe Photoshop with a one-man crew much faster and easier. But that doesn't mean you, as an engineer can now build your own business selling it to companies who don't know anything about you.
a (tile-placing) guy who was rebuilding my bathrooms, told this story:
when he was greener, he happened to work with some old fart... who managed to work 10x faster than others, with this trick: put all the tiles on the wall with a diluted cement-glue very quick, then moving one tile forces most other tiles around to move as well.. so he managed to order all the tiles in very short time.
As i never had the luxury of decent budget, since long time ago i was doing various meta-programming things, then meta-meta-programming.. up to extent of say, 2 people building and managing and enjoying a codebase of 100KLOC (python) + 100KLOC js... ~~30% generated static and unknown %% generated-at-runtime - without too much fuss or overwork.
But it seems that this road has been a dead end... for decades. Less and less people use meta-programming, it needs too deep understanding ; everyone just adds yet-another (2y "senior") junior/wanna-be to copy-paste yet another crud.
So maybe the number of wanna-bees will go down.
Or "senior" would start meaning something.. again.
Or idiotically-numbing-stoopid requirements will stop appearing..
As long as the output of AI is not copyrightable, there will be demand for human engineers.
After all, if your codebase is largely written by AI, it becomes entirely legal to copy it and publish it online, and sell competing clones. That's fine for open source, but not so fine for a whole lot of closed source.
I got incredible results in asking AIs for sql queries. I just enter my data and what I want the output to look like. Then I ask it to provide 10 different versions that might be faster. I test them all and tell it which is faster and then I ask it to make variations on this path. Then I ask it to add comments to the code which is the fastest. I verify the query, do some more test, and I'm good to go. I understand SQL pretty well but trying to make 10 different versions of one code would've took me at least an hour.
"Development" is effectively translating abstractions of an intended operation to machine language.
What I find kind of funny about the current state is we're using large language models to, like, spit out React or Python code. This use case is obviously an optimization to WASM, so a little closer to the metal, but at what point to programs (effectively suites of operations) just cut out the middleman entirely?
I've wondered about this too. The LLM could just write machine code. But now a human can't easily review it. But perhaps TDD makes that ok. But now the tests need to be written in a human readable language so they can be checked. Or do they? And if the LLM is always right why does the code need to be tested?
The LLM might be terrible at writing machine code directly. The kinds of mistakes I see GPT-4 making in Python, PostScript, or JS would be a much bigger problem in machine code. It "gets confused" and "makes mistakes" in ways very similar to humans. I haven't had a chance to try DeepSeek R1 yet.
I'm not entirely worried, yet. I don't think that LLMs produce code/architecture that is trustworthy enough for them to operate independently. Of course suits & ties will believe it and kill many dev jobs eventually, but as per usual wtf do they know about how things work on the ground. Executives thrive on NYT articles and hearsay from LinkedIn.
Broadly agree. Whether or not it is useful isn't really an interesting discussion, because it so clearly is useful. The more interesting question is what it does to supply and demand. If the past is any indication, I think we've seen that lowering to barrier to getting software shipped and out the door (whether it's higher level languages, better tooling) has only made demand greater. Maybe this time it's different because it's such a leap vs an incremental gain? I don't know. The cynical part of me thinks that software always begets more software, and systems just become ever more complex. That would suggest that our jobs are safe. But again, I don't say that with confidence.
> If the past is any indication, I think we've seen that lowering to barrier to getting software shipped and out the door (whether it's higher level languages, better tooling) has only made demand greater.
Something I think about a lot is the impact of open source on software development.
25 years ago any time you wanted to build anything you pretty much had to solve the same problems as everyone else. When I went to university it even had a name - the software reusability crisis. At the time people thought the solution was OOP!
Open source solved that. For any basic problem you want to solve there are now dozens of well tested free libraries.
That should have eliminated so many programming jobs. It didn't: it made us more productive and meant we could deliver more value, and demand for programmers went up.
I don't think it's necessarily any larger of a leap than any of the other big breakthroughs in the space. Does writing safe C++ with an LLM matter more than choosing Rust? Does writing a jQuery-style gMail with an LLM matter more than choosing a declarative UI tool? Does adding an LLM to Java 6 matter more than letting the devs switch to Kotlin?
Individual developer productivity will be expected to rise. Timelines will shorten. I don't think we've reached Peak Software where the limiting factor on software being written is demand for software, I think the bottlenecks are expense and time. AI tools can decrease both of those, which _should_ increase demand. You might be expected to spend a month outputting a project that would previously have taken four people that month, but I think we'll have more than enough demand increase to cover the difference. How many business models in the last twenty years that weren't viable would've been if the engineering department could have floated the company to series B with only a half dozen employees?
What IS larger than before, IMO, is the talent gap we're creating at the top of the industry funnel. Fewer juniors are getting hired than ever before, so as seniors leave the industry due to standard attrition reasons, there are going to be fewer candidates to replace them. If you're currently a software engineer with 10+ YoE, I don't think there's much to worry about - in fact, I'd be surprised if "was a successful Software Engineer before the AI revolution" doesn't become a key resume bullet point in the next several years. I also think that if you're in a position of leadership and have the creativity and leadership to make it work, juniors and mid-level engineers are going to be incredibly cost effective because most middle managers won't have those things. And companies will absolutely succeed or fail on that in the coming years.
When tools increase a worker's efficiency, it's rare that the job is lost. It's much more common that the demand for that job changes to take advantage of the productivity growth.
This is why the concerns from Keynes and Russel about people having nothing to do as machines automated away more work ended up being unfounded.
We fill the time... with more work.
And workers that can't use these tools to increase their productivity will need to be retrained or moved out of the field. That is a genuine concern, but this friction is literally called the "natural rate of unemployment" and happens all the time. The only surprise is we expected knowledge work to be more inoculated from this than it turns out to be.
In my experience a lot of it is (d) defaulting to criticizing new things, especially things that are "trendy" or "hot" and (e) not liking to admit that one's own work can partially be done by such a trendy or hot thing.
AI will only ever be able to develop what it is asked/prompted for. The question is often ill formed, resulting in an app that does not do what you want. So the prompt needs to be updated, the result needs to be evaluated and tweaks need to be done to the code with or without help of AI.
In fact, from a distance seen, the software development pattern in AI times stays the same as it was pre-AI, pre-SO, pre-IDE as well as pre-internet.
Just to say, sw developers will still be sw developers.
It's possible that the previous tools just weren't good enough yet. I play with GPT-4 programming a lot, and it usually takes more work than it would take to write the code myself. I keep playing with it because it's so amazing, but it isn't to the point where it's useful to me in practice for that purpose. (If I were an even worse coder than I am, it would be.) DeepSeek looks like it is.
I may be wrong, but I think right now, from reading stories of people looking at use AI and having poor experiences, AI is useful and effective for some tasks and not for others, and this is an intrinsic property - it won't get better with bigger models. You need a task which fits well with what AI can do, which is basically auto-complete. If you have a task which does not fit well, it's not going to fly.
Right: LLMs have a "jagged frontier". They are really good at some things and terrible at other things, but figuring out WHAT those things are is extremely unintuitive.
You have to spend a lot of time experimenting with them to develop good intuitions for where they make sense to apply.
I expect the people who think LLMs are useless are people who haven't invested that time yet. This happens a lot, because the AI vendors themselves don't exactly advertise their systems as "they're great at some stuff and terrible at other stuff and here's how to figure that out".
Indeed, our trade has changed forever, and more specifically, we might have to alter our operational workflows in the entire industry as well.
There are so many potential trajectories going forward for things to turn sour, I don't even know where to start the analysis. The level of sophistication an AI can achieve has no upper bound.
I think we've had a good run so far. We've been able to produce software in the open with contributions from any human on the planet, trusting it was them who wrote the code, and with the expectation that they also understand it.
But now things will change. Any developer, irrespective of skill and understanding of the problem and technical domains can generate sophisticated looking code.
Unfortunately, we've reached a level of operational complexity in the software industry, that thanks to AI, could be exploited in a myriad ways going forward. So perhaps we're going to have to aggressively re-adjust our ways.
I don't think trusting that someone wrote the code was ever a good assurance of anything, and I don't see how that changes with AI. There will always be certain _individuals_ who are more reliable than others, not because they handcraft code, but because they follow through with it (make sure it works, fix bugs after release, keep an eye to make sure it worked, etc).
Yes, AI will enable exponentially more people to write code, but that's not a new phenomenon - bootcamps enabled an order of magnitude more people to become developers. So did higher level languages, IDEs, frameworks, etc. The march of technology has always been about doing more while having to understand less - higher and higher levels of abstraction. Isn't that a good thing?
Until now, the march of technology has taken place through a realm which was somewhat limited or slowed down only by our advancements in the physical and cognitive realities. This has given us ample time to catch up, to adjust.
The cognitive reality of AI, and more specifically of AI+Humans in the context of a social and globally connected world, is on a higher level of sophistication and can unfold much faster, which in turn might generate entirely unexpected trajectories.
The point was not to be very accurate, it was to make the point that it has existed for a very short amount of time on the scale of humanity. Quibbling over whether software engineering started in the 40s or the 50s and whether that is greater or less than an average life expectancy is beside the point.
People posting comments without caring whether they are true or false undermines the presumption of good faith that underlies rational discourse. Please stop posting such comments on this site. Instead, only post comments that you have some reason to believe are true.
It is not about not caring if the statement is true or false. The statement neither absolutely true nor absolutely false, because there is no absolute definition of when software engineering started, or what "a lifetime" is. It is about making a statement that communicates information. However, if I must prove that my statement can reasonably considered "true" in order to prove that it does communicate the short span of time for which software engineering has existed:
- Avg. life expectancy in USA: 77.5 years
- 2025 - 77.5 = 1947.5
- In 1945, Turing published "Proposed Electronic Calculator"
- The first stored-program computer was built in 1948
- The term "software engineering" wasn't used until the 1960s
If you want to define "software engineering" such that it is more than 77.5 years old, that's fine. But saying that software engineering is less than 77.5 years old is clearly a reasonable stance.
Please stop berating me for a perfectly harmless and reasonably accurate statement. If you're going to berate me for anything, it should be for its brevity and lack of discussion-worthy content. But those are posted all the time.
Did you even look at the generated code? DeepSeek simply rewrote part of the inference code making use of SIMD instructions on wasm. It literally boils down to inserting `if defined __wasm_simd128__` at some places then rewritting the loops to do floating point operations two by two instead of one after the other (which is where the 2X claim comes from). This is very standard and mostly boilerplate.
Useful, sure, in that it saved some time in this particular case. But most of the AI-generated code I interact with is a hot unmaintainable mess of very verbose code, which I'd argue actually hurts the project in the long term.
I’m still just looking for a good workflow where I can stay in my editor and largely focus on code, rather than trying to explain what I want to an LLM.
I want to stay in Helix and find a workflow that “just works”. Not sure even what that looks like yet
I've not tried tbh. Most of the workflows i've seen (i know i looked at Cursor, but it's been a while) appear to be to write lengthy descriptions of what you want it to do. As well as struggling with the amount of context you need to give it because context windows are way too small.
I feel like i want a more intuitive, natural process. Purely for illustration -- because i have no idea what the ideal workflow is -- I'd want something that could allow for large autocomplete without changing much. Maybe a process by which i write a function, args, docstring on the func and then as i write the body autocomplete becomes multiline and very good.
Something like this could be an extension of the normal autocomplete that most of us know and love. A lack of talking to an AI, and more about just tweaking how you write code to be very metadata rich so AIs have a rich understanding of intent.
I know there are LLM LSPs which sort of do this. They can make shorter autocompletes that are logical to what you're typing, but i think i'm talking about something larger than that.
So yea.. i don't know, but i just know i have hated talking to the LLM. Usually it felt like "get out of the way, i can do it faster" sort of thing. I want something to improve how we write code, not an intern that we manage. If that makes sense.
GH copilot code completion is really the only one I’ve found to be consistently more of a benefit than a time sync. Even with the spiffy code generators using Claude or whatever, I often find myself spending as much time figuring out where the logical problem is than if I had just coded it myself, and you still need to know exactly what needs to be done.
I’d be interested in seeing how much time they spent debugging the generated code and and how long they spent constructing and reconstructing the prompts. I’m not a software developer anymore as my primary career, so if the entire lower-half of the software development market went away catering wages as it did, it wouldn’t directly affect my professional life. (And with the kind of conceited, gleeful techno-libertarian shit I’ve gotten from the software world at large over the past couple of years as a type of specialized commercial artist, it would be tough to turn that schadenfreude into empathy. But we honestly need to figure out a way to stick together or else we’re speeding towards a less mechanical version of Metropolis.)
LLMs are only marginally useful for coding. You have simply chosen to dismiss or or 'give up' on that fact. You've chosen what you want to believe in contrast to the reality that we are all experiencing.
I think the reality is that these AI output the "average" of what was in their training set, and people receive it differently depending on if they are below or above this average.
It's a bit like what happens with "illusion of knowledge" or "illusion of understanding". When one knows the topic, one can correct the output of AI. When one doesn't, one tends to forget it can be inaccurate or plain wrong.
They are a useful tool, but not 'incredibly useful'. The simple, repetitive code in this example is what they are good at. It's like 1% of what I do working on products. Writing code isn't even that impressive, the whole job is figuring out exactly what people want.
given that there's no standardized scale of usefulness, is the distinction between "useful" for one person vs "incredibly useful", when nothing concrete has been specified; is that distinction really the important thing here? both of you find it useful. I might go off on a long tangent about how I love my hammer, it's the best, and you'll think I'm ridiculous because it's just a hammer, but at the end of the day, we can both agree that the hammer is doing the job of driving in nails.
> I hope we can put to rest the argument that LLMs are only marginally useful in coding - which are often among the top comments on many threads. I suppose these arguments arise from (a) having used only GH copilot which is the worst tool, or (b) not having spent enough time with the tool/llm, or (c) apprehension. I've given up responding to these.
Look at the code that was changed[0]. It's a single file. From what I can tell, it's almost purely functional with clearly specified inputs and outputs. There's no need to implement half the code, realize the requirements weren't specified properly, and go back and have a conversation with the PM about it. Which is, you know, what developers actually do.
This is the kind of stuff LLMs are great at, but it's not representative of a typical change request by Java Developer #1753 at Fortune 500 Enterprise Company #271.
"Yeah, but LLMs can't handle millions of lines of crufty old Java" is a guaranteed reply any time this topic comes up.
(That's not to say it isn't a valid argument.)
Short answer: LLMs are amazingly useful on large codebases, but they are useful in different ways. They aren't going to bang out a new feature perfectly first time, but in the right hands they can dramatically accelerate all sorts of important activities, such as:
- Understanding code. If code has no documentation, dumping it into an LLM can help a lot.
- Writing individual functions, classes and modules. You have to be good at software architecture and good at prompting to use them in this way - you take on the role of picking out the tasks that can be done independently of the rest of the code.
- Writing tests - again, if you have the skill and experience to prompt them in the right way.
Yes, LLMs are very useful, when used properly. But the linked change request is not a good example of how they would be used by a typical software developer. The linked pull request is essentially output from a compiler that's been hardcoded.
> Writing individual functions, classes and modules. You have to be good at software architecture and good at prompting to use them in this way - you take on the role of picking out the tasks that can be done independently of the rest of the code.
If you have enough skill and understanding to do this, it means you already have enough general software development experience and domain-specific experience and experience with a specific, existing codebase to be in rarefied air. It's like saying, oh yeah a wrench makes plumbing easy. You just need to turn the wrench, and 25 years of plumbing knowledge to know where to turn it.
> Writing tests - again, if you have the skill and experience to prompt them in the right way.
This is very true and more accessible to most developers, though my big fear is it encourages people to crap out low-value unit tests. Not that they don't love to do that already.
> If you have enough skill and understanding to do this, it means you already have enough general software development experience and domain-specific experience and experience with a specific, existing codebase to be in rarefied air.
Yes, exactly. That's why I keep saying that software developers shouldn't be afraid that they'll be out of a job because of LLMs.
> "Yeah, but LLMs can't handle millions of lines of crufty old Java" is a guaranteed reply any time this topic comes up.
That's not at all what the GP was saying, though:
> There's no need to implement half the code, realize the requirements weren't specified properly, and go back and have a conversation with the PM about it. Which is, you know, what developers actually do.
> This is the kind of stuff LLMs are great at, but it's not representative of a typical change request by Java Developer #1753 at Fortune 500 Enterprise Company #271.
How do you get these tools to not fall over completely when relying on an existing non-public codebase that isn't visible in just the current file?
Or, how do you get them to use a recent API that doesn't dominate their training data?
Combining the both, I just cannot for the life of me get them to be useful beyond the most basic boilerplate.
Arguably, SIMD intrinsics are a one-to-one translation boilerplate, and in the case of this PR, is a leetcode style, well-defined problem with a correct answer, and an extremely well-known api to use.
This is not a dig on LLMs for coding. I'm an adopter - I want them to take my work away. But this is maybe 5% of my use case for an LLM. The other 95% is "Crawl this existing codebase and use my APIs that are not in this file to build a feature that does X". This has never materialized for me -- what tool should I be using?
"Or, how do you get them to use a recent API that doesn't dominate their training data?"
Paste in the documentation or some examples. I do this all the time - "teaching" an LLM about an API it doesn't know yet is trivially easy if you take advantage of the longer context inputs to models these days.
I've tried this.
I've scraped example pages directly from github, and given them a 200 line file with the instructions "just insert this type of thing", and it will invariably use bad APIs.
I'm at work so I can't try again right now, but last I did was use claude+context, chatGPT 4o with just chatting, Copilot in Neovim, and Aider w/ claude + uploading all the files as context.
It took a long time to get anything that would compile, way longer than just reading + doing, and it was eventually wrong anyway. This is a recurring issue with Rust, and I'd love a workaround since I spend 60+h/week writing it (though not bevy). Probably a skill issue.
I don't know anything about bevy but yeah, that looks like it would be a challenge for the models. In this particular case I'd tell the model how I wanted it to work - rather than "Add a button to the left panel that prints "Hello world" when pressed" I'd say something more like (I'm making up these details): "Use the bevy:Panel class with an inline callback to add a button to the bottom of the left panel".
Or I'd more likely start by asking for options: "What are some options for adding a button to that left panel?" - then pick one that I liked, or prompt it to use an approach it didn't suggest.
After it delivered code, if I didn't like the code it had used I'd tell it: "Don't use that class, use X instead" or "define a separate function for that callback" or whatever.
Hahaha. My favorite was when we bumped go up to use go 1.23 and our AI code review tool flagged it because “1.22 is actually the latest release.” Yesterday.
I use my own tools and scripts, and those aren't for everyone - so I'm just gonna make some general suggestions.
1. You should try Aider. Even if you don't end up using it, you'll learn a lot from it.
2. Conversations are useful and important. You need to figure out a way to include (efficiently, with a few clicks) the necessary files into the context, and then start a conversation. Refine the output as a part of the conversation - by continuously making suggestions and corrections.
3. Conversational editing as a workflow is important. A better auto-complete is almost useless.
4. Github copilot has several issues - interface is just one of them. Conversational style was bolted on to it later, and it shows. It's easier to chat on Claude/Librechat/etc and copy files back manually. Or use a tool like Aider.
5. While you can apply LLMs to solve a particular lower level detail, it's equally effective (perhaps more effective) to have a higher level conversation. Start your project by having a conversation around features. And then refine the structure/scaffold and drill-down to the details.
6. Gradually, you'll know how to better organize a project and how to use better prompts. If you are familiar with best practices/design patterns, they're immediately useful for two reasons. (1) LLMs are also familar with those, and will help with prompt clarity; (2) Modular code is easier to extend.
7. Keep an eye on better performing models. I haven't used GPT-4o is a while, Claude works much, much better. And sometimes you might want to reach for o1 models. Other lower-end models might not offer any time savings; so stick to top tier models you can afford. Deepseek models have brought down the API cost, so it's now affordable to even more people.
8. Finally, it takes time. Just as any other tool.
I agree with your overall point, and your despair at software engineers who are still refusing to acknowledge the value of these tools during the process of writing code. However
> A better auto-complete is almost useless.
That's not true. I agree that Copilot seemed unhelpful when I last tried it, but Cursor's autocomplete is extremely useful.
I don’t understand. When I asked DeepSeek how to find AWS IoT Thing creation time it suggested me to use “version” field and treat it as a Unix timestamp. This is obvious nonsense. How can this tool generate anything useful other than summaries of pre-existing text? My knowledge of theory behind LLMs also suggests this is all they can do reasonably well.
When I see claims like this I suspect that either people around me somehow 10x better at promoting or they use different models.
You're making the mistake of treating an LLM like a search engine, and expecting it to be able to answer questions directly from its training data.
Sometimes this works! But it's not guaranteed - this isn't their core strength, especially once you get into really deep knowledge of complex APIs.
They are MUCH more useful when you use them for transformation tasks: feed in examples of the APIs you need to work with, then have them write new code based on that.
Working effectively with LLMs for writing code is an extremely deep topic. Most people who think they aren't useful for code have been mislead into believing that the LLMs will just work - and that they don't first need to learn a whole bunch of unintuitive stuff in order to take advantage of the technology.
> Working effectively with LLMs for writing code is an extremely deep topic.
There is a space for learning materials here. I would love to see books/trainings/courses on how to use AI effectively. I am more and more interested in this instead of learning new programming language of the week.
At the moment the space is moving so fast that anyone who tries to write a book will be outdated by the time it's published. The only option is to dive in yourself or give up and wait for things to settle down and plateau.
> When companies claim that AI will replace developers, it isn't entirely bluster.
I'm not so sure there isn't a bit of bluster in there. Imagine when you hand-coded in either machine code or assembly and then high level languages became a thing. I assume there was some handwringing then as well.
Seems like the exact opposite. The very example you are replying to is the mechanistic translation of one low level language to another, maybe one of the most boring tasks imaginable.
For whatever reason a good part of the joy of day to day coding for me was solving many trivial problems I knew how to solve. Sort of like putting a puzzle together. Now I think higher level and am more productive but it's not as much fun because the little easy problems aren't worth my time anymore.
There is a near-infinite demand for more applications. They simply become more specific and more niche. You can think to a point where everyone has their own set of applications custom for the exact workflow that they like.
Just look at the options dialogue for Microsoft Word at least back in the day. It was pretty much everyone's pet feature over the last 10 years.
I hope we can put to rest the argument that LLMs are only marginally useful in coding - which are often among the top comments on many threads. I suppose these arguments arise from (a) having used only GH copilot which is the worst tool, or (b) not having spent enough time with the tool/llm, or (c) apprehension. I've given up responding to these.
Our trade has changed forever, and there's no going back. When companies claim that AI will replace developers, it isn't entirely bluster. Jobs are going to be lost unless there's somehow a demand for more applications.