It's sad because I have seen some truly remarkable progress in LLMs, but I feel like we aren't allowed to be honest anymore that LLMs aren't going to replace programmers or moderate our expectations.
It's sad because I have seen some truly remarkable progress in LLMs, but I feel like we aren't allowed to be honest anymore that LLMs aren't going to replace programmers or moderate our expectations.
For any semi novel development I want to write it myself to establish the patterns I like and get an understanding of what I'm building. It's the boring stuff I hand over to Claude.
I certainly can see it being useful for writing additional tests, although I am very worried based on what I've seen that it will introduce more bugs than it's worth, which is why it's still a tool I use for hobby projects and not for real work.
If your metric is number of tests, sure. If your metric is number of useful tests… eh
But literally every single programmer I know has this opinion.
Of course they are terrible at their job, so AI doesn't make their code much worse.
I've done some stuff for a compiler in Java, backend web services in Python/Go/TS, frontend w/ React/TS.
I was a huge skeptic of this stuff at first but started using it about a year ago. I could definitely live without it, but it also saves me a significant amount of time.
I've been working on a feature in Python. With Copilot edits I just needed to find files the implemented the pattern, add it to the chat context. and write something like "implement feature x following the same pattern". It never gets it right the first time, but you can just keep the conversation going and have it iterate.
Afterwards I can just write /tests and Copilot generates reasonable tests. If it missed cases I can ask it to write cover those tests. Often times I can also just write literally "cover edge cases" and it handles all reasonable scenarios.
With what I was left with at that point, it probably would have been a wash to fix that code or just start from scratch manually.
I don't blame Loveable, I think it's a wonderful product bordering on magic, like v0 and Bolt.new. I just think they are amazing products that have been over hyped to god-like status.
What it is just a summary of the internet.
I used to think he was competent but now I think he's a moron
> Your domain is weird/rare, so LLMs are terrible because their training data is very limited.
And this is how knowledge collapse [1] shows its' head.[1] https://arxiv.org/abs/2404.03502
I am not a big fan of LLMs so I try them once in a while, asking to "implement blocked clause decomposition in Haskell." They can recite a paper (and several other papers, with references) almost verbatim, but they do not posess enough comprehension of what is going on in these papers. As time passes by, with each new LLM, the level of comprehension drops. Last time LLM tried to persuade me to write code instead of providing me with code.
With this example usage:
-- Example usage:
let clause1 = Set.fromList [1, 2] -- represents (x1 ∨ x2)
let clause2 = Set.fromList [-1, 3] -- represents (¬x1 ∨ x3)
let formula = Set.fromList [clause1, clause2]
-- Decompose the formula
let (nonBlocked, blocked) = decompose formula
How did it do?Did it do just from the prompt or you had to nudge it? Can you share full chat history?
Can you share actual interaction on their site?
https://support.anthropic.com/en/articles/9450526-how-can-i-...
> It’s verbatim, I promise.
Of course, I believe you. It is verbatim.The training data is always limited, because if there was an existing software that already did what I'm doing, I'd be using it instead of writing it :)
So by definition, unless I'm learning how to program and doing exercises that thousands have done before me, I'm doing something for which there is no training data.
> The rest of us peasants tends to recombine previously solved problems into to novel solutions to solve business needs, and that works rather well with LLMs.
You took the words right out of my mouth! I wrote a draft reply to OP (but discarded it) with similar thoughts -- roughly: I work on CRUD apps, and so do most other devs; LLMs are a terrific fit for this subject matter.Doing basic stuff with a very limited scope that’s likely well documented all over the internet, great.
Boilerplate, tedious yet simple things, works awesome as enhanced autocomplete.
More complex stuff, give it a shot, maybe you’ll get lucky, otherwise if it starts fucking up I’ve had the most success just taking a step back and doing it myself, maybe chatting with it as a live docs substitute, or a realtime stack overflow/discord programming channel which are also sometimes of dubious quality but frequently useful.
The misery really lies in getting stuck in that cycle of it just messing up over and over as you try to get it to make this thing work that is clearly beyond its scope and it’s just turning everything into a greater and greater mess of hallucinated bullshit.
Yeah, I think this is exactly right. I use it for adding new files to an existing codebase, but without giving it access to that codebase, by passing in the definitions I want it to work with. It gets stuff wrong a lot, and I need to keep anything I'm asking for _well_ within a scope that I can be eagle-eyed about. But if I want to do something pretty simple that would be slightly annoying to write by hand, and can be done in a single file, it makes a pleasant alternative to typing out the code by hand.
I don't think I would be able to do this as a junior developer, I think this is only working because I can tell when it's full of shit, and I lasted about 90m of being willing to let IDE-integration happen, because it's too easy to be lazy and not scrutinize every little change, and that way lies total madness. This makes me beyond skeptical of non-developers writing anything significant with it: they'd be much, much better off learning Bubble or similar.
I've built a couple pretty simple apps that have been basically no code beyond tweaks for me.
I do think a big knowledge gap is the acceleration of prompting by knowing how to talk about code. LLMs show a lot of difference in response between "make the top bit stay on the screen on small screens" and "make the <th> element sticky for viewports <600px".
- autocompletion (about half the time)
- questions on the syntax for certain commands (faster than looking up in the docs, usually pretty accurate)
- questions for how to solve a particular problem or gotcha (faster than looking up on SO, but also less accurate)
It's a useful tool for certain cases, for sure. But it's not a "game changer" in terms of productivity.
So I definitely think the value proposition of AI coding is higher when you have programmatical control over the workflow.
On a related note, the recent Cline Plan+Act function has also been a game changer.
LLMs are a tool. It’s also weird and counterintuitive so it takes some time to get really good with them.
I haven't heard anyone in tech say programmers will be replaced by this tech.
I have heard persons outside of tech say it, but I think they lack sufficient context.
I mean, if we get AGI, yes, we might be fully out of a job. But, so far I think many programmers agree this seems to be a ways off.
But, I think you underestimate how many programmers used to copy paste code from StackOverflow and articles, etc.
We even had/have a phrase for that: "copy pasta".
Those programmers are getting more applicable templated code than they used to get via copy paste.
When I'm coding in my preferred languages, I am faster without AI.
But, when I'm writing yaml or something else for an unfamiliar tool or platform, I do get a productivity boost, even if I have to debug the code / configuration.
Also don't believe your lying eyes.