Every thread like this over the past year or so has had comments similar to yours, and it always remains quite vague, or when examples are given, it’s about self-contained tasks that require little contextual knowledge and are confined to widely publicly documented technologies.
What exactly floored your colleague at Microsoft?
I notice that the person you replied to has not replied to you yet.
It may be that they will, of course.
But your points are good.
Jeepers creepers! :)
These are the four simple lines that I wrote above:
>Solid questions and comments, layer8.
>I notice that the person you replied to has not replied to you yet.
>It may be that they will, of course.
>But your points are good.
(Italics mine, and they were not in my original comment.)
You, above:
>when they replied almost immediately after with a video of the relevant workflow,
I did check the time intervals between the top level comment and layer8's comment, before my first reply. It is over an hour now, so I cannot see the exact times in minutes any more, but IIRC, there was a fairly long gap (in minutes). And I also think I noticed that the top level person did reply to someone else, but not to layer8, by the time I wrote my comment.
So I don't see anything wrong in what I said. I even said that they may reply later.
You consider that to be:
>"Not-so-subtly mocking"?
Jeez. I think you are wrong.
Then I have nothing further to say to you, except this:
>was not a move that made you look smart or nice.
Trying to look smart or nice is not the goal in online discussions. At least, I don't think so. You appear to think that. The goal (to me) is to say what you think, otherwise, why write at all? I could just get an LLM to write all my comments, and not care about its hallucinations.
I don't try to be smart or nice, nor the reverse. I just put my considered thoughts out there, just like anyone else. Obviously I can be right or wrong, just like anyone else can be. And some points can be subjective, so cannot be said to be definitely either right or wrong.
What arrant nonsense!
Don't accuse people falsely or without substantiating your accusation.
My comment being referred to above, consisted of four simple short lines.
I am not going to bother to paste them here again for a third time.
Those HN readers who wish to do so, can go the few needed levels up this thread and check for themselves:
Nothing I said in those four lines can be interpreted as being passive-aggressive.
I say that you do not know what the heck you are talking about, if you claim that I was passive-aggressive in that comment.
Mañana.
Wow. Such wrong claims.
I had already replied to you in a sibling comment, refuting your points, but will give one more proof (not that I really need to):
_acco, the top level commenter relevant to this discussion, commented at some time, say x.
layer8 commented, replying to _acco, 7 hours ago (as can be seen on the page at the time of my writing this comment, i.e. right now).
I then replied to layer8, 6 hours ago.
_acco replied back to layer8 5 hours ago.
All this is visible right now on the page; and if people check it a few hours later, the relative time deltas will remain the same, obviously. (But not if they check after 24 hours, in which case all comments will show as one day ago.)
So there was a 1 hour gap between layer8's comment and mine, and a 2 hour gap between layer8's comment and _acco's reply.
If you think 2 hours is the same as "almost immediately", as you said above, I have nothing more to say to you, except that our perceptions of time are highly different.
Perception of time is subjective.
I just love it (not!, but it happens every now and then) when HN users display ignorance of basic logic, on a site for techies, yet.
I could use your own argument against you:
>is certainly an ”almost immediate” response
>Perception of time is subjective.
So, you use "certainly", and then "subjective", just after it, in the same argument about the same topic?
Brilliant. Do you not realize that by your last sentence above, you make my own case for me?
Ed: ah, since the time I wrote this comment, your respective comments are now at 14 and 13 hours. Congrats on your <1hr lead.
You just showed that you are inaccurate, pompous and fake, all of that, in one single comment of yours, above. How? I'll tell you:
1. inaccurate: That commenter's username (the one who started this subthread) is _acco, not acco_ as you wrote above.
Check that in their comment, or here:
https://news.ycombinator.com/user?id=_acco
I was careful to check the spelling before mentioning their name, unlike you, even when I referred to them earlier. The fact that you cannot even get the position of an underscore in a name, correct, seems to indicate that you are sloppy. which leads me to my next point.
2. pompous:
You said:
>Really, I'm being generous in assuming they didn't reply before you.
This is the pompous bit. Generous? Laughable.
I neither need not want your generosity. If anything, I prefer objectivity, and that people give others the benefit of the doubt, instead of assuming bad intentions by them: I had actually checked for a second comment by _acco (in reply to layer8) just before I wrote my comment to layer8, the one that got all of you in a tizzy. But you not only got the times wrong (see your edit, and point 3 below), but also assumed bad faith on my part.
3. fake.
You first said above that both those replies to layer8 showed as 13 hours ago, then edited your comment to say 14 and 13 hours. It shows that you don't use your brains. The feature of software showing time deltas in the form of "hours ago" or "days ago", versus an exact time stamp, is pretty old by now. It dates back to Web 2.0 or earlier, maybe it was started by some Web 2 startups or by Google.
If you think you are so clever as to criticize me without proof, or say that you are generous in your assumptions about me, you should have been equally clever or generous about the time delta point above, and so realized that I could have replied to layer8 before _acco, which was indeed the case. Obviously I cannot prove it, but the fact that I got _acco's name correct, while you did not, lends credence to my statement. It shows that I took care while writing my comment.
4. So you are fake because you don't bother to think before bad-mouthing others, and even more fake because you did not apply (to yourself) your own made-up "rule" in this other comment of yours, where you criticized my comment as being neither smart nor nice, so not of value:
https://news.ycombinator.com/item?id=41310460
I should not have had to write such a long comment to refute your silly and false allegations, and I will not always do that, but decided to do it this time, to make the point.
And, wow: you managed to pack 3 blunders (being inaccurate, pompous and fake) into a comment of just a few lines. That's neither smart not nice. Instead, it's toxic.
Anyway, yeah, I worry less about being nice to people who've already shown themselves to be clowns, in a sub thread that's flagged to death. You got me there. FWIW I was originally hoping to enlighten you a bit as to why you were being downvoted, as a small help to you.
Comments should get more thoughtful and substantive,
not less, as a topic gets more divisive.
Eschew flamebait. Avoid generic tangents. Omit internet
tropes.
Be kind. Don't be snarky. Converse curiously;
don't cross-examine. Edit out swipes.
Please don't comment about the voting on comments.
It never does any good, and it makes boring reading.
source: https://news.ycombinator.com/newsguidelines.htmlHTH
So I don't know how this would go in a much larger codebase.
What floored him was simply how much of my programming I was doing with an LLM / how little I write line-by-line (vs edit line-by-line).
If you're really curious, I recorded some work for a friend. The first video has terrible audio, unfortunately. This second one I think gives a very realistic demonstration – you'll see the model struggle a bit at the beginning:
MMmm.
I mean, don't get me wrong; this is impressive stuff; but it needs to be an order of magnitude less 'screwing around trying to fix the random crap' for this to be 'wow, amazing!' rather than a technical demonstration.
You could have done this more quickly without using AI.
I have no doubt this is transformative technology, but people using it are choosing to use it; it's not actually better than not using it at this point, as far as I can tell.
It's slower and more error prone.
You summed up the workflow accurately. Except, I read your first paragraph in a positive light, while I imagine you meant it to be negative.
Note the feedback loop you described is the same one as me delegating requirements to someone else (i.e. s/LLM/jr eng). And then reading/editing their PR. Except the feedback loop is, obviously, much tighter.
I've written a lot of tests, I think this would have taken 3-4x longer to do by hand. Surely an hour?
But even if all things were roughly equal, I like being in the navigator seat vs the driver seat. Editor vs writer. It helps me keep the big picture in mind, focused on requirements and architecture, not line-wise implementation details.
I guess my point is I'm skeptical.
I don't believe what you had the end would have taken you that long to do by hand. I don't believe it would have taken an hour. It certainly would not have taken me or anyone on my team that long.
I feel like you're projecting that, if you scale this process, so say, having 5 LLMs running in parallel, then what you would get is you spending maybe 20% more time reviewing 5x PRs instead of 1x PR, but getting 5x as much stuff done in the end.
Which may be true.
...but, and this is really my point: It's not true, in this example. It's not true in any examples I've seen.
It feels like it might be true in the near-moderate future, but there are a lot of underlying assumptions that is based on:
- LLMs get faster (probably)
- LLMs get more accurate and less prone to errors (???)
- LLMs get more context size without going crazy (???)
- The marginal cost of doing N x code reviews is < the cost of just writing code N times (???)
These are assumptions that... well, who knows? Maybe? ...but right now? Like, today?
The problem is: If it was actually making people more productive then we would see evidence of it. Like, actual concrete examples of people having 10 LLMs building systems for them.
...but what we do see, is people doing things like this, which seem like (to me at least), either worse or on-par with just doing the same work by hand.
A different workflow, certainly; but not obviously better.
LLMs appear to have an immediate right now disruptive impact on particular domains, like, say, learning, where its extremely clear that having a wise coding assistant to help you gain simple cross domain knowledge is highly impactful (look at stack overflow); but despite all the hand waving and all the people talking about it, the actual concrete evidence of a 'Devin' that actually builds software or even meaningfully improves programmer productivity (not 'is a tool that gives some marginal benefit to existing autocomplete'; actually improves productivity) is ...
...simply absent.
I find that problematic, and it makes me skeptical of grand claims.
Grand claims require concrete tangible evidence.
I've no doubt that you've got a workflow that works for you, and thanks for sharing it. :) ...I just don't think its really compelling, currently, to work that way for most people; I don't think you can reasonably argue it's more productive, or more effective, based on what I've actually seen.
It seems to me that the first few are almost complete copy-paste of older tests. You would have got code closer to the final test in the update case with simple copy-paste than what was provided.
The real value is only in the filtered test to choose randomly (btw, I have no idea why that’s beneficial here), and the one which checks that both consumers got the same info. They can be done in a few minutes with the help of the already made insert test, and the original version of the filtered test.
I’m happy that more people can code with this, and it’s great that it makes your coding faster. It makes coding more accessible. However, there are a lot of people who can do this faster without AI, so it’s definitely not for everybody yet.
There are plenty of, "Just disable certificate checking" type answers on Stack Overflow, but there are also a lot of comments calling them out. How do you fact check the AI? Is it just a shortcut to finding better documentation?
However there are some very frustrating limitations to greptle, so severe that I basically only use it to ask implementation questions on existing codebases, not for anything like general R&D: 1) answers are limited to about 150 lines. 2) it doesn't re-analyze a repo after you link it in a conversation (you need to start a new conversation, and re-link the repo, then wait 20+ min for it to parse your code) 3) it is very slow (maybe 30 seconds to answer a question) 4) there's no prompt engineering
I think it's a bit strange that no other ai solution lets you ask questions about existing codebases. I hope that will be more widespread soon.
Re: prompt engineering, we have a prompt guide if that helps, was that what you are getting at?
The logo is supposed to be a reptile claw but we might modify it to make that more obvious.
Speaking of understand context… They floored him not other way round
Most software vendors are selling their version of AI as hallucination free though. So that's terrifying.
It definitely has that Tesla Autopolit feel to it, where the marketing is ... enthusiastic, while the onus to "use the tool responsibly" is left up to the end user.
I'm building a persentation/teaching tool for teachers and trying to not sweep the halicination angle under the rug. My marketing angle is that the AI is a huge time saver, but the classroom teacher is the subject expert and they need to review the output. At the end of the day, it's still much more time efficient for an expert to review the content than it is to produce it from scratch which is a huge win.
Also, to be super presumptuous, if you need help with anything with your tool, hit me up. I love working with developers on building realistic use case and workflows.
I'm building tools for K-12 (I've been a teacher for 20+ years). There's solid uptake of GPT among teachers and individually they're pretty enthusiastic about anything that will reduce their workload, so I'm hoping it resonates.
>Also, to be super presumptuous, if you need help with anything with your tool, hit me up. I love working with developers on building realistic use case and workflows.
Sure, my details are in my profile, happy to chat.
I think that's why I like to compare the current state of AI to the state of the CPU industry maybe around the 286-486 era going towards the Pentium.
I was an early advocate for Copilot but, honestly, nowadays I really don't find it that useful, compared to GPT-4o via ChatGPT.
ChatGPT not being directly integrated into my editor turns out to be an advantage. The problem with Copilot is it gets in the way. It's too easy to unintentionally insert a line or block completion that isn't what you want, or is out and out garbage, and it's constantly shoving up suggestions as I type, which can be distracting. It's particularly irritating when I'm trying to read or understand a piece of code, or maybe do a refactor, and I leave my caret in one position for half a second too long, and suddenly it's ghost-inserted a block of code as a suggestion that's moved half of what I'm reading down the screen and now I have to find my place again.
Whereas, with ChatGPT being separate, it operates at a much less intrusive cadence, and only responds when I ask it too, which turns out to be much more useful and productive.
I'm seriously considering binning of my Copilot subscription as a result.
Even where microsoft includes it for free, like their automation tools, its always been jank. I found myself going to GPT4 for better answers which is bad when you spend any time thinking about it.
Cursor offers some super marginal UX improvements over the latter (being that it’s a fork of VScode), since it allows you to switch models. But Claude and GPT have been interchangeable at least for my workflows, so I’m not sure the hype is really deserved.
I can only imagine the excitement comes from the fact that cursor has a full-fat free trial, and maybe most people have never bothered paying for copilot?
Maybe GPT4o changed things.
Perhaps it's my language of choice (Elixir)? Claude absolutely nails it, rarely gives me code with compilation errors, seems to know and leverage the standard library very well, idiomatic. Not the same with GPTs.
did a quick check, it's $20/month, and it has a vim plugin: https://github.com/pasky/claude.vim
going to give it a spin
But outside of that, beyond needing to remember a certain syntax, I have found that any time I tried to use it for anything more complex I am finding myself spending more time going back and forth trying to get code that works than I would have if I had just done it myself in the first place.
If the code works, it just isn't maintainable code if you ask it to do too much. It will just remove entire functionality.
I have seen a situation of someone submitting a PR, very clearly copying a method and sticking it in AI and saying "improve this". It made changes for no good reason and when you ask the person that submitted the PR why they made the change we of course got no answer. (these were not just Linter changes)
Thats concerning, pushing code up that you can't even explain why you did something?
Like you said with the hard work, sure it can churn out code. But you need to have a complete clear picture of what that code needs to look like before you start generating or you will not like the end result.
But it's weird to me seeing people talk about these changing their jobs so much. Maybe I'm holding it wrong but I'm almost always bottlenecked by "big picture" challenges and less on the act of actually typing the code.
Now I have all these new ideas but I am back to square one because it just seems easier to start over.
I look forward to more powerful models in the future but I do wonder if it will just mean I can get slightly farther and make an even larger mess of an app in a weekend that I have no way to add to or update without breaking.
The main utility seems like it would be for content creation to pretend I made an app with all these great features as a non-software engineer but conveniently leave out the part about it being impossible to update.
It’s great at helping me automate things I normally do not have time to attempt.
In pair programming, it's ideal to have a driver (hands on keyboard) and a navigator (planning, direction).
Claude can act as the driver most of the time so I can stay at the navigator level.
This is so helpful, as it's easy as programmers to get sucked into implementation details or low-level minutiae that's just not important.
...do you not see the obnoxious CoPilot(TM) buttons and ads everywhere? It's even infected the Azure Portal - and every time I use it to answer a genuine question I have I get factually-incorrect responses (granted, I don't ask it trivial or introductory-level questions...).
I decided to fire up GPT-4o again today to see if maybe things have gotten better over the past few months.
I asked GPT to write code to render a triangle using Vulkan (a 3D graphics API). There are about 1000 tutorials on this that are almost certainly in GPT-4's training data. I gave GPT two small twists so it's not a simple case of copy/paste: I asked it 1) to apply a texture to the triangle and 2) to keep all the code in a single function. (Most tutorials break the code up into about a dozen functions, but each of these functions are called only once, so it should be trivial to inline them.)
Within the first ten lines, the code is already completely nonfunctional:
GPT-4o declares a pointer (VkPhysicalDevice) that is uninitialized. It queries the number of graphics devices on the host machine. A human being would allocate a buffer with that number of elements and store the reference in the pointer. GPT-4o just ignores the result. Completely ignores it. So the function call was just for fun, I guess? It then tries to copy an entire array of VkPhysicalDevice_T objects into this uninitialized pointer. So that's a guaranteed memory access violation right off the bat.
By the way - I think AI or ML whatever has some valid uses right now. but mostly in image processing domain - so like recognizing shapes in some bounded domain OK yea. Generative image - NOT bad but theres always this "AI GLOW" to each image. Something is always off. Its some neat tools but a race to the bottom and mostly users want to generate explicit content lets be real. and they will become increasingly more creative and obtuse to get around the guards. nothing is stopping you from entering the * industry and making tons off money. but that industry is always doing good.
a friend recently suggested to use AI to generate generic icons for my game. Thats a really good use case. but does that radically change the current economy?
I am an experienced programmer, but I find myself (for the first time) doing a deep-dive in SQL and specifically building code that will run against multiple SQL engines.
I fed my list of engines into AI. As I'm discovering the really weird corners of SQL I asking the AI to compare one db against the other. My prompts are usually no more than 3 or 4 words.
It gives me quick helpful answers highlighting where things are the same and where they are different. I can then follow up in the specific docs if necessary (now that I know the function name.)
Personally I'm somewhat anti-hype, I'll let others rave about "changing the world". But I have found it a useful tool - not so much for "writing my code" but for acting as my tutor as I learn new things. (I'm using it for more than just SQL or computers now.)
I'm not sure it "changes thr economy" - but it can certainly change individual lives. Some jobs will go away. Others might be easier to do. It might make it easier to learn new skills.
The 2nd agency I called them through phone. No ai. But it is excellent cause they do async processing. so you reserve a slot and they call you back. i don't care if those are not answered urgently. Because I just want to talk to a human.
Customer service is hard because it has to filter out 90% noise, 9% fairly straightforward tasks, and the <1% of complex issues that need to be sent to the right human.
But equally it doesn't prove, or even assert, the opposite. A bicycle may be bad at cross-country road trips, but that doesn't make it a bad choice for some other situations.
Hence my earlier comment - I (and I suspect others) are finding it useful for some tasks. That is not to imply it is good at all tasks.
Is it over-hyped? Of course yes. Welcome to IT where every new thing is over-hyped all the time.
If you don't know the language at all it's dangerous because you may not understand the proposed program (and of course if you're an expert you don't need it at all).
But llms won't help to find solutions to a general, still unspecified problem.
Like simple python scripts for Home Assistant it just nails first go.
It seems especially strong with Python but a bit medium with Swift.
After that it goes completely off the rails by trying to issue draw commands before binding a graphics pipeline, which is both illogical and illegal. After a lot of prodding, I did manage to get it to bind a graphics pipeline, but it forgot about the texture.
So Claude Sonnet is definitely better than GPT-4o, but it still feels raw, like a game of whack-a-mole where I can get it to fix a mistake, but it reintroduces an old one. I also have to be the one offering the expertise. I can prompt it to fix the issues because I know exactly what the issues are. If I was using this to try to fill in for a gap in my knowledge, I would be stuck when I ran the code and it crashed - I would have no idea where to go next.
Update: Took about 50 min of experimenting, but I did get Claude to generate code that doesn't have any obvious defects, although it cut off about halfway through because of the generation limit. The best result that I've seen from an LLM yet. But that's after about a dozen broken programs, and again, I think the domain expertise here is key to be able to reprompt and correct.
One example that I am still using: I wanted to generate a random DICOM file with specific types of garbage in it to use as input for some unit tests, and Claude was able to generate some Python that grabs some random DICOM tags and shoves vaguely plausible garbage data into them, such that it is a valid but nonsensical DICOM dataset. This is not hard, but it's a lot faster to ask Claude to do it.
It seems to work best if I start with something very simple, and then layer on instructions ("now make it do X").
Where I have found it saves me time is in having to look up syntax or "gotchas" which I would otherwise search StackOverflow for. But as far as "writing code" -- it still feels a long way from that.
"They clearly aren't using the right model!"
"It's obvious they don't know how to prompt, or they would see the value."
"Maybe it can't do that today, but GPT-5 is just around the corner."
I feel more and more that people have just decided that this is a technology that will do everything you can imagine, and no evidence to the contrary will change their priors.
Oh and I expect it to be free, I ain't paying for this just like I wasn't paying for stackoverflow.
Finally I hope than in few years I will be able to just "sudo apt-get install llm llm-javascript llm-cooking llm-trivia llm-jokes" and it will all run locally on my low end computer and when I report bug, six months later it will be fixed when I update OS.
The same applies to AI. The old learning material is gone, your interaction is now the new learning material and ground truth.
PS: Hourly rates for sw engineers: Range:€11 - €213 - so one hour on stackoverflow, searching and sub-querying resolving problems costs you or your employer up to 213€. It really depends on what you have negotiated.
How about DDG AI Chat? https://duckduckgo.com/?q=DuckDuckGo+AI+Chat&ia=chat&duckai=...
It's like having an unusually fast-but-clumsy intern, except interns learn the ropes fast and understand context.
I have some stand tests for LLMs: write a web app version of tetris, write a fluid dynamics simulation, etc., and these regularly fail (I must try them again on 4o).
But also, I have examples of them succeeding wildly, writing a web based painting app just from prompting — sure, even with that success it's bad code, but it's still done the thing.
As there are plenty of examples to confirm what we already believe, it's very easy to get stuck, with nay-sayers and enthusiasts equally unaware of the opposite examples.
I welcome people picking apart chats that I link to. it's not that I believe that LLMs are magic and refuse to adjust my model of how good these things are and aren't, but when people don't give specific evidence is hard to actually move the conversation forwards.
because yeah, these things are plenty stupid and have to be tricked into doing things sometimes (which is stupid, but here we are). they're also pretty amazing but like any hammer, not everything is a nail.
You're like a gambling addict who thinks he's smarter than everyone else
A friend, whose SQL knowledge is minimal, used an LLM to query data from a database over a couple of tables. Yes, after a lot of trial and error he (most probably) got the correct data, however the only one being able to read the query is the LLM itself. It's full of coalesce, subselects that repeat the same joins again and again.
LLM will do a lot for you, but I really hate this "this will [already did] solve everything". No, it did not and no, because it's quality is those of a junior dev, at max.
Echo chamber/bias I guess. I know many, many seniors with big pay checks working for big companies who are vastly worse than sonnet at the moment. Juniors stand literally no chance unless very talented.
I don't know what companies pay for and I don't care, because if we go by that, every definition of every word is arguable (because there's everywhere someone out of the range of the definition)
For example, just now my NAS stopped working because the boot device went offline. So I got to thinking about writing a simple syslog server. I've never looked at the syslog protocol before, and I've never done any low-level TCP/UDP work in C# yet.
So I asked ChatGPT to generate some code[1], and while the result is not perfect it's certainly better than nothing, and would save me time to get going.
As another example, a friend who's not very technical wanted to make an Arduino circuit to perform some automated experiment. He's dabbled with programing and can modify code, but struggles to get going. Again just for kicks, I asked ChatGPT and it provided a very nice starting point[2].
For exploratory stuff like this, it seems to provide a nice alternative to searching and piecing together the bits. Revolutionary is a quite loaded word, but it's certainly not just a slight improvement on what we had before LLMs and instead feels like a quantum leap.
[1]: https://chatgpt.com/share/f4343939-74f1-404d-bfac-b903525f61... (modified, see reply)
[2]: https://chatgpt.com/share/fc764e73-f01f-4a7c-ab58-f43da3e077...
The way the OP here was talking about sonnet being above way above chatgtp in this case, it could be true. Google probably has the largest Go codebases on search to train the AI on higher quiality inputs. Go is a simpler language with less variation over time compared to something like .net also adding to its corner.
ive always been the type of person to use the right language for the each use case. For the last 10+ years ive primarly been building cross platform apps that target every common OS. So these "ai" tools like phind.com give me a universal API interface and generate code which is equiv to a SO answer. They are the ability of an outsourced junior dev who you would never let push code to prod, that doesnt have the language barrier but retains the fake dergee overheads ;)
Its using the old format where the Program.cs file has an actual class, whereas as of .NET 6 thats not required.
You said barebones, but for any real server you would want to use the generic host https://learn.microsoft.com/en-us/dotnet/core/extensions/gen... which gets you a lot of the boilerplate and enables you program to be wrapped in a windows or systemd service.
Finally, parsing can be simplified since ASCII is a proper subset of UTF-8, you can just parse the entire string as UTF-8. IMHO I am disappointed that the AI didn't point that out.
True, I intentionally said barebones as I wanted a minimal example. I asked it to modify the code to use the generic host, and updated the chat link (so refresh). Keep in mind this is the free ChatGPT, but I still think it did reasonably good. The example compiles as-is, and is very close to functional. I've not used the generic host stuff before either, so again this would save me time searching and piecing together code.
> Finally, parsing can be simplified since ASCII is a proper subset of UTF-8, you can just parse the entire string as UTF-8.
I don't think that would work, because the free-form text message part at the end must contain a BOM if it's UTF-8 encoded, according to the specification. AFAIK you can't have the BOM in the middle of a string.
I've also assembled a Kubernetes cluster overnight, despite not knowing much about Kubernetes before, and I ran the kubectl files ChatGPT made for me past some devops folks, and it passed the smell test.
I consider much of coding to be a magic spellcasting tutorial - we do conceptually simple things, and the difficult lies in figuring out how to use novel libraries and get them to do what you want.
Edit: After checking out the Arduino sketch, I'd take issue with all the floating point calculations in there - most microcontrollers don't have FPUs, and the performance is awful on 8-bit AVRs. It's not great on Cortex M3s either as all this stuff is done in software, and each FP operation is like a hundred cycles.
I'd definitely try to rephrase the issue with integer math. It might work, but no self-respecting embedded dev would write like this.
Exactly, it's a very nice alternative to searching the web and discovering new stuff.
> most microcontrollers don't have FPUs, and the performance is awful on 8-bit AVRs.
I used to think like you. But then I realized the Atmega 328p is running at 16 MHz, so even hundreds of . As you can see here[1], it can do 94k double-precision FLOPS, more than enough for simple sketches like this. This jives with the benchmarks I did several years ago.
Sure if I was writing some tight control loop or similar I wouldn't use floating point.
It's like I have some light fixtures in my attic that are connected with wires twisted together and covered with electrical tape - they certainly work and have done for a decade, but its still not right and I wouldn't recommend anyone do it this way.
I just don’t understand where the hell is this magical LLM capable of generating flawless files or even entire projects that many people are talking about. I rarely accept a large block of LLM-generated code without close inspection, and I’ve ended up with a subtle bug that I wouldn’t have written myself at least ~5 times now. Unless you don’t give a shit about code quality, error handling, proper logging, and subtle bugs, you shouldn’t run LLM-generated stuff without painstakingly reading and fixing everything. Or maybe there really is a magical LLM somewhere.
I work in 9 different projects now and I would say that around 80% of functional code comes from Sonnet (like GP) for these projects. These are not (all) trivial either; there is a very niche (for banking) key/value store written in Go for instance which has a lot of edge cases etc, all the plumbing (x,err = etc aka stuff people find annoying) comes from sonnet and works one-shot. A lot of business logic comes from sonnet too; it works but usually needs a little tweaking to make it correct.
Tests are all done by Sonnet. I think 80% is low balling it on Go code really.
We have a lot of complex code generator stuff and DSLs in TS which also works well often. Sometimes it gets some edge cases wrong, but either re-prompting with more details or fixing it ourselves, will do it. At a fraction of the time/money of what a fully human team would deliver.
I wrote a 3d editor for fun with Sonnet in a day.
I have terrible results with gpt/copilot (copilot is good for editing instead of complete files/functions; chatgpt is not good much compared with sonnet); it doesn't get close at all; it simply keeps giving me the same code over and over again when I say it's wrong; it hardcodes things specifically asked to make flexible etc. Not sure why the difference is so massive all of sudden.
Note: I use the sonnet API, not the web interface, but same for gpt so...
Cursor is a purpose-built IDE for software development. The Cursor team has put a lot of research and sweat into providing the used LLMs (also from OpenAI/Anthropic) with:
- the right parts of your code
- relevant code/dependency documentation
- and, importantly, the right prompts.
to successfully complete coding tasks. It's an apple and oranges situation.
AI is great for me, but it is more like a junior developer you are pairing with than a replacement.
For example, I can ask the LLM things like "What are the most common mistakes when using the Vulkan API to render a triangle with a texture?" and I'll very rapidly learn something about working with an API that I don't have deep understanding of, and I might not find a specific tutorial article about.
As another example, if I'm an experienced OpenGL programmer, I can ask directly "what's the Vulkan equivalent of this OpenGL API call?" and get quite good results back, most of the time.
So I'm asking questions where an 80% answer is still very valuable, and it's much faster than searching for documentation and doing a lot of comparison and headscratching, and it works well enough even when there's no specific article I could find in a variety of searches.
Anything better that the technology gets from here just makes things even easier yet!
And I think it'd be extremely easy to convince oneself of this. Look at where 'AI' was 5 years ago, look at where it is today and then try to imagine where it will be in another 5 years. Of course you have to completely blind yourself to the fact that the acceleration has clearly sharply stalled out, but humans are really good at cognitive dissonance, especially when your perception of your future depends on it.
And there's also the point that even though I'm extremely critical of LLMs in general, they have absolutely 'transformed' my workflow in that natural language search of documentation is really useful. Being able to describe a desired API, but in an overly broad way that a search engine can't really pick up on, but that an LLM [often] can, is just quite handy. On the other hand, this is more a condemnation of search engine tech being frozen 20 years in the past than it is about an imminent LLM revolution.
I would rather say that the innovation happens in spikes. I see no slowing down whatsoever.
Would be really interesting if anyone had blog posts on their actual workflow with LLMs, in case there's something I'm doing different.
Fwiw, I've had some helpful successful prompts here and there, and in some very narrow scopes I'll get something usable, like parsing JSON or scaffolding some test cases, which is real saved time, but I stopped thinking about these tools long ago.
To get real value out of something like your example, I'd be using it as a back and forth to help me understand how some concepts work or write example questions I can drill on my own, but nothing where precision matters
Give Anthropic a shot (its even better via the API console.anthropic.com/workbench).
OpenAI is yesterdays news.
Especially if it's a question that's hard to Google, like "I remember there is more than one way to split an array in this language, list them". This saves me minutes every day.
But it's especially helpful if you are working on projects outside your own domain where you are a newbie.
That is very believable, the people who say it made them super productive is a bit less believable.
But, I agree with your sentiment that asking it to do stuff like that often doesn’t work. I’ve found that what it _can_ do is stuff like “here’s a Model object, write a query to fetch it with the schema I told you about ages ago”. It might not give perfect results, but I know how to write that query and it’s faster to edit Claude’s output than it is to write it from scratch.
Same, it can't even fix an xcode memory leak bug in a simple app. It will keep trying and breaking it non-stop. Garbage
Some basic things are fine, but once you get into specialised things, everything gets just terribly wrong and weird. I can't even put it into words, I see people saying how they are 10x more productive (I'd like to see actual numbers and proof for this), but I just don't see how. Maybe we're working on very custom stuff, or very specific things, but all of these tools seem to give very deep or confident answers that are just plain wrong and shallow. Just yesterday I used GPT 4o for some basic help with Puppet, and the examples it printed, even though I would say it's quite basic, were just wrong, but in the sense of having to debug it for 2 hours just to figure out how ridiculous the error was.
I fear the fact that people will end up releasing unsafe, insecure and simply wrong code every day, code that they never debug and not even understand, that maybe works for a basic set of details, but once the real world hits it, it will fail like those self driving cars driving full speed into a trailer that has the same color as the road or sky.
So it will be with inexperienced people coding with LLMs.
On stuff that's a bit obscure, but not really (like your Vulkan example), ChatGPT tends to write 60-95% correct code, that's flawed in the exact ways a noob wouldn't be able to fix.
In this case, nicking code from Github seems to fix the issue, even if I need to adapt it a bit.
Then comes the licensing issue. Often, when searching for an obscure topic, the code ChatGPT generates is very close to what's found on Github, but said code often comes with a non-permissive license, unlike what the AI generates.
I think this is a feature for a lot of people. ChatGPT can launder code so they don't have to care about licenses.
The Jetbrains thing is rather rudely incompetent, it consistently insists on suggestions that use variables and fragments that are supposed to be replaced by what I'm writing and also much more complex than what I actually need. I suffered through at least a hundred mistaken tabbed out shitty suggestions before I disconnected it.
However, my main job is trying to come up with "elegant" architectures for complex business logic that interacts with an existing large code base. AI is just completely out of its depth in such cases due to lack of context but also lack of source material to draw from. Even unit tests only work with the most basic of cases, most of the time the setup is so complex it just produces garbage.
I've also had very little luck getting it to write performant code. I almost have to feed it the techniques or algorithms before it attempts to write such code, and even then it's usually wrong or not as efficient as it could be.
That code is probably buggy, slow, poorly architected, very verbose, and has logical issues where the examples and your needs dont exact match.
Generally, the longer the snippet you want your LLM to generate, the more likely its going to go off the rails.
I think for some positions this can get you 90% of the code done. For me this usually means I can get started very fast on a new problem, but the last remaining "10%" actually takes significantly longer and more effort to integrate because I dont understand the other 90% off the top :)
Right, that's surely the main job of nearly every experienced developer. It's really cool that LLMs can generate code for isolated tasks, but they can barely even begin to do the hard work, and that seems very unlikely to change in the foreseeable future.
I just tried the latest Cursor + Sonnet and it failed in every task. The problem is that there is no way to understand the code without either complete understanding the domain and the intents or running it in some context.
Telecom and media domains in particular are well documented in specs and studied in forum discussions. I am sure they are part of the training data, because I can get most answers if asked directly. So far the LLMs fail to reason about anything useful for me.
However, I use copilot autocomplete consistently. That makes me much more productive. It’s just really good autocomplete.
As an experienced developer I’d put my productivity improvement at 2-3x. It’s huge but not 10x. I’m limited by my decision speed, I need to decide what I want the code to do, AI can’t help with that - it can only do the “how”.
Far from introducing more bugs, using Copilot frees some mental cycles for me to be more aware of the code I’m writing.
However once you step outside JS or Python, the models are essentially useless. Comprehension of pointer semantics? You wish. Anything with Lisp outside its training corpus of homework assignments? LOL. Editing burden quickly exceeds any possible speed-up.
I saw an LLM demo at one point where it was asked to write FFT and add unit tests for it which really drove this point home for me.
A programmer is a nicer term for a code monkey. You ask them to write FFT and they'll code it. All problems can be solved with mode code. They can edit code, but on the whole it's more just to add more code. LLMs are actually pretty good at this job, in my experience. And this job is important, not all tasks can be engineered thoroughly. But this job has its scaling limits.
A software engineer is not about coding per se, it's about designing software. It's all about designing the right code, not more code. Work smarter, not harder, for scale. You ask them to write FFT and they'll find a way to depend on it from a common implementation so they don't have to maintain an independent implementation. I've personally found LLMs very bad at this type of work, the same way you and others relying to you describe it. (Ok, maybe FFT is overly simple, I'm sure an LLM can import that for you. But you get the idea.) LLMs have statistical confidence, not intellectual confidence. But software engineering generally works with code too complex for pure statistical confidence.
No offense to the LLM fans here, but I strongly suspect most of them are closer to the programmer category of work. An important job, but one more easily automated away by LLMs (or better software engineering long-term). And we can see this by how a lot of programming has been outsourced for decades to cheap labor in third-world countries: it's a simpler type of job. That plus the people biased because their jobs and egos depend on LLMs succeeding.
If you define "productive" as writing a simple CRUD web application that your 13-year-old cousin could write between two gaming sessions, then you'll consider LLMs as sacred monsters.
Snake oil vendors always had great appeal over people who didn't know better.
For example:
* I need a simple bash script for file manipulation or some simple tasks like setting up a project (example: download a secret from AWS SSM, check if an executable exist, if it doesn't write instructions on how to install it on most popular systems etc)
* I need a simple HTTP API, nothing fancy, maybe some simple database usage, maybe running some commands, simple error handling
* I need a YAML file for Kubernetes. I say what I need and usually, it gets most of it right
* I want an Ansible task for some simple thing. Ansible is quite verbose, so it's often saving me time
* I have a Kubernetes YAML file, but I want to manage it in terraform - I'll then ask to convert YAML to a terraform entry (and in general converting between formats is nice, cause even if you have only a piece of what you want to convert, LLMs will most of the time get it right)
* Surprisingly, it often gets openssl and ffmpeg commands right - something I always have to google anyway, especially openssl certificates generation or manipulation
* Giving it a function I wrote and writing test samples after providing a list of what it should test (and asking if it can come up with more, but sadly it rarely does generate anything useful on top of what I suggest)
Why? I see it like querying a database of human knowledge. I wouldn't expect a SQL database to infer information it's never seen before, why would I expect an LLM to do so?
I use it where I know a solution exists but I'm stumped on the syntax or how to implement it in an unfamiliar environment, or I want to know what could have caused a bug based on others' experience etc.
I’ve found that it’s sometimes amazing and sometimes wastes a lot of my time. A few times it’s really come up with a good insight I hadn’t considered because the conversation has woken up some non-obvious combination. I use ChatGPT, Claude, Perplexity and one or two IDE tools.
here's a chat for a uc and LCD chip that I picked at random (and got the name wrong for) (and didn't want raspberry pi code for so it stopped it short on that response)
https://chatgpt.com/share/2004ac32-b08b-43d7-b762-91543d656a...
There are also some more gotchas, like the generated code using a slightly different package versions than the installed ones.
When you are familiar with LLMs, then a question from someone who doesn't use AI is very obvious. It's the same feeling you have when you roll your eyes and say "you could have googled that in 10 seconds".
It's either explaining code where you don't even know the lingo for or what the question could be. Or touching code with a framework you never used. Or tedious tasks like convert parts of text into code or json. Or sometimes your mind is stuck or drifts off. Ask AI for an idea to get the ball rolling again.
Yes, discovering what works and what doesn't is tedious and slower then "just doing it yourself". Like switching IDEs. But if you found a handful of usecases that solve your problems, it is very refreshing.
It is of vital importance (imho) to get open models at the same level before another jump comes (if it comes of course, maybe another winter, but at least we'll have something I use every day/all day; so not all hype I think).
Ridiculous blanket statement. A bunch of places use external LLMs.
1. Use cursor with Claude Sonnet
2. Pick a programming language you don't know at all
3. Build an app in that language prompting only, don't stop prompting until you've run it successfully
This wasn't the case with GPT-4/o. This capability is very new.
When I spoke to a colleague at Microsoft about these changes, they were floored. Microsoft has made themselves synonymous with AI, yet their company is barely even leveraging it. The big cos have put in the biggest investments, but also will be the slowest to change their processes and workflows to realize the shift.
Feels like one of those "future is here, not evenly distributed yet" moments. When a tool like Sonnet is released, it's not like big tech cos are going to transform over night. There's a massive capability overhang that will take some time to work itself through these (now) slow-moving companies.
I assume it was the same with the internet/dot-com crash.