"tab completion good enough to write 25% of code" feels like a pretty good hit rate to me! Especially when you consider that a good chink of the other 75% is going to be the complex, detailed stuff where you probably want someone thinking about it fairly carefully.
The problem being that the time spent fixing the bugs in that 25% outweighs the time saved. Now that tools like Copilot are being widely used, studies are showing that they do not in fact boost productivity. All claims to the contrary seem to be either anecdotal or marketing fluff.
The AI tap complition is >100000% better than the coding assistants, it just saves you typing and doesn't introduce new bugs you need to fix instead of writting buggy shitty code from a text description.
I have around 7 YOE, and I have found LLMs useful for very specific questions about syntax whenever I am working in a new language. For example, I needed to write some typescript recently and asked it how can I make a type that does X.
It is not as good with questions about API documentation for popular java libraries though and it will just hallucinate APIs/method names.
If I ask it a generic question like "how can I create a class in Java to invoke this API and store the data in this database" it is pretty useless. I'm sure I could spend more time giving it a better prompt but at that point I can just write the code myself.
Overall they are a better search engine for stackoverflow, but the LLMs are not really helping me code 30% faster or whatever the latest claim is.
It'd be interesting to know how much of Google's code is written by junior engineers. I can't imagine 25% of the code is from juniors, at which point Google's CEO is either exaggerating what he considers LLM-generated code or more than just juniors are using it.
I agree with your take though, it does seem helpful to juniors but not beyond that (yet), and this OP stat seems dubious unless juniors are doing a big portion of the work.
"rm re[TAB]" to remove a file called something like "report-accounting-Q1_2024.docx" is really helpful, especially when it adds quotes as required, but not exciting enough to get me out of bed any earlier in the morning.
I feel it's a bit like the old "measuring developer productivity in LoC" metric.
As I hinted at in another comment, in Java if you had a "private String name;" then the following:
/**
* Returns the name.
* @return The name.
*/
public String getName() {
return this.name;
}
and the matching setter, are easy enough to generate automatically and you don't need a LLM for it. If AI can do that part of coding a bit better, sure it's helpful in a way, but I'm not worried about my job just yet (or rather, I'm more worried about the state of the economy and other factors).
For me it's really goddam satisfying having good autocomplete, especially when you are just writing boilerplate lines of code to get the code into a state where you actually get to work on the fun stuff (ther harder problems).
I don't care. The vast majority of code written in the private space is garbage and not unique. Products are usually not won because of the code.
Would I send the source of a trading algo or chatgpt to a third party, probably not but those are the outliers. The code for your xyz SAAS does not matter.
I am probably an outlier in that I don't really care what corpus a LLM trains off of. Its its available in the public space, go for it.
Great question, yeah I do. Right now it backs up to a separate NAS on my home network. Every once in a while I'll copy the most important directories onto a microSD card backup, but its usually going to be at least a few weeks out of date.
They are, but frequently the boxes where they are hosted are in AWS or similar. Or do frequently companies have actual in house servers for this purpose?
Not in house, but in a "segmented" part of the cloud that comes with service level agreements and access control and restrictions on which countries the data can be hosted in and compliance procedures etc. etc.
An extreme example of this would be the AWS GovCloud for government/military applications.
25% is a great win if you are prone to RSI. And for quicker feedback. But in terms of the overarching programming goal? Churning out code is a small part of it.
I think the critique here is that the AI currently deployed at Google hasn't meaningfully automated this user's life, because most IDEs already solved "very good autocomplete" more than a decade ago.
LLM autocomplete is on an entirely different level. It's not comparable to traditional autocomplete and mostly does not even compete with traditional autocomplete. LLM autocomplete will sometimes write entire blocks of code for you, with surprising skill. I often wonder how it knew what I wanted. It also generates some wrong code from time to time, but that's well worth it.
> LLM autocomplete is on an entirely different level.
Which is how they've surpassed 25% in new code, as compared to the 10% (made up number, but clearly non-zero) in the past. But incremental improvement, is all.
How do you know that? You are creating this false sense of expectations and hype yourself.
I am going to argue contrary. If AI increases productivity 2x, it opens up as much new usecases that previously didn't seem worthy to do for its cost. So overall there will just be more work.
> I am going to argue contrary. If AI increases productivity 2x, it opens up as much new usecases that previously didn't seem worthy to do for its cost. So overall there will just be more work.
This is the entire history of the computing industry. We’ve been automating our work away for decades and it just creates more demand.
Yeah, this is only side projects, but I've been spending pretty much all of my free time now on side projects, largely because I feel much faster building them with LLMs and it has a compounding motivational effect. I also see so many use cases and work left to do, even with AI, the possibilities almost overwhelm me.
Well I do freelancing as well besides my usual day to day work, and that's also where direct benefits apply, and I'm getting more and more work, overwhelmingly so.
I wouldn't call it genius tab completion. Unfortunately, more than half of the time that the "genius" produces the code, I'm wasting my time reviewing code that is incorrect.
I'm sorry but I don't understand how people say LLMs are simply "tab completion".
They allow me to do much more than that thanks to all the knowledge they contain.
For instance, yesterday I wanted to write a tool that transfers any large file that is still being appended to to multiple remote hosts, with a fast throughput.
By asking Claude for help I obtained exactly what I want in under two hours.
I'm no C/C++ expert yet I have now a functional program using libtorrent and libfuse.
By using libfuse my program creates a continuously growing list of virtual files (chunks of the big file).
A torrent is created to transfer the chunks to remote hosts.
Each chunk is added to the torrent as it appears on the file system thanks to the BEP46 mutable torrent feature in libtorrent.
On each receving host, the program rebuilds the large file by appending new chunks as soon as they are downloaded through the torrent.
Now I can transfer a 25GB file (and growing) to 15 hosts as it is being written too.
Before LLM this would have taken me at least four days as I did not know those libraries.
LLMs aren't just parrots or tab completers, they actually contain a lot of useful knowledge and they're very good at explaining it clearly.
> By asking Claude for help I obtained exactly what I want in under two hours.
Did you use it in your editor or via the chat interface in the browser? Because they are two different approaches, and the one in the editor is mostly a (pretty awesome) tab completion.
When I tell an LLM to "create a script which does ..." I won't be doing this in the editor, even if copilot does have the chat interface. I'll be doing this in the browser because there I have a proper chat topic to which I can get back later, or review it.
I did not use copilot or cursor. I used the Claude interface. I'm planning to setup a proper editor tool such as Cursor as I believe they got much better lately.
Last time I tried was 2023 and it was kind of a pain in the butt.
I tried Cursor this month but even though it is much better than copilot, it also tries to do too much. And both of them fail regularly at generating proper autocompletions, which makes Cursor a bigger annoyance because it messes up your code quite often, which copilot doesn't do. Cursor is too aggressive.
But using copilot as a better autocomplete is really helpful and well worth the subscription. Just while typing as well as giving it more precise instructions via comments.
It's like a little helper in the editor, while the ChatGPT/Claude in the browser are more like "thinking machines" which can generate really usable code.
It's a knowledge base that can explain the knowledge it returns when you ask, how is that not useful in a professional environment for production code?
I mean if you assume all devs are script kiddies who simply copy paste what they find on google (or ChatGPT without asking for explanations) then yeah it's never gonna be useful in a prod setting.
Also you're very wrong to believe every technical need or combination of libraries has already been implemented in open source before.
True, but hey, even if it's not production code, it may be an ad-hoc thing that never gets push to production, it may be code reviewed by C++ experts and improved to production quality. At very least, someone saved four days with it, and could use the time for something, maybe something they are expert at. Isn't that still good?
Most of the time saving time is just an illusion. When that code will needed to be changed, people will spend more than 4 days debugging and understanding it. The mental model of it was written by AI. It can make sense or not at all. You’ll figure it out after 4 days.
People talk about completey different things. The article was about Google using LLM-s to generate code, not people making 80 lines with them at home. There is a huge difference. I don’t see any problem with the latter, but with the former there are many problems.
I think I will, I don't have time to maintain additional software right for other people now but I'm definitely planning on open sourcing it when I get time
However i think that you might open source the thing with a disclaimer of no maintenance. Whoever is willing to maintain it can just fork it and move along.
This is what's problematic with modern "AI". Most people inexperienced with it, like the parent commenter will uncritically assume these LLMs poses "knowledge".
This I find the most dangerous and prevalent assumption. Most people are oblivious to the fact how bad LLMs are.
I know excatly how bad the output they give is, because I ask for output that I can understand, debug and improve.
People misusing tools don't make tools useless or bad. Especially since LLMs designers never claimed the compressed information inside models is spotless or 100% accurate, or based on logical reasoning.
Any serious engineer with a modicum of knowledge about neural networks knows what can or can't be done with the output.