It's not really the "I don't care" mode as you care very much it matches specifically what you want to build out rather than "something which seems to work as a class if I paste it in". It's also not really "I want to learn something here" as you already know exactly what you want and you're not looking for it to deviate, you're just looking to have it appear a couple times faster than if you typed it out. This is, more or less, "I want faster autocomplete for this task" usage.
"Add a new menu dropdown for Audio which has options for Start/Stop Analysis, a selector for Audio Source, and a toggle for Enable Ableton Link"
Automatically included in the prompt were the entire bodies of the relevant .cpp files, maybe ~2000 lines in total.
Produced were 25 lines of code which otherwise would have probably taken me ~2-5min to type. The code is effectively deterministic, I knew exactly what I wanted but decided to apply my finite mental battery in writing a prompt instead of those 25 lines. The code was instantly inserted into the file I already had open and has since built and run, doing exactly what I wanted.
--
I think tools like Cursor are best employed for devs working on solo projects or for projects for which they already have a good mental model of the entire system and can ask for code which they're immediately able to validate the correctness of. I understand that many devs, perhaps yourself included, don't work on projects in which that'd be the case, so I definitely understand when one wouldn't find these tools useful.
I also think they're best employed by people who find writing English very effortless. It's unusual for me to write code which I wouldn't faster be able to describe out loud to someone, I appreciate this isn't a trait all devs are blessed with. I've worked with plenty who would take longer writing a detailed description for a ticket than they would coding the PR itself. As with nearly every software tool, YMMV. Hope this has been helpful!
You can solve some of the issues with snippets, but once your snippets start looking like tiny scripts it stops being funny.
Once you start hoping the AI is going to solve your problems that is when you're asking for trouble.
There are shortcuts, snippets, :!ipc, ahk, etc.
It took 25 years of the internet and a whole multi-trillion bubble to provide a boilerplate completion? Seriously? Editing 101. And then you hear “I don’t need Vim/Emacs/etc, I just use zero-config VSCode”. I guess that’s what one gets by not programming their programming environment. Imagine being a programmer and not automating your job for years. Digital Amish style.
https://github.com/williamcotton/webdsl/commit/34862739f6fe9...
I may have tweaked a couple of things in that (and refactored a hell of a lot since) but here's a Python script that I definitely did not write a single line of code:
https://github.com/williamcotton/webdsl/blob/main/tools/gene...
Embedding things into C is nothing new of course but I spent about 45 seconds getting the solution I needed:
https://github.com/williamcotton/webdsl/blob/main/src/server...
All of this is just boilerplate.
I spent most of my mental energies with this project on the grammar, the memory architecture, and fitting all of the pieces together. Cursor and Claude did most of the typing.
Keep in mind I'm iterating over the grammar and making rather large changes in the runtime all the while:
https://github.com/williamcotton/webdsl/commit/54efbb50c2e95...
FWIW, pipelines ended up being implemented like this:
https://github.com/williamcotton/webdsl/blob/main/src/server...
And used in this very simple example like:
website {
port 3445
database "postgresql://localhost/express-test"
api {
route "/api/v1/team"
method "GET"
pipeline {
jq { { sqlParams: [.query.id] } }
sql { SELECT * FROM teams WHERE id = $1 }
jq { { data: (.data[0].rows | map({id: .id, name: .name})) } }
}
}
}On that note, I certainly wouldn't choose to invest all this money just to get better autocomplete... but whether or not someone else did I'm going to use it where it makes sense for me to.
That said, single pass LLMs tend to do this kind of thing but a lot of the more useful things are best done on chain of thought type ones, where they are given some time to reflect on options before they have to start generating the start of the final response.
I'm not saying I think it won't (though I _suspect_ it won't), I'm just saying we don't have any actual proof that it _will,_ we're all just running on assumptions right now.
A huge leap forward over existing models, but we've spent the last two (three?) decades trying to close the remaining gap left by dragon in the voice to text problem space, and haven't much progress to show.
I think LLMs are likely to be like that. They are a huge jump over previous models of NLP, but I don't see them improving enough to matter to indicate they'll ever make it to AGI
>Filtration system a marvel to behold
>It remove 80% of human solid waste
I mean, yeah, it's impressive. But it fails noticeably often enough to be unusable, especially in repeat cases.
This is true for French keyboards: https://en.m.wikipedia.org/wiki/AZERTY ;)
Personally I think this is the root cause of most sloppy AI code. If you just look at the code that was generated, and you don't think "I would've come up with that", then probably the code is wrong.
I'm not sure how to feel about any of this. On the one hand it clearly shows yet again how gullible people are. I wonder if senior engineers (those who can actually solve novel problems) value in the job market will go up as a result of this? Or will the market be saturated with so much AI-enabled waste that it brings the entire fields salary down as a whole? I feel bad for the end consumer who has to tolerate lower and lower quality products year over year, as the general software engineering practice seemingly burns to the ground, and becomes a chinese sweatshop churning out counterfeit sneakers.
Interestingly though I don't get it to write code. It's no good at the language I write in, so useless there.
As a "tutor" though it's been really useful. I'm asking a lot of (probably simple) questions, and the answers are "right enough". Occasionally I'm not sure why something is failing, and it's usually helpful there too.
So, less brain-rot and more "helpful senior who helps me along".
[1] the work I'm doing is related to SQL, which I've used here and there before, but not to the depth or degree I am now. I don't need it to write SQL, but rather to answer more general questions and to compare SQL databases, discuss effeciency and so on.
O1 has been really useful, but just the practice of putting my convoluted question into words has often helped me figure out the answer without even clicking submit.
Don’t rot your brain on this AI autocomplete stuff, learn how to apply AI to do things that were previously impossible or unfeasible, not as a way to just save time or do things cheaper as so many are tempted to.
At a practical level, this is a good reason to run your own AI plugin, even if it just a wrapper around some api.
You can log your requests and the responses, and then use a similarity score to periodically see what sorts of things you’re asking.
I may even update mine to hassle me and be like “you’re asking this a lot, maybe you should remember it…”
(If, you can be bothered, rather just reaching for copilot)
I understand that your goal was to review the "default" you got into, but I'd love to know a lot more about struggles (and counters to them) you experienced in the NAD itself