[HN Gopher] How I write code using Cursor
       ___________________________________________________________________
        
       How I write code using Cursor
        
       Author : tomyedwab
       Score  : 395 points
       Date   : 2024-10-29 03:50 UTC (19 hours ago)
        
 (HTM) web link (www.arguingwithalgorithms.com)
 (TXT) w3m dump (www.arguingwithalgorithms.com)
        
       | vishal-padia wrote:
       | In the article, you mentioned that you've been writing code for
       | 36 years, so don't you feel IDEs like cursor make you feel less
       | competent? Meaning I loved the process of scratching my head over
       | a problem and then coming to a solution but now we have AI Agents
       | solving the problems and optimizing code which takes the fun out
       | of it.
        
         | ninacomputer wrote:
         | Was going to ask a similar question. Where in the experience of
         | Cursor do you feel like you're losing some of the agency of
         | solving the harder problems, or is this something you take in
         | mind while using it?
        
           | Schnitz wrote:
           | I've "only" been coding for 20 years, but it's the tedious
           | problems, not the actually technically hard problems that
           | cursor solves. I don't need to debug 5 edge cases any more to
           | feel like I've truly done the work, I know I can do that,
           | it's just time spent. Cursor helps me get the boring and
           | repetitive work out of coding. Now, don't get me wrong, there
           | was a time where I loved building something lower level line
           | by line, but nowadays it's very often a "been there, done
           | that" type of thing for me.
        
           | com2kid wrote:
           | If I need an RNG rolled to a standard distribution, I can
           | either spend 5 minutes looking it up, learning how to import
           | and use a library, and adding it to my code, or I can tell
           | Cursor to do it for me.
           | 
           | Crap like that, 100 times a day.
           | 
           | "Walk through this array and pull out every element without
           | an index field and add it to a new array called
           | needsToBeIndexed, send them off to the indexing service, and
           | log any failures to the log file as shown in the function
           | above".
           | 
           | Cursor lets me think closer to the level of architecting
           | software.
           | 
           | Sure having a deep knowledge of my language of choices is
           | fun, and very needed at times, but for the 40% or so of code
           | that is boring work of moving data around, Cursor helps a
           | lot.
        
         | fassssst wrote:
         | For me it's like riding an e-bike. More fun because I can go
         | faster and see and do more.
        
           | ramijames wrote:
           | And you get less tired. I can complete more work because I'm
           | not always getting stuck in minutia. I can focus on
           | architecture, structure, and refactoring instead of line-by-
           | line writing of code.
           | 
           | I'm not saying that I don't like writing code. I'm just
           | saying that doing a lot of it can be mentally exhausting.
           | Sometimes I'd just prefer to ship feature-complete stuff on-
           | time and on-budget, then go back to my kids and wife without
           | feeling like my brain is mush.
        
           | crucialfelix wrote:
           | "An e-bike for the mind" as Steve Jobs might have said.
        
           | computerfriend wrote:
           | I have a motorbike, yet I prefer cycling because the exercise
           | feels good and is good for me.
        
           | __mharrison__ wrote:
           | I have compared AI to an emtb. Was riding one on slick rock
           | trail in Moab which has some areas with consequences earlier
           | this year.
           | 
           | If you don't know how to handle a bike, the ebike won't help
           | you in these situations. (You might even get yourself in a
           | tricky spot).
           | 
           | But if you know how to ride, it can be really fun.
           | 
           | Same with code. If you know how to code it can make you much
           | more productive. If you don't know how to code, you get into
           | tricky spots...
        
           | yoyohello13 wrote:
           | This is actually a great analogy. You get to accomplish a lot
           | more, much faster, but you lose much of the benefit to your
           | fitness.
        
             | ativzzz wrote:
             | > you lose much of the benefit to your fitness
             | 
             | If you're biking for the purpose of fitness then this is a
             | downside, but if your goal is to see more and go further,
             | then it's an acceptable tradeoff.
             | 
             | Similar to coding. If you're writing code because you enjoy
             | writing code, it's less fun. If you're writing code to
             | build stuff, AI will help you build faster
        
         | ziofill wrote:
         | I've been using cursor for a while now and I think that if a
         | problem is simple enough for an LLM to work out on its own,
         | it's probably not worth scratching one's head over...
        
           | szundi wrote:
           | Agreed with added experience of mine: sometimes Cursos gives
           | me a simpler yet perfect solution. And I am grateful for it.
        
           | eru wrote:
           | I'm not sure that's a good heuristic? People love playing
           | Tetris or solving crossword puzzles, and machines are much
           | better at them than us.
        
             | TeMPOraL wrote:
             | People keep playing trivial or repetitive games because
             | they enjoy it. People keep writing trivial or repetitive
             | code _because they have to_.
        
               | layer8 wrote:
               | ...or maybe because they actually enjoy it the same as
               | the games?
        
           | Refusing23 wrote:
           | I dont think people need to think, that the AI is supposed to
           | make complicated code
           | 
           | i think for the most part its meant to help you "get past"
           | all the generic code you usually write in the beginning of a
           | project, generic functions you need in almost all systems,
           | etc.
        
           | vishal-padia wrote:
           | I don't agree, in the initial stages solving problems without
           | LLMs will give a good enough knowledge about the intricacies
           | involved and it helps develop a structured approach while
           | solving a problem!
        
         | forgotoldacc wrote:
         | I feel like in the early stages of becoming a programmer,
         | learning how to do all those little baseline problems is fun.
         | 
         | But eventually you get to a point where you've solved
         | variations of the problem hundreds of times before, and it's
         | just hours of time being burnt away writing it again with small
         | adjustments.
         | 
         | It's like getting into making physical things with only a
         | screwdriver and a hammer. Working with your hands on those
         | little projects is fun. Then eventually you level up your
         | skills and realize making massive things is much easier with a
         | power drill and some automated equipment, and gives you time to
         | focus on the design and intricacies of far more complicated
         | projects. Though there are always those times where you just
         | want to spend a weekend fiddling with basics for fun.
        
           | szundi wrote:
           | Completely agreed. Don't be afraid to embrace this. You have
           | to give it an active month until it starts to work in your
           | hands though.
        
           | valenterry wrote:
           | That should be when you move to more sophistcated (and also
           | complex/complicated) languages that relieve you from as much
           | of this boilerplate as possible.
           | 
           | The rest is then general design and archiceture, where LLMs
           | really don't help much with. What they are really good for is
           | to get an idea of possible options in spaces were you have
           | little experience or to quickly explain and summarize
           | specific solutions and their pros and cons. But I tried to
           | make it pick a solution based on the constraints and even
           | with many tries and careful descriptions, the results were
           | really bad.
        
             | mewpmewp2 wrote:
             | I think it is not the boilerplate of the programming
             | language necessarily, but it is more to do with boilerplate
             | of common business logic. E.g. even say form validation, I
             | have done it countless of times and I can't be bothered to
             | write out rules for each field again, but AI can easily
             | generate me Zod schema with reasonable validation based on
             | the database model or schema. It probably does better
             | validation rules than I would do quickly on my first try.
             | 
             | Then I use these validations both in the backend and
             | frontend.
        
               | valenterry wrote:
               | There is nothing that stops a good PL from doing the
               | same. In fact, that is why languages like F# support a
               | concept called "type provider".
        
               | mewpmewp2 wrote:
               | I'm talking about web/app UI validation, are we talking
               | about the same thing?
               | 
               | Does F# provide ability to display validation errors with
               | good UX to users using your app? How does it know what
               | user friendly error messages look like?
               | 
               | Okay very simple example prompt that will generate 100+
               | lines of code.
               | 
               | "Give CRUD example using shadcn, react-hook-form, zod,
               | trpc to create an example of a TODO app"
               | 
               | Which programming language would be able to replace the
               | UI at this level of quality and how the UI looks?
               | 
               | Now this is very basic example, and it's a "todo app"
               | without existing project, but I find it can give me a lot
               | various different 100+ lines of boilerplate, from charts
               | to sql explorers, to much else.
               | 
               | Also most web app developers and especially juniors
               | usually have terrible error, loading, validation
               | handling, and SOTA seems far superior to that, handling
               | those cases everytime with ease and most intuitive error
               | messages.
               | 
               | It will patiently always do "isLoading", checks for
               | error, etc.
        
         | phito wrote:
         | I don't find figuring out the syntax of a new language
         | interesting. There's absolutely no fun in that. I know what I
         | want to do and already understand the concepts behind it, that
         | was the fun part to learn.
        
         | manmal wrote:
         | Do they really solve the hard problems though? For me, the LLMs
         | solve the low level problems. Usually I need to figure out an
         | algorithm, which is the actual problem, and finally give some
         | pseudo code to the LLM and surrounding code so it can generate
         | a solution that looks idiomatic.
         | 
         | In some cases, LLMs act as a stackoverflow replacement for me,
         | like ,,sort this with bubble sort, by property X". I'd also ask
         | it to write some test cases around that. I won't import a
         | bubble sort library just for this, but I also don't want to
         | spend any more time than necessary, implementing this for the
         | nth time.
        
         | mewpmewp2 wrote:
         | I think you are still thinking just on another level. E.g. you
         | go on a walk, you fantasize about everything you are going to
         | do, and it builds up in your head, then you come back, it is
         | all in your head and AI will help you get it out quickly, but
         | you have already solved the problem for yourself and so you are
         | also able to validate quickly what the AI does.
        
           | vishal-padia wrote:
           | yes this!!! Whenever I write a prompt, I tend to divide it
           | into smaller prompts, and in this process, my brain thinks of
           | multiple ways to solve the problem. So yes, it's not limiting
           | my thought process. I didn't notice this thing until I read
           | this.
        
         | tomyedwab wrote:
         | I do think that is a real risk, yes. I don't want to use LLMs
         | as a crutch to guard against having to ever learn anything new,
         | or having to implement something myself. There is such a thing
         | as productive struggle which is a core part of learning.
         | 
         | That said, I think everyone can relate to wasting an awful lot
         | of time on things that are not "interesting" from the
         | perspective of the project you are working on. For example, I
         | can't count the number of hours I've spent trying to get
         | something specific to work in webpack, and there is no payoff
         | because today the fashionable tool is vite and tomorrow it'll
         | be something else. I still want to know my code inside and out,
         | but writing a deploy script for it should not be something I
         | need to spend time on. If I had a junior dev working for me for
         | pennies a day, I would absolutely delegate that stuff to them.
        
         | alonsonic wrote:
         | For a lot of people the fun and rewarding part is actually
         | building and shipping something useful to users. Not solving
         | complex puzzles / algoritic challenges. If AI gets me in front
         | of users faster then I'm a happier builder.
        
       | christkv wrote:
       | I have not tried cursor using a combination of copilot and
       | chatgpt o1. Is cursor considered a better solution? I find it
       | takes the tedium out of work and allows me to focus on the
       | important bits. Right now working on a flutter app and it's great
       | to be able to quickly try out different ideas iterating quicker
       | towards a final design than before LLMs.
        
         | NitpickLawyer wrote:
         | > Is cursor considered a better solution?
         | 
         | It's the best I've tried so far. I only tried copilot when it
         | came out, so it might have improved a lot since then, perhaps
         | someone using both now can chime in.
         | 
         | There's two things I like about cursor - the overall multi-file
         | edit -> I use this for scaffolding whatever I need, at a high
         | level, and claude 3.5 seems a bit better than 4o for this.
         | 
         | The tab thing _really_ works, and it will surprise you. They
         | don 't do just autocomplete, they also do auto-action complete
         | so after you edit something, your cursor (heh) goes to the next
         | predicted place where you're likely to make an edit. And it
         | works ootb most times, and a few times I've gone "huh, might
         | have missed that, if it weren't for the cursor going there".
         | 
         | So that's my current workflow. Zoomed out scaffolding and then
         | going in and editing / changing whatever it is that I need, and
         | cursor has two really strong features for both cases.
        
           | zdragnar wrote:
           | Didn't sublime text have this with snippets? I vaguely recall
           | setting some up with tab stops for the parts that need manual
           | completion.
           | 
           | Not AI, but it was nice to have back 10-ish or whatever years
           | ago.
        
             | Maxion wrote:
             | No, that was a completely different thing.
        
             | NitpickLawyer wrote:
             | I've seen something like you mention in vscode for snippets
             | - that is fixed pieces of code with some variables, and the
             | IDE skips to them w/ tab, so that you can fill in the
             | values. But that's only for already made snippets, afaik.
             | 
             | The tab autocomplete in cursor is more of a "next action
             | autocomplete", wherein the LLM (a 70b fine-tune from what
             | the team said) will "autocomplete" the next action that
             | makes sense in context. Imagine changing something in a fn
             | definition, and then the cursor jumps to the line where you
             | used that fn. I'm sure something like this example could be
             | hardcoded in an IDE, but this works ootb in a general way.
        
         | viraptor wrote:
         | It's a completely different class than copilot in my opinion.
         | Or a higher generation. I find copilot occasionally useful, but
         | very chaotic. Cursor on the other hand is consistently saving
         | me lots of typing every day.
        
           | christkv wrote:
           | My problem is that i need an inteliJ plugin. Somebody
           | mentioned codebuddy as an alternative.
        
       | elashri wrote:
       | My problem with all AI code assistants is usually the context. I
       | am not sure how cursor fare in this regard but I always struggle
       | to feed the model enough of the code project to be useful for me
       | on a level more than providing line per line suggestion (which
       | copilot does anyway). I don't have experience with cursor or cody
       | (other alternative) and how they tackle this problem by using
       | embeddings (which I suppose have similar context limit).
        
         | szundi wrote:
         | Cursor is pretty uniqe and advanced in this regard. They tell a
         | lot about this in the Lex Fridman podcast, very interesting.
        
         | bufferoverflow wrote:
         | Cursor has 10K tokens context window. Which is quite low
         | compared to the top LLMs.
         | 
         | https://forum.cursor.com/t/capped-at-10k-context-no-matter-a...
        
           | elashri wrote:
           | The main and best model according to many is Claude 3.5. But
           | it provides maximum of 200k [1]. While I understand cost
           | effectiveness and other limitations with embeddings. But
           | maximum context of just 5% is probably too low with any
           | standard.
           | 
           | [1] https://support.anthropic.com/en/articles/7996856-what-
           | is-th...
        
           | throwup238 wrote:
           | You have to switch to long context chat to get the full 200k
           | (I don't think this works for Composer though).
        
         | extr wrote:
         | All the SOTA LLM solutions like this have nearly the same
         | problem. Sure the context window is huge, but there is no
         | guarantee the model understands what 100K tokens of code is
         | trying to accomplish within the context of the full codebase,
         | or even into the real world, within the context of the
         | business. They are just not good enough yet to use in real
         | projects. Try it, start a greenfield project with "just cursor"
         | like the ai-influencers do and see how far you get before it's
         | an unmanagable mess and the LLM is lost in the weeds.
         | 
         | Going the other direction in terms of model size, one tool I've
         | found usable in these scenarios is Supermaven [0]. It's still
         | just one or multi-line suggestions a la GH Copilot, so it's not
         | generating entire apps for you, but it's much much better about
         | pulling those one liners from the rest of the codebase in a
         | logical way. If you have a custom logging module that overloads
         | the standard one, with special functions, it will actually use
         | those functions. Pretty impressive. Also very fast.
         | 
         | [0] https://supermaven.com/
        
           | Der_Einzige wrote:
           | Cursor has a built in embeddings/RAG solutions to mitigate
           | this problem.
        
             | extr wrote:
             | Embeddings/RAG don't address the problem I'm talking about.
             | The issue is that you can stuff the entire context window
             | full of code and the models will superficially leverage it,
             | but will still violate existing conventions,
             | inappropriately bring in dependencies, duplicate
             | functionality, etc. They don't "grok" the context at the
             | correct level.
        
         | batesy wrote:
         | It's the users job to provide the context the LLM needs in
         | plain language instruction. Not just relying on the LLM to
         | magically understand everything based on the codebase.
        
       | friggeri wrote:
       | I recently started using Cursor for all my typescript/react
       | personal projects and the increase in productivity has been
       | staggering. Not only has it helped me execute way faster, similar
       | to the OP I also find that it prevents me from getting
       | sidetracked by premature abstraction/optimization/refactoring.
       | 
       | I recently went from an idea for a casual word game (aka wordle)
       | to a fully polished product in about 2h, which would have taking
       | me 4 or 5 times that if I hadn't used Cursor. I estimate that 90%
       | of the time was spent thinking about the product, directing the
       | AI, and testing and about 10% of the time actually coding.
        
         | eru wrote:
         | Interesting. Have you published the game anywhere (eg GitHub or
         | so)?
         | 
         | Have you written about your experience anywhere in greater
         | length?
        
         | namaria wrote:
         | You're happy to have gone from thinking of cloning something to
         | cloning something using a cloning tool quickly?
        
           | bsaul wrote:
           | Your remark raises a question : how much of your daily work
           | is truely original ?
           | 
           | Unless you work in R&D i've got some bad news for you..
        
             | achierius wrote:
             | You don't have to be a researcher to do original work. Out
             | of ten people on my team one has a PhD, but we're all doing
             | more-or-less unique work a large fraction of the time.
        
           | becquerel wrote:
           | Why shouldn't they be? They achieved their goal. There is
           | little shame in cloning something.
        
           | friggeri wrote:
           | Apologies for the misunderstanding, I just caught the typo,
           | should have read "ala wordle", not "aka wordle", the game is
           | fully original.
           | 
           | Using AI enabled me to spend more time thinking about game
           | mechanics.
        
         | sophiacamille wrote:
         | Id love to see your GitHub before and after
        
         | miningape wrote:
         | I would love to see the world where you didn't use AI and
         | instead invested the time to make yourself a stronger
         | programmer. A react wordle clone isn't something most
         | developers would need 2 hours to make (sure maybe the styling /
         | hosting AROUND the wordle clone might take longer) - I'm not
         | saying you're a bad programmer or a bad person but what is the
         | opportunity cost of using AI here? Are you optimising yourself
         | into a local-minima?
        
           | regularfry wrote:
           | Counterpoint: learning to make better buggy-whips is fun but,
           | in the grand scheme of things, also a local minimum.
        
             | miningape wrote:
             | The existence of other minima does not imply all minima are
             | equal.
             | 
             | In fact, without knowing the entire graph it's impossible
             | to say whether a particular minima is the global minima or
             | just a local one.
        
           | jpamata wrote:
           | they said 90% of it was spent on ideation and exploration
           | 
           | they didnt specifically mean they built a wordle clone, just
           | a game like it. if they wanted just a wordle clone, they
           | wouldve gotten one within a few minutes of using codegen
           | tools.
        
             | miningape wrote:
             | No, what they said was
             | 
             | > I estimate that 90% of the time was spent thinking about
             | the product, directing the AI, and testing
             | 
             | In other words 90% of the time was spent in the proompt-
             | test-proompt loop. Not ideation and exploration.
             | 
             | > they didnt specifically mean they built a wordle clone,
             | just a game like it. if they wanted just a wordle clone,
             | they wouldve gotten one within a few minutes of using
             | codegen tools.
             | 
             | If you really believe that I'm not sure what to say other
             | than: have you tried to use an AI to make a full wordle
             | clone? (not just the checking logic, or rendering - the
             | entire thing)
        
               | jpamata wrote:
               | yes, the quote is what I'm referring to, directing the AI
               | is part of it, people use these to quickly brainstorm and
               | refine ideas. I'd be more charitable and wouldn't hastily
               | assume it was some skill issue, especially them being a
               | principal engineer
        
           | wruza wrote:
           | I think this excitement reflects the fact that most devs are
           | shoemakers without shoes. They could get cursor-like
           | experience decades ago by preparing snippets, tools,
           | templates, editor configs and knowledge bases. But they used
           | that "a month of work can save two days of planning"
           | principle, so now having a _sort of a_ development toolkit
           | feels refreshing. Those who had it aren't that impressed.
        
         | causal wrote:
         | You're getting a lot of snark in the comments, but your
         | excitement is warranted. It's fascinating how any claims of a
         | code tool being useful always seem to offend the ego and bring
         | out all the chest-thumping super-programmers claiming they
         | could do it better.
        
       | pama wrote:
       | What are the closest Emacs packages and flows for something
       | similar to Cursor? Is the ability to use a tab in this way
       | something that can be simply instructed or finetuned?
        
         | viraptor wrote:
         | Not in the same way. Places like Cursor and Continue have their
         | own tuned and minimal models which can work really fast. In an
         | interview, Cursor people also mentioned some extra magic they
         | do like streaming the changes/context in as you type and
         | potentially doing some speculative processing before you even
         | type things. You would need to write lots of new code which, as
         | far as I understand, doesn't exist in the open source world at
         | this point. And neither do the appropriate models.
         | 
         | I'm sure we'll get there, but I haven't seen anything even
         | close available.
        
           | HarHarVeryFunny wrote:
           | Anthropic have a streaming API (incrementally stream
           | responses back to client) that I believe Cursor uses.
        
             | viraptor wrote:
             | That's the basic part. Cursor people talked about
             | effectively streaming in and other ideas. See
             | https://youtu.be/oFfVt3S51T4
        
       | benreesman wrote:
       | I'm doing an experiment in this in real time: I've got a bunch of
       | top-flight junior folks, all former Jane and Google and Galois
       | and shit, but all like 24.
       | 
       | I've also been logging every interaction with an LLM and the exit
       | status of the build on every mtime of every language mode file
       | and all the metadata: I can easily plot when I lean on the thing
       | and when I came out ahead, I can tag diffs that broke CI. I'm
       | measuring it.
       | 
       | My conclusion is that I value LLMs for coding in exact the same
       | way that the kids do: you have to break Google in order for me to
       | give a fuck about Sonnet.
       | 
       | LLMs seem like magic unless you remember when search worked.
        
         | dartos wrote:
         | > LLMs seem like magic unless you remember when search worked.
         | 
         | Yikes. I didn't even think about this, but it's true.
         | 
         | I'm looking for the kinds of answers that Google used to
         | surface from stack overflow
        
           | supaflybanzai wrote:
           | Kagi...
           | 
           | Fully switched over more than a year ago and never looked
           | back.
        
             | barbazoo wrote:
             | Kagi with the "Programming" lense turned on
        
             | dartos wrote:
             | I had a kagi account for a year, but it's just bing with
             | some admittedly nice features on top.
             | 
             | I don't get the results because there's just not a lot of
             | people talking about what I'm interested in.
        
           | jansan wrote:
           | The best way to get useful answers was (and for me still is)
           | to ask Goggle for "How do I blah site:stackoverflow.com".
           | Without the site filter, Google results suck or are just a
           | mess, and stackoverflow's own search is crap.
        
             | JamesBarney wrote:
             | Google used to be better but so was stack overflow. Now a
             | lot of the answers are out-dated. And even more importantly
             | they got rid of any questions where the answer was even a
             | little bit subjective. Unfortunately for users that's
             | almost all the most useful answers.
        
           | skydhash wrote:
           | Nowadays, I just read manuals, docs and books. I mostly use
           | search as a quick online TOC or for that specific errors I'm
           | in no mood to debug.
        
         | nopinsight wrote:
         | What domain/type of software do you and they work on? Cursor
         | has been quite effective for me and many others say the same.
         | 
         | As long as one prompts it properly with sufficient context,
         | reviews the generated code, and asks it to revise as needed,
         | the productivity boost is significant in my experience.
        
           | benreesman wrote:
           | I get value out of LLMs on stock Python or NextJS or whatever
           | where that person was in fact a lossy channel from SO to my
           | diff queue.
           | 
           | If there's no computation then there's no computer science.
           | It may be the case that Excel with attitude was a bubble in
           | hiring.
           | 
           | But Sonnet and 4o both suck at why CUDA isn't detected on
           | this SkyPilot resource.
        
             | benreesman wrote:
             | https://www.youtube.com/watch?v=FpG--q5u6ns
        
             | komali2 wrote:
             | > But Sonnet and 4o both suck at why CUDA isn't detected on
             | this SkyPilot resource.
             | 
             | I don't understand this sentence, should "both suck at why"
             | be "both suck and why" or perhaps I'm just misunderstanding
             | in general?
        
               | benreesman wrote:
               | SkyPilot is an excellent piece of software attempting an
               | impossible job: run your NVIDIA job on actively
               | adversarial compute fabric who mark up the nastiest
               | monopoly since the Dutch East India Company (look it up:
               | the only people to run famine margins anywhere near
               | NVIDIA are slave traders).
               | 
               | To come out of the cloud "credits" game with your shirt
               | on, you need stone cold pros.
               | 
               | The kind of people on the Cursor team. Not the adoring
               | fans who actually use their shit.
        
           | valenterry wrote:
           | Well, the context is the problem. LLMs will really become
           | useful if they 1.) understand the WHOLE codebase AND all it's
           | context and THEN also understand the changes over time to it
           | (local history and git history) and finally also use context
           | from slack - and all of that updating basically in real time.
           | 
           | That will be scary. Until then, it's basically just a better
           | autocomplete for any competent developer.
        
             | therein wrote:
             | Imagine you are coding in your IDE and it suggests you a
             | feature because someone mentioned it yesterday on #app-eng
             | channel. Needs deeper context, though. About order of
             | events, an how authoritative a character is.
        
             | danielbln wrote:
             | What you describe would be needed for a fully autonomous
             | system. But for a copilot sort of situation, the LLM
             | doesn't need to understand and know of _everything_. When I
             | implement a feature into a codebase, my mental model
             | doesn't include everything that has ever been done to that
             | codebase, but a somewhat narrow window, just wide enough to
             | solve the issue at hand (unless it's some massive codebase
             | wide refactor or component integration, but even then it's
             | usually broken down into smaller chunks with clear
             | interfaces and abstractions).
        
               | valenterry wrote:
               | I use copilot daily and because it lacks context it's
               | mostly useless except for generating boilerplate and
               | sometimes converting small things from A to B. Oh, also
               | copying functions from stackoverflow and naming them
               | right.
               | 
               | That's about it. But I spend maybe 5% of my time per day
               | on those.
        
               | danielbln wrote:
               | I dislike Copilot's context management, personally, and
               | much prefer populating the context of say Claude
               | deliberately and manually (using Zed, see
               | https://zed.dev/blog/zed-ai). This fits my workflow much
               | much better.
        
         | benreesman wrote:
         | To be clear I'm a huge fan of the Cursor team: those folks are
         | clearly great at their jobs and winning at life.
         | 
         | They didn't get ahead by selling you the same thing they do, if
         | they did Continue would be parity.
        
         | danielbln wrote:
         | I don't understand, are you using LLMs purely for information
         | retrieval, like a database (or search index)? I mean sure
         | that's one usecase, but for me the true power of LLMs comes
         | from actually processing and transforming information, not just
         | retrieving it.
        
           | benreesman wrote:
           | I have my dots wired up where I basically fire off a
           | completion request any time I select anything in emacs.
           | 
           | I just spend any amount of tokens to build a database of how
           | 4o behaves correlated to everything emacs knows, which is
           | everything. I'm putting down tens of megabytes a day on what
           | exact point they did whatever thing.
        
             | benreesman wrote:
             | I'm actively data-mining OpenAI, they get a bunch of code
             | that they have anyways because they have GitHub, I get
             | arbitrary scope to plot their quantization or whatever with
             | examples.
             | 
             | Flip it on em. You're the one being logged asshole.
             | 
             | https://youtu.be/un3NkWnHl9Q?si=VOnH2krJkJLRA2BQ
        
       | abricq wrote:
       | This last month I decided to try the Jetbrain equivalent of
       | Cursor, for their IDEs (https://www.jetbrains.com/ai/). It's a
       | pluging well integrated in the code editor that you can easily
       | summon.
       | 
       | I work in Rust and I had to start working with several new
       | libraries this month. One example of them is `proptest-rs`, a
       | rust property testing library that defines a whole new grammar to
       | define the tests. I am 100% sure that I spent much less time to
       | get on-boarded with the librariy's best practices and usages. I
       | just quickly went through their book (to learn the vocabulary)
       | and asked the AI to generate the code itself. I was very
       | surprised that it did not do any mistakes, considering that sort
       | of weird custom grammar of the lib. I will at least keep trying
       | for another months.
        
         | ruszki wrote:
         | How do you know that it didn't make any mistakes, which you
         | wouldn't make if you learned the usage of that library without
         | AI? Even before AI generated code, people made mistakes about
         | which they didn't know, because they never read the
         | documentation for example, and it "worked"... except the
         | unintended side effects of course. Adding an AI layer into the
         | picture makes this definitely worse.
        
           | eru wrote:
           | How's the AI worse in this respect that having a coworker or
           | teammate that you review code from?
        
           | abricq wrote:
           | It's not that you ask it to write 200 lines of code at once,
           | and blindly trust it. It's more that you start to use the
           | lib, ask it to generate one helper method at the time, for an
           | isolated task. Which leave you time to "review" the code that
           | it wrote properly. Even when a human writes code, it needs to
           | go through peer-review. So the exact same applies with AI.
           | It's the job of the reviewer (in this case, the one who
           | invokes the AI) to make sure that the one who wrote the code
           | does not do mistake, which can include going to read the doc
           | in more detail.
        
         | HatchedLake721 wrote:
         | FYI, 2024.3 that's coming in November/December will use a new
         | model and the new code completion suggestions rewritten from
         | scratch.
         | 
         | I suspect some are inspired by Cursor?
         | 
         | https://blog.jetbrains.com/ai/2024/10/complete-the-un-comple...
        
         | muixoozie wrote:
         | Wondering how the JetBrains gets the context of the library? Is
         | it fetching cargo docs somehow or are you having to paste docs
         | into a context window?
        
           | abricq wrote:
           | I did not have to provide any context, so I guess it was
           | trained partly with the cargo doc of the crate.
        
       | e2e4 wrote:
       | Any thoughts on how does cursor compare to cline (claude.dev) and
       | aider?
        
         | Epa095 wrote:
         | And Cody! Which has a pretty decent free tier.
        
         | rubslopes wrote:
         | I tried Cursor but I honestly didn't see a huge improvement
         | over VSCode + Continue.Dev. Cursor is better at editing
         | multiple files, and it's cheaper than using the API directly...
         | But I prefer VSCode + Continue.Dev (for chat) + Supermaven (for
         | completions).
         | 
         | Cline, on the other hand, is a whole different beast. It edit
         | multiple files, run the program, checks the shell for errors,
         | go back to the files, edit them, run it again, and even access
         | localhost:8000 to check. It's incredible! But if you use the
         | recommended Sonnet 3.5, it'll eat your money very fast.
         | 
         | I've been using Cline + 4o-mini for a few days. Sometimes it's
         | magical; it's the first time I truly feel that I have an
         | assistant. I tell it 'run, check for errors, and correct them'
         | and I leave to grab some coffee.
         | 
         | The bad side: I got lazy and once I almost let it delete rows
         | in a table because it misunderstood what I said.
        
         | cmcconomy wrote:
         | I'm a skeptic, but this weekend I worked with Cline in vscode
         | (using free gemini nano backend and free mistral backend via
         | openrouter) and managed to make some progress on a flutter app
         | I'm working on.
         | 
         | Flutter/Dart isn't something I'm actually familiar with though
         | I have a lot of dev experience, so I was able to distinguish
         | between poor advice and good advice from the agent. There was a
         | good share of frustrating code deletion happening that required
         | stern instruction adjustment.
         | 
         | For work I'd be concerned about sharing our IP and would want
         | to be on an LLM tier that promises privacy, or maybe even a
         | local LLM.
         | 
         | All in all I was more impressed than I thought I would be.
        
       | CrendKing wrote:
       | I've been using AI to solve isolated problems, mainly as a
       | replacement of search engine specifically for programming. I'm
       | still not convinced of these "write whole block of code for me"
       | type of use case. Here's my arguments against the videos from the
       | article.
       | 
       | 1. Snake case to camelCase. Even without AI we can already
       | complete these tasks easily. VSCode itself has command of
       | "Transform to Camel Case" for selection. It is nice the AI can
       | figure out which text to transform based on context, but not too
       | impressive. I could select one ":, use "Select All Occurrences",
       | press left, then ctrl+shift+left to select all the keys.
       | 
       | 2. Generate boilerplate from documentation. Boilerplate are
       | tedious, but not really time-consuming. How many of you spend 90%
       | of time writing boilerplate instead of the core logic of the
       | project? If a language/framework (Java used to be, not sure about
       | now) requires me to spend that much time on boilerplate, that's a
       | language to be ditched/fixed.
       | 
       | 3. Turn problem description into a block of concurrency code.
       | Unlike the boilerplate, these code are more complicated. If I
       | already know the area, I don't need AI's help to begin with. If I
       | don't know, how can I trust the generated code to be correct? It
       | could miss a corner case that my question didn't specify, which I
       | don't yet know existing myself. In the end, I still need to spend
       | time learning Python concurrency, then I'll be writing the same
       | code myself in no time.
       | 
       | In summary, my experience about AI is that if the question is
       | easy (e.g. easy to find exactly same question in StackOverflow),
       | their answer is highly accurate. But if it is a unique question,
       | their accuracy drops quickly. But it is the latter case where we
       | spend most of the time on.
        
         | eru wrote:
         | > Boilerplate are tedious, but not really time-consuming.
         | 
         | In the aggregate, almost no programmer can think up code faster
         | than they can type it in. But being a better typist still
         | helps, because it cuts down on the amount you have to hold in
         | your head.
         | 
         | Similar for automatically generating boilerplate.
         | 
         | > If I don't know, how can I trust the generated code to be
         | correct?
         | 
         | Ask the AI for a proof of correctness. (And I'm only half-
         | joking here.)
         | 
         | In languages like Rust the compiler gives you a lot of help in
         | getting concurrency right, but you still have to write the
         | code. If the Rust compiler approves of some code (AI generated
         | or artisanally crafted), you are already pretty far along in
         | concurrency right.
         | 
         | A great mind can take a complex problem and come up with a
         | simple solution that's easy to understand and obviously
         | correct. AI isn't quite there yet, but getting better all the
         | time.
        
           | mewpmewp2 wrote:
           | > In the aggregate, almost no programmer can think up code
           | faster than they can type it in. But being a better typist
           | still helps, because it cuts down on the amount you have to
           | hold in your head.
           | 
           | I mean on the big picture level sure they can. Or in detail
           | if it is something that they have good experience with. In
           | many cases I get a visual of the whole code blocks, and then
           | if I use copilot I can already predict what it is going to
           | auto complete for me based on the context and then I can
           | pretty much in a second know if it was right or wrong. Of
           | course it is more so for the side projects since I know
           | exactly what I want to do and so it feels most of the time it
           | is having to just vomit all the code out. And I feel
           | impatient, so copilot helps a lot with that.
        
           | enord wrote:
           | > In the aggregate, almost no programmer can think up code
           | faster than they can type it in.
           | 
           | And thank god! Code is a liability. The price of code is
           | coming down but selling code is almost entirely supplanted by
           | selling features (SaaS) as a business model. The early cloud
           | services have become legacy dependencies by now (great work
           | if you can get it). Maintaining code is becoming a central
           | business concern in all sectors governed by IT (i.e. _all_
           | sectors, eating the world and all that).
           | 
           | On a per-feature basis, more code means higher maintenance
           | costs, more bugs and greater demands on developer skills and
           | experience. Validated production code that delivers proven
           | customer value is not something you refactor on a whim
           | (unless you plan to go out of business), and the fact that
           | you did it in an evening thanks to ClippyGPT means nothing---
           | the costly part is always what comes after: demonstrating
           | value or maintaing trust in a competitive market with a much
           | shallower capital investment moat.
           | 
           | Mo' code mo' problems.
        
         | shinycode wrote:
         | I agree.
         | 
         | I replaced SO with cGPT and it's the only good case I found.
         | Finding an answer I build onto. But outsourcing my reflexion ?
         | That's a dangerous path. I tried on small projects to do that,
         | building a project from scratch with cursor just to test it.
         | Sometimes it's right on spot but in many instances it misses
         | completely some cases and edge cases. Impossible to trust
         | blindly. And if I do so and not take proper time to read and
         | think about the code the consequences pile up and make me waste
         | time in the long run because it's prompt over prompt over
         | prompt to refine it and sometimes it's not exactly right. That
         | messes up my thinking and I prefer to do it myself and use it
         | as a documentation on steroids. I never used google and SO
         | again for docs. I have the feeling that relying on it to much
         | to write even small blocs of code will make us loose some
         | abilities in the long run and I don't think that's a good
         | thing. Will companies allow us to use AI in code interviews for
         | boilerplate ?
        
           | Moru wrote:
           | The AI's are to a large degree trained on tutorial code,
           | quick examples, howto's and so on from the net. Code that
           | really should come with a disclamer note: "Dont use in
           | production, only example code.".
           | 
           | This leads to your code being littered with problematic edge-
           | cases that you still have to learn how to fix. Or in worst
           | case you don't even notice that there are edge cases because
           | you just copy-pasted the code and it works for you. The edge
           | cases your users will find with time.
        
             | agumonkey wrote:
             | Which makes me wonder, if old companies with a history of
             | highly skilled teams would train local models, how better
             | would they be at helping solve new complex problems.
        
               | SirHumphrey wrote:
               | They kinda already are - source code for highly complex
               | open source software is already in the training datasets.
               | The problem is that tutorials are much more descriptive
               | (why the code is doing something, how does this
               | particular function work etc. -down to a level of a
               | single line of code), which probably means it's much
               | easier to interpret for llm-s, therefore weighted higher
               | in responses.
        
             | scosman wrote:
             | AI is trained on all open source code. I'm pretty sure
             | that's a much larger source of training data than web
             | tutorials.
        
             | TeMPOraL wrote:
             | Isn't tutorial-level code exactly the best practices that
             | everyone recommends these days? You know, don't write
             | clever code, make things obvious to juniors, don't be a
             | primadonna but instead make sure you can be replaced by any
             | recently hired fresh undergrad, etc.? :)
        
               | achierius wrote:
               | Not really. For example, tutorial code will often leave
               | out edge cases so as to avoid confusing the reader: if
               | you're teaching a new programmer how to open a file, you
               | might avoid mentioning how to handle escaping special
               | characters in the filename.
        
               | Moru wrote:
               | Don't forget about Little Bobby Tables! These types of
               | tutorials probably killed the most databases over time.
        
         | Sateeshm wrote:
         | Completely agree. I find it fails miserably at business logic,
         | which is where we spend most of our time on. But does great at
         | generic stuff, which is already trivial to find on stack
         | overflow.
        
           | Hedepig wrote:
           | Have you had a go with the o1 range of models?
        
             | withinboredom wrote:
             | Yesterday, I got into an argument on the internet
             | (shocking, I know), so I pulled out an old gravitation
             | simulator that I had built for a game.
             | 
             | I had chatGPT give me the solar system parameters, which
             | worked fine, but my simulation had an issue that I actually
             | never resolved. So, working with the AI, I asked it to
             | convert the simulation to constant-time (it was currently
             | locked to render path -- it's over a decade old). Needless
             | to say, it wrote code that set the simulation to be
             | realtime ... in other words, we'd be waiting one year to
             | see the planets go around the sun. After I pointed that
             | out, it figured out what to do and still got things wrong
             | or made some terrible readability decisions. I ended up
             | using it as inspiration instead and then was able to have
             | the simulation step at one second resolution (which was
             | required for a stable orbit) but render at 60fps and
             | compress a year into a second.
        
               | wruza wrote:
               | This sums up my experience as well. You can get an idea
               | or just a direction from it, but itself AI stumbles upon
               | its own legs instantly in any non-tutorial task.
               | Sometimes I envy and at the same time feel sorry for
               | successful AI-enabled devs, cause it feels like they do
               | boilerplate and textbook features all day. What a release
               | if something can write it for you.
        
           | PUSH_AX wrote:
           | This might be a promoting issue, my experience is very
           | different, I've written entire services using it.
        
             | miningape wrote:
             | Might be that they work in a much more complex codebase, or
             | a language/framework/religion that has less text written on
             | it. Might also be that they (are required to) hold code to
             | a higher standard than you and can't just push half-baked
             | slop to prod.
        
               | PUSH_AX wrote:
               | Without knowing much about my standards and work you've
               | just assumed it's half baked slop. You're wrong.
        
               | miningape wrote:
               | Without knowing much about my prompts and work you've
               | just assumed it's why AI gives me bad results. You're
               | wrong. (Can you see why this is a bad argument?)
               | 
               | Don't get me wrong I love sloppy code as much as the next
               | cowboy, but don't delude yourself or others when the
               | emperor doesn't have clothes on.
        
               | lomase wrote:
               | IA generated content is the definition of slop for most
               | people.
        
               | TeMPOraL wrote:
               | Which is deeply sad, because this both tarnishes good
               | output and gives a free pass to the competitor - shit
               | "content" generated by humans. AI models only recently
               | started to match that in quantity.
               | 
               | But then again, most of software industry exists to
               | create and support creation of human slop - advertising,
               | content marketing, all that - so there's bound to be some
               | double standards and salary-blindness present.
        
               | PUSH_AX wrote:
               | > IA generated content is the definition of slop
               | 
               | The irony.
        
               | lomase wrote:
               | https://en.wikipedia.org/wiki/Slop_(artificial_intelligen
               | ce)
               | 
               | English is not my mother tonge. I have never noticed the
               | word "slop" until people started to use it to talk about
               | AI generated content.
               | 
               | So for many people around the world slop = AI content.
               | 
               | Where is the irony if I may ask?
        
               | miningape wrote:
               | You misspelled AI - that's the extent of the irony
        
               | lomase wrote:
               | In my mother tongue is called IA, inteligecia artificial.
               | I mix it up all the time.
        
               | 1oooqooq wrote:
               | you didn't have to explain. he knew, my friend. he knew.
        
               | JamesBarney wrote:
               | I've spent a good amount of time in my career reading
               | high quality code and slop. The difference is not some
               | level of intelligence that sonnet does not possess. It's
               | a well thought out design, good naming, and rigor. Sonnet
               | is as good if not better than the average dev at most of
               | this and with a some good prompting and a little editing
               | can write code as good as most high quality open source
               | projects.
               | 
               | Which is usually far higher than most commerical apps the
               | vast majority of us devs work on.
        
               | miningape wrote:
               | > with a some good prompting and a little editing can
               | write code good
               | 
               | I agree with a good developer "baby-sitting" the model
               | it's capable of producing good code. Although this is
               | more because the developer is skilled at producing good
               | code so they can tell an AI where it should refactor and
               | how (or they can just do it themselves). If you've spent
               | significant time refitting AI code, it's not really AI
               | code anymore its yours.
               | 
               | Blindly following an AI's lead is where the problem is
               | and this is where bad to mediocre developers get stuck
               | using an AI since the effort/skill required to take the
               | AI off its path and get something good out is largely not
               | practised. This is because they don't have to fix their
               | own code, and what the AI spits out is largely functional
               | - why would anyone spend time thinking about a solution
               | that works that they don't understand how they arrived
               | at?
        
               | JamesBarney wrote:
               | I've spent soo much time in my life reviewing bad or
               | mediocre code from mediocre devs and 95% of the time the
               | code sonnet 3.5 generates is at least as correct and 99%
               | of the time more legible than what a mediocre dev
               | generates.
               | 
               | It's well commented, the naming is great it rarely tries
               | to get overly clever, it usually does some amount of
               | error handling, it'll at least try to read the
               | documentation, it finds most of the edge cases.
               | 
               | That's a fair bit above a mediocre dev.
        
               | 1oooqooq wrote:
               | i love those hot takes because the market will
               | historically fire you and hire the mediocre coders alone
               | now.
        
               | snowfarthing wrote:
               | It's easy to forget one major problem with this: we _all_
               | have been mediocre devs at some point in our lives -- and
               | there will _always_ be times when we 're mediocre, even
               | with all our experience, because we can't be experienced
               | in _everything_.
               | 
               | If these tools replace mediocre devs, leaving only the
               | great devs to produce the code, what are we going to do
               | when the great devs of today age out, and there's no one
               | to replace them with, because all those mediocre devs
               | went on to do something else, instead of hone their craft
               | until they became great devs?
               | 
               | Or maybe we'll luck out, and by the time that happens,
               | our AIs will be good enough that they can program
               | _everything_ , and do it even better than the _best_ of
               | us.
               | 
               | If you can call that "lucking out" -- some of us might
               | disagree.
        
           | rco8786 wrote:
           | > But does great at generic stuff, which is already trivial
           | to find on stack overflow.
           | 
           | The major difference is that with Cursor you just hit "tab",
           | and that thing is done. Vs breaking focus to open up a
           | browser, searching SO, finding an applicable answer
           | (hopefully), translating it into your editor, then reloading
           | context in your head to keep moving.
        
             | skydhash wrote:
             | The benefits of exploring is finding alternatives and
             | knowing about gotchas. And knowing more about both the
             | problem spaces and how the language/library/framework
             | solves it.
        
         | whatever1 wrote:
         | Have you tried recently to start a new web app from scratch?
         | Specially the integration of frontend framework with styling
         | and the frontend backend integration.
         | 
         | Oh my god get ready to waste a full weekend just to setup
         | everything and get a formatted hello world.
        
           | exe34 wrote:
           | that's an indictment of the proliferation of shitty
           | frameworks and documentation. it's not hard to figure out
           | such a combination and then keep a template of it lying
           | around for future projects. you don't have to reach for the
           | latest and shiniest at the start of every project.
        
             | TeMPOraL wrote:
             | > _you don 't have to reach for the latest and shiniest at
             | the start of every project._
             | 
             | Except you kind of do, because if you're working frontend
             | or mobile, then your chosen non-shitty tech stack is
             | probably lacking some Important Language Innovations or
             | Security Featuers that Google or Microsoft forced on the
             | industry since last time you worked with that stack.
             | 
             | (Yes, that's mostly just an indictment of the state of our
             | industry.)
        
               | exe34 wrote:
               | every time you capitulate, you tell them that you're
               | happy to play along, bring more "innovation" so you keep
               | having to run very hard just to stay in place.
        
           | dkersten wrote:
           | Most frontend frameworks come with usable templates. Setting
           | up a new Vite React project and getting to a formatted hello
           | world can be done in half an hour tops.
        
             | namaria wrote:
             | It takes me all of 5 minutes with Phoenix
        
               | dkersten wrote:
               | Exactly, the idea that it would take a weekend seems
               | crazy to me. It's certainly not something I need AI for.
        
             | ileonichwiesz wrote:
             | Half an hour is still an overestimation, most of these
             | frontend tools go from 0 to hello world in a single CLI
             | command.
        
               | TeMPOraL wrote:
               | On a good day, when you're using the most recent right
               | version of MacOS, when all of the frontend tool's couple
               | thousand dependencies isn't transiently incompatible with
               | everything else, yes.
               | 
               | (If no, AI probably won't help you here either. Frontend
               | stuff moves too fast, and there's too much of it. But
               | then perhaps the AI model could tell you that the
               | frontend tool you're using is a ridiculous overkill for
               | your problem anyway.)
        
               | frde_me wrote:
               | I'll be honest, I've never had the command line tool to
               | setup a React / NextJS / Solid / Astro / Svelt / any
               | framework app fail to make something that runs, ever
        
               | TeMPOraL wrote:
               | I had create-react-app break for me on the first try,
               | because I managed to luck into some transient issue with
               | dependencies.
        
               | whatever1 wrote:
               | What exactly magic command line tool are you referring
               | to? What cmd tool configures the frontend framework to
               | use a particular css framework, webpack to work with your
               | backend endpoints properly, setups cors and
               | authentication with the backend for development,
               | configures the backend to point to and serve the spa?
        
               | lomase wrote:
               | dotnet new <the_template>
        
             | williamdclt wrote:
             | Yep, it will likely work and do what it's supposed to do.
             | But what it's supposed to do is probably only 90% of what
             | you want: try to do anything out of what the boilerplate is
             | setup for and you're in for hours of pain. Want SWC instead
             | of TSC? Eslint wasn't setup, or not like you want? Prettier
             | isn't integrated with ESlint? You want Typescript project
             | references? Something about ES modules vs CJS? Hours and
             | hours and hours of pain.
             | 
             | I understand all this stuff better than the average
             | (although not a top 10%), and I'd be ashamed to put a
             | number of the amount of hours I've lost on setting up
             | boilerplate _even_ having used some sort of official
             | generator
        
           | earthnail wrote:
           | That's why I use Rails for work. But I also had to write a
           | small Nodejs project (vite/react + express) recently for a
           | private project, and it has a lot of nice things going for it
           | that make modern frontend dev really easy - but boy is it
           | time consuming to set up the basics.
        
             | wry_discontent wrote:
             | I can't imagine having nice things to say about node after
             | working in Rails. Rails does so much for you, provides a
             | coherent picture of how things work. Node gives you nothing
             | but the most irritating programming tools around
        
               | skydhash wrote:
               | I thought node was great until I had to upgrade some
               | projects, and then realizing that those frameworks
               | maintainers never maintain their dependencies. While in
               | the C world, lot of projects treat warnings as errors.
        
           | CalRobert wrote:
           | I've been pretty happy with vite, chakra, and Postgrest
           | lately
        
         | dkersten wrote:
         | 1. Is such a taste task for me anyway that I don't lose much
         | just doing it by hand
         | 
         | 2. The last time I wrote boilerplate heavy Java code, 15+ years
         | ago, the IDE already generated most of it for me. Nowadays
         | boilerplate comes in two forms for me: new project setup, which
         | I find it far quicker to use a template or just copy and gut an
         | existing project (and it's not like I start new projects that
         | often anyway), or new components that follow some structure,
         | where AI might actually be useful but I tend to just copy an
         | existing one and gut it.
         | 
         | 3. These aren't tasks I really trust AI for. I still attempt to
         | use AI for them, but 9 out of 10 times come away disappointed.
         | And the other 1 time end up having to change a lot of it
         | anyway.
         | 
         | I find a lot of value from AI, like you, asking it SO style
         | questions. I do also use it for code snippets, eg "do this in
         | CSS". Its results for that are usually (but not always)
         | reasonably good. I also use it for isolated helper functions
         | (write a function to flood fill a grid where adjacent values
         | match was a recent one). The results for this range from a
         | perfect solution first try, to absolute trash. It's still
         | overall faster than not having AI, though. And I use it A LOT
         | for rubber ducking.
         | 
         | I find AI is a useful tool, but I find a lot of the positive
         | stories to be overblown compared to my experience with it. I
         | also stopped using code assistants and just keep a ChatGPT tab
         | open. I sometimes use Claude but it's conversation length
         | limits turned me off.
         | 
         | Looking at the videos in OP, I find the parallelising task to
         | be exactly the kind of tricky and tedious task that I don't
         | trust AI to do, based on my experience with that kind of task,
         | and with my experience with AI and the subtly buggy results it
         | has given me.
        
         | viraptor wrote:
         | > I could select one ":, use "Select All Occurrences"
         | 
         | Only if it's the same occurrences. Cursor can often get the
         | idea of what you want to do with the whole block of different
         | names. Unless you're a vim macro master, it's not easily
         | doable.
         | 
         | > How many of you spend 90% of time writing boilerplate instead
         | of the core logic of the project?
         | 
         | It doesn't take much time, but it's a distraction. I'd rather
         | tab through some things quickly than context switch to the
         | docs, finding the example, adapting it for the local script,
         | then getting back to what I was initially trying to do. Working
         | memory in my brain is expensive.
        
         | never_inline wrote:
         | 100%. Useful cases include
         | 
         | * figuring out how to X in an API - eg "write method
         | dl_file(url, file) to download file from url using requests in
         | a streaming manner"
         | 
         | * Brainstorming which libraries / tools / approaches exist to
         | do a given task. Google can miss some. AI is a nice complement
         | for Google.
        
           | dexwiz wrote:
           | I don't even trust the API based exercises anymore unless
           | it's a stable and well documented API. Too many times I've
           | been bitten by an AI mixing and matching method signatures
           | from different versions, using outdated approaches, mixing in
           | apis from similar libraries, or just completely hallucinating
           | a method. Even if I load the entire library docs into the
           | context, I haven't found one that's completely reliable.
        
             | never_inline wrote:
             | It just has to be popular and common boilerplate like the
             | example I gave.
             | 
             | It's hard with less popular APIs. It will almost always get
             | something wrong. In such cases, I read docs, search
             | sourcegraph / GitHub, and finally check the source code.
        
         | JamesBarney wrote:
         | Disagree.
         | 
         | I still spend a good amount of time on boilerplate. Stuff
         | that's not thinking hard about the problem I'm trying to solve.
         | Stuff like units tests, error logging, naming classes, methods
         | and variables. Claude is really pretty good at this, not as
         | good as the best code I've read in my career but definitely
         | better than average.
         | 
         | When I review sonnets code the code is more likely to be
         | correct than if I review my own. If I make a mistake I'll read
         | what I intended to write, and not what I actually wrote. Where
         | as when I review sonnets there's 2 passes so the chance an
         | error slips through is smaller.
        
           | pylua wrote:
           | Unit tests are boiler plate ?
        
             | JamesBarney wrote:
             | I'm using an expansive definition of boiler plate to be
             | sure. But like boiler plate most unit tests require a
             | little bit of thought and then a good amount of typing,
             | doing things like setting up the data to test, mocking up
             | methods, writing out assertions to test all your edge
             | cases.
             | 
             | I've found sonnet and o1 to be pretty good at this. Better
             | than writing the actual code because while modifying a
             | system requires a lot of context of the overall application
             | and domain, unit testing a method usually doesn't.
        
             | uh_uh wrote:
             | Quite often, yes. That's why I prefer integration tests.
        
               | girvo wrote:
               | Indeed. To many tests are just testing nothing other than
               | mocks. That goes for my coworkers directly and for their
               | Copilot output. They're not useful tests, they are thing
               | to catch actual errors, they're maybe useful as usage
               | documentation. But in general, they're mostly a waste.
               | 
               | Integration tests, good ones, are harder but far more
               | valuable.
        
               | thunky wrote:
               | > To many tests are just testing nothing other than mocks
               | 
               | Totally agree, and I find that they don't help with
               | documentation much either, because the person that wrote
               | it doesn't know what they're trying to test. So it only
               | overcomplicates things.
               | 
               | Also harmful because it gives a false sense of security
               | that the code is tested when it really isn't.
        
             | TeMPOraL wrote:
             | Yes. You write a function ApplyFooToBar(), and then unit
             | tests that check that, when supplied with right Foos, the
             | function indeed applies those Foos to the Bar. It's not a
             | very intellectually challenging work.
             | 
             | If anything, the challenge is with all the boilerplate
             | _surrounding the test_ , because you can't _just_ write
             | down what the test checks themselves - you need to assemble
             | data, assemble expected result, which you end up DRY-ing
             | into support modules once you have 20 tests needing similar
             | pre-work, and then there 's lots of other bullshit to deal
             | with at the intersection between your programming language,
             | your test framework, and your modularization strategy.
        
         | johnisgood wrote:
         | Boilerplate comes up all the time when writing Erlang with OTP
         | behaviors though, and sometimes you have no idea if it really
         | is the right way or not. There are Emacs skeletons for that
         | (through tempo), but feels like they are sometimes out of date.
        
         | theshrike79 wrote:
         | I have a corporation-sponsored subscription to Github CoPilot +
         | Rider
         | 
         | When I'm writing unit tests or integration tests it can guess
         | the boilerplate pretty well.
         | 
         | If I already have a AddUserSucceeds test and I start writing
         | `public void Dele...` it usually fills up the
         | DeleteUserSucceeds function with pretty good guesses on what
         | Asserts I want there - most times it even guesses the API
         | path/function correctly because it uses the whole project as
         | context.
         | 
         | I can also open a fresh project I've never seen and ask "Where
         | is DbContext initialised" and it'll give me the class and code
         | snippet directly.
        
         | scosman wrote:
         | I started like this. Then I came around and can't imagine going
         | back.
         | 
         | It's kinda like having a really smart new grad, who works
         | instantly, and has memorized all the docs. Yes I have to code
         | review and guide it. That's an easy trade off to make for
         | typing 1000 tokens/s, never losing focus, and double checking
         | every detail in realtime.
         | 
         | First: it really does save a ton of time for tedious tasks. My
         | best example is test cases. I can write a method in 3 minutes,
         | but Sonnet will write the 8 best test cases in 4 seconds, which
         | would have taken me 10 mins of switching back and forth,
         | looking at branches/errors, and mocking. I can code review and
         | run these in 30s. Often it finds a bug. It's definitely more
         | patient than me in writing detailed tests.
         | 
         | Instant and pretty great code review: it can understand what
         | you are trying to do, find issues, and fix them quickly. Just
         | ask it to review and fix issues.
         | 
         | Writing new code: it's actually pretty great at this. I needed
         | a util class for config that had fallbacks to config files, env
         | vars and defaults. And I wanted type checking to work on the
         | accessors. Nothing hard, but it would have taken time to look
         | at docs for yaml parsing, how to find the home directory, which
         | env vars api returns null vs error on blank, typing, etc. All
         | easy, but takes time. Instead I described it in about 20
         | seconds and it wrote it (with tests) in a few seconds.
         | 
         | It's moved well past the stage "it can answer questions on
         | stack overflow". If it has been a while (a while=6 months in
         | ML), try again with new sonnet 3.5.
        
           | scosman wrote:
           | Another fun example from yesterday: pasted a blog post in
           | markdown into a HTML comment. Selected it and told sonnet to
           | convert it to HTML using another blog post as a style
           | reference.
           | 
           | Done in 5 seconds.
        
             | kccqzy wrote:
             | And how do you trust that it didn't just alter or omit some
             | sentences from your blog post?
             | 
             | I just use Pandoc for that purpose and it takes 30 seconds,
             | including the time to install pandoc. For code generation
             | where you'll review everything, AI makes sense; but for
             | such conversion tasks, it doesn't because you won't review
             | the generated HTML.
        
               | falconertc wrote:
               | You didn't also factor in the time to learn Pandoc (and
               | to relearn it if you haven't used it lately). This is
               | also just one of many daily use cases for these tools.
               | The time it takes to know how to use a dozen tools like
               | this adds up when an LLM can just do them all.
        
               | kccqzy wrote:
               | This is actually how I would use AI: if I forgot how to
               | do a conversion task, I would ask AI to tell me the
               | command so that I can run it without rejiggering my
               | memory first. The pandoc command is literally one line
               | with a few flags; it's easily reviewable. Then I run
               | pandoc myself. Same thing with the multitude of other
               | rarely used but extremely useful tools such as jq.
               | 
               | In other words, I want AI to help me with invoking other
               | tools to do a job rather than doing the job itself. This
               | nicely sidesteps all the trust issues I have.
        
               | flir wrote:
               | I do that constantly. jq's syntax is especially opaque to
               | me. "I've got some JSON formatted like <this>. Give me a
               | jq command that does <that>.
               | 
               | Google, but better.
        
               | TeMPOraL wrote:
               | > _it takes 30 seconds, including the time to install
               | pandoc_
               | 
               | On some speedrunning competition maybe? Just tested on my
               | work machine, `sudo apt-get pandoc` took 11 seconds to
               | complete, and it was this fast only because _I already
               | had all the depndencies installed_.
               | 
               | Also I don't think you'll be able to fulfill the "using
               | another blog post as a style reference" part of GP's
               | requirements - unless, again, you're some grand-master
               | Pandoc speedrunner.
               | 
               | Sure, AI will make mistakes with such conversion tasks.
               | It's not worth it if you're going to review everything
               | carefully anyway. In code, fortunately, you don't have to
               | - the compiler is doing 90% of the grunt work for you. In
               | writing, depends on context. Some text you can eyeball
               | quickly. Sometimes you can get help from your tool.
               | 
               | Literally yesterday I back-ported a CV from English to
               | Polish via Word's Translation feature. I could've done it
               | by hand, but Word did 90% of it correctly, and fixing the
               | remaining issues was a breeze.
               | 
               | Ultimately, what makes LLMs a good tool for random
               | conversions like these is that it's _just one tool_.
               | Sure, Pandoc _can_ do GP 's case better (if inputs are
               | well-defined), but it can't do any of the 10 other ad-hoc
               | conversions they may have needed that day.
        
               | adamc wrote:
               | Installing pandoc is basically a one-time cost that is
               | amortized over its uses, so... why worry about it?
               | 
               | Relying on the compiler to catch every mistake is a
               | pretty limited strategy.
        
               | TeMPOraL wrote:
               | > _Installing pandoc is basically a one-time cost that is
               | amortized over its uses, so... why worry about it?_
               | 
               | Because space of problems LLMs of today solve well with
               | trivial prompts is vast, far greater than any single
               | classical tool covers. If you're comparing solutions to
               | 100 random problems, you have to count in those one-time
               | costs, because you'll need to use some 50-100 different
               | tools to get through them all.
               | 
               | > _Relying on the compiler to catch every mistake is a
               | pretty limited strategy._
               | 
               | No, you're relying on the compiler to catch every mistake
               | than can be caught mechanically - exactly the kind of
               | things humans suck at. It's kind of the entire point of
               | errors and warnings in compilers, or static typing for
               | that matter.
        
               | scosman wrote:
               | Re:trust. It just works using Sonnet 3.5. It's gained my
               | trust. I do read it after (again, I'm more a code
               | reviewer role). People make mistakes too, and I think
               | it's error rate for repeititve tasks is below most
               | people's. I also learned how to prompt it. I'd tell it to
               | just add formatting without changing content in the first
               | pass. Then in a separate pass ask it to fix
               | spelling/grammar issues. The diffs are easy to read.
               | 
               | Re:Pandoc. Sure, if that's the only task I used it for.
               | But I used it for 10 different ones per day (write a JSON
               | schema for this json file, write a Pydantic validator
               | that does X, write a GitHub workflow doing Y, add syntax
               | highlighting to this JSON, etc). Re:this specific case -
               | I prefer real HTML using my preferred tools
               | (DaisyUI+tailwind) so I can edit it after. I find myself
               | using a lot less boilerplate-saving libraries, and
               | knowing a few tools more deeply.
        
               | kccqzy wrote:
               | Why are you comparing its error rate for repetitive tasks
               | with most people? For such mechanical tasks we already
               | have fully deterministic algorithms to do it, and the
               | error rate of these traditional algorithms is zero. You
               | aren't usually asking a junior assistant to manually do
               | such conversion, so it doesn't make sense to compare its
               | error rate with humans.
               | 
               | Normalizing this kind of computer errors when there
               | should be none makes the world a worse place, bit by bit.
               | The kind of productivity increase you get from here does
               | not seem worthwhile.
        
               | kristiandupont wrote:
               | The OP said they had it use another HTML page as a style
               | reference. Pandoc couldn't do that. Just like millions of
               | other specific tasks.
        
               | kccqzy wrote:
               | That's just a matter of copying over some CSS. It takes
               | the same effort as copying the output of AI so that's not
               | even taking extra time.
        
               | scosman wrote:
               | Apply the style of B to A is not deterministic, nor are
               | there prior tools that could do it.
        
               | lgas wrote:
               | > And how do you trust that it didn't just alter or omit
               | some sentences from your blog post?
               | 
               | How do you trust a human in the same situation? You
               | don't, you verify.
        
               | kccqzy wrote:
               | What? Is this a joke? Have you actually worked with human
               | office assistants? The whole point of human assistants is
               | that you don't need to verify their work. You hire them
               | with a good wage and you trust that they are working in
               | good faith.
               | 
               | It's disorienting for me to hear that some people are so
               | blinded by AI assistants that they no longer know how
               | human assistants behave.
        
               | nuancebydefault wrote:
               | It appears op has a different experience. Each human
               | assistant is different.
        
           | tyre wrote:
           | I've found it better at writing tests because it tests the
           | code you've written vs what you intended. I've caught logic
           | bugs because it wrote tests with an assertion for a
           | conditional that was backwards. The readable name of the test
           | clearly pointed out that I was doing the wrong thing (the
           | test passed?.)
        
             | scosman wrote:
             | Interesting. I've had the opposite experience (I invert or
             | miss a condition, it catches it).
             | 
             | It probably comes down to model, naming and context. Until
             | Sonnet 3.5 my experience was similar to yours. After it
             | mostly "just works".
        
             | williamdclt wrote:
             | That sounds more like a footgun than a desirable thing to
             | be honest!
        
           | DeathArrow wrote:
           | >My best example is test cases. I can write a method in 3
           | minutes, but Sonnet will write the 8 best test cases in 4
           | seconds
           | 
           | For me it doesn't work. Generated tests fail to run or they
           | fail.
           | 
           | I work in large C# codebases and in each file I have lots of
           | injected dependencies. I have one public method which can
           | call lots of private methods in the same class.
           | 
           | AI either doesn't properly mock the dependencies, either
           | ignores what happens in the private methods.
           | 
           | If I take a lot of time guiding it where to look, it can
           | generate unit tests that pass. But it takes longer than if I
           | write the unit tests myself.
        
             | dep_b wrote:
             | For me it's the same. It's usually just some hallucinated
             | garbage. All of these LLM's don't have the full picture of
             | my project.
             | 
             | When I can give them isolated tasks like convert X to Y,
             | create a foo that does bar it's excellent, but for unit
             | testing? Not even going to try anymore. I write 5 unit
             | tests manually that work in the time I write 5 prompts that
             | give me useless stuff that I need to add manually.
             | 
             | Why can't we have a LLM cache for a project just like I
             | have a build cache? Analyze one particular commit on the
             | main branch very expensively, then only calculate the
             | differences from that point. Pretty much like git works,
             | just for your model.
        
               | scosman wrote:
               | With Cursor you can specify which files it reads before
               | starting. Usually have to attached one or two to get an
               | ideal one-shot result.
               | 
               | But yeah, I use it for unit testing, not integration
               | testing.
        
               | ssijak wrote:
               | "It's usually just some hallucinated garbage. All of
               | these LLM's don't have the full picture of my project."
               | 
               | Cursor can have whole project in the context, or you can
               | specify specific files that you want.
        
               | dartos wrote:
               | > Cursor can have whole project in the context
               | 
               | Depends on the size of the project. You can't shove all
               | of google's monorepo into an LLMs context (yet)
        
             | throwup238 wrote:
             | Ask Cursor to write usage and mocking documentation for the
             | most important injected dependencies, then include that
             | documentation in your context. I've got a large tree of
             | such documentation in my docs folder specifically for
             | guiding AI. Cursor's Notebook feature can bundle together
             | contexts.
             | 
             | I use Cursor to work on a Rust Qt app that uses the main
             | branch of cxx-qt so it's definitely not in the training
             | data, but Claude figures out how to write correct Rust code
             | based on the included documentation no problem, including
             | the dependency injection I do through QmlEngine.
        
               | rubymamis wrote:
               | Sounds interesting, what are you working on?
               | 
               | (Fellow Qt developer)
        
               | throwup238 wrote:
               | Same thing: https://news.ycombinator.com/item?id=40740017
               | :)
               | 
               | Just saw you published your block editor blog post. Look
               | forward to reading it!
        
           | sebastiansm wrote:
           | What is the best workflow to code with an AI?
           | 
           | Copy and paste the code to the Claude website? Or use an
           | extension? o something else?
        
             | paulluuk wrote:
             | I personally use copilot, which is integrated into my IDE,
             | almost identical to this Cursor example.
        
               | ukuina wrote:
               | Does Copilot do multi-file edits now?
        
               | dham wrote:
               | Copilot is about as far away from Cursor with Claude as
               | the Wright Brothers' glider is to the Saturn V.
        
             | scosman wrote:
             | Cursor. Mostly chat mode. Usually adding 1-2 extra files to
             | the context before invoking, and selecting the relevant
             | section for extra focus.
        
           | scosman wrote:
           | Maybe a TLDR from all the issues I'm reading in this thread:
           | 
           | - It's gotten way better in the last 6 months. Both models
           | (Sonnet 3.5 and new October Sonnet 3.5), and tooling
           | (Cursor). If you last tried Co-pilot, you should probably
           | give it another look. It's also going to keep getting better.
           | [1]
           | 
           | - It can make errors, and expect to do some code review and
           | guiding. However the error rates are going way way down [1].
           | I'd say it's already below humans for a lot of tasks. I'm
           | often doing 2/3 iterations before applying a diff, but a
           | quick comment like "close, keep the test cases, but use the
           | test fixture at the top of the file to reduce repeated code"
           | and 5 seconds is all it takes to get a full refactor.
           | Compared to code-review turn around with a team, it's magic.
           | 
           | - You need to learn how to use it. Setting the right prompts,
           | adding files to the context, etc. I'd say it's already worth
           | learning.
           | 
           | - I just knows the docs, and that's pretty invaluable. I know
           | 10ish languages, which also means I don't remember the system
           | call to get an env var in any of them. It does, and can
           | insert it a lot faster than I can google it. Again, you'll
           | need to code review, but more and more it's nailing idiomatic
           | error checking in each language.
           | 
           | - You don't need libraries for boilerplate tasks. zero_pad is
           | the extreme/joke example, but a lot more of my code is just
           | using system libraries.
           | 
           | - It can do things other tools can't. Tell it to take the
           | visual style of one blog post and port to another. Take it to
           | use a test file I wrote for style reference, and update 12
           | other files to follow that style. Read the README and tests,
           | then write pydocs for a library. Write a GitHub action to
           | build docs and deploy to GitHub pages (including suggesting
           | libraries, deploy actions, and offering alternatives). Again:
           | you don't blindly trust anything, you code review, and tests
           | are critical.
           | 
           | [1] https://www.anthropic.com/news/3-5-models-and-computer-
           | use
        
             | DeathArrow wrote:
             | Yes, it works for new code and simple cases. If you have
             | large code bases, it doesn't have the context and you have
             | to baby it, telling which files and functions it should
             | look into before attempting to write something. That takes
             | a lot of time.
             | 
             | Yes, it can do simple tasks, like you said, writing a call
             | to get the environment variables.
             | 
             | But imagine you work on a basket calculation service, where
             | you have base item prices, where you have to apply some
             | discounts based on some complicated rules, you have to add
             | various kinds of taxes for various countries in the world
             | and you have to use a different number of decimals for each
             | country. Each of your classes calls 5 to 6 other classes,
             | all with a lot of business logic behind. Besides that, you
             | also make lots of API calls to other services.
             | 
             | What will the AI do for you? Nothing, it will just help you
             | write one liners to parse or split strings. For everything
             | else it lacks context.
        
               | JamesSwift wrote:
               | Are you suggesting you would inline all that logic if you
               | hand-rolled the method? Probably not, right? You would
               | have a high-level algorithm of easily-understood parts.
               | Why wouldnt the AI be able to 1) write that high-level
               | algorithm and then 2) subsequently write the individual
               | parts?
        
               | scosman wrote:
               | What's the logic here? "I haven't seen it so it doesn't
               | exist?"
               | 
               | There are hundreds of available examples of it processing
               | large numbers of files, and making correct changes across
               | them. There are benchmarks with open datasets already
               | linked in the thread [1]. It's trivial to find examples
               | of it making much more complex changes than "one liners
               | to parse or split strings".
               | 
               | [1] https://huggingface.co/datasets/princeton-nlp/SWE-
               | bench
        
           | throwup238 wrote:
           | _> Instant and pretty great code review: it can understand
           | what you are trying to do, find issues, and fix them quickly.
           | Just ask it to review and fix issues._
           | 
           | Cursor's code review is surprisingly good. It's caught many
           | bugs for me that would have taken a while to debug, like off
           | by one errors or improperly refactored code (like changing
           | is_alive to is_dead and forgetting to negate conditionals)
        
             | kurko wrote:
             | > changing is_alive to is_dead and forgetting to negate
             | conditionals
             | 
             | No test broke?
        
         | greenie_beans wrote:
         | have you tried using cursor or claude?
        
         | yunwal wrote:
         | > Snake case to camelCase > VSCode itself has command of
         | "Transform to Camel Case"
         | 
         | I never understand arguments like this. I have no idea what the
         | shortcut for this command is. I could learn this shortcut,
         | sure, but tomorrow I'll need something totally different.
         | Surely people can see the value of having a single interface
         | that can complete pretty much any small-to-medium-complexity
         | data transformation. It feels like there's some kind of
         | purposeful gaslighting going on about this and I don't really
         | get the motive behind it.
        
           | cyral wrote:
           | Exactly. I think some commenters are taking this example too
           | literally. It's not about this specific transformation, but
           | how often you need to do similar transformations and don't
           | know the exact shortcut or regex or whatever to make it
           | happen. I can describe what I want in three seconds and be
           | done with it. Literal dropbox.png going on in this thread.
        
         | EGreg wrote:
         | If you aren't using AI for everything, you're using it wrong.
         | Go learn how to use it better. It's your job to find out how.
         | Corporations are going to use it to replace your job.
         | 
         | (Just kidding. I'm just making fun of how AI maxis reply to
         | such comments, but they do it more subtly.)
        
         | bee_rider wrote:
         | I'm slightly worried that these AI tools will hurt language
         | development. Boilerplate heavy and overly verbose languages are
         | flawed. Coding languages should help us express things more
         | succinctly, both as code writers and as code readers.
         | 
         | If AI tools let us vomit out boilerplate and syntax, I guess
         | that sort of helps with the writing part (maybe. As long as you
         | fully understand what the AI is writing). But it doesn't make
         | the resulting code any more understandable.
         | 
         | Of course, as is always the case, the tools we have now are the
         | dumbest they'll ever be. Maybe in the future we can have
         | understandable AI that can be used as a programming language,
         | or something. But AI as a programming language generator seems
         | bad.
        
           | wry_discontent wrote:
           | I used to agree with this, but the proliferation of
           | Javascript made me realize that newer/better programming
           | languages were already not coming to save us.
        
           | kubanczyk wrote:
           | Maybe it's a rectangle between:                  seniors
           | copilots        juniors        new languages
           | 
           | Wondering. Since the seniors pair with LLMs, world needs much
           | less juniors. Some juniors will go away to other industries,
           | but some might start projects in new languages without
           | LLM/business support.
           | 
           | Frankly, otherwise I don't see how any new lang corpus might
           | get created.
        
         | rco8786 wrote:
         | Before you dismiss all of this because "You could do it by hand
         | just as easily", you should actually try using Cursor. It only
         | takes a few minutes to setup.
         | 
         | I'm only 2 weeks in but it's basically impossible for me to
         | imagine going back now.
         | 
         | It's not the same as GH Copilot, or any of the other "glorified
         | auto-complete with a chatbox" tools out there. It's head and
         | shoulders better than everything else I have seen, likely
         | because the people behind it are actual AI experts and have
         | built numerous custom models for specific types of interactions
         | (vs a glorified ChatGPT prompt wrapper).
        
       | komali2 wrote:
       | I am the least knowledgeable user of emacs ever, however just
       | some notes as I read this
       | 
       | > For example, suppose I have a block of code with variable names
       | in under_score notation that I want to convert to camelCase. It
       | is sufficient to rename one instance of one variable, and then
       | tab through all the lines that should be updated, including the
       | other related variables.
       | 
       | For me that would be :%s/camel_case/camelCase/gc then yyyyyynyyyy
       | as I confirm each change. Or if it's across a project, then put
       | cursor on word, SPC p % (M-x projectile-replace-regexp), RET on
       | the word, camelCase, yyyynyyynynn as it brings me through all
       | files to confirm. There's probably even better smarter ways than
       | that, I learn "just enough to get it done" and move on, to my
       | continual detriment.
       | 
       | > Many times it will suggest imports when I add a dependency in
       | Python or Go.
       | 
       | I can write a function in python or typescript and if I define a
       | type like:                   function(post: Po
       | 
       | and wait a half second, I'll be given a dropdown of options that
       | include the Post type from Prisma. If I navigate to that (C-J)
       | and press RET, it'll auto-complete the type, and then add the
       | import to the top, either as a new line or included with the
       | import object if something's already being imported from Prisma.
       | The same works for Python, haven't tried other. I'm guessing this
       | functionality comes from LSP? Actually not sure lol. Like I said,
       | least knowledgeable emacs user.
       | 
       | As for boilerplate, my understanding is most emacs people have a
       | bunch of snippets they use, or they use snippet libraries for
       | common languages like tsx or whatever. I don't know how to use
       | these so I don't.
       | 
       | I still intend to try cursor since my boss thinks it might
       | improve productivity and thus wants me to see if that's true, and
       | I don't want to be some kind of technophobe, however I remain
       | skeptical that these built-in tools are at least any more useful
       | than me just quickly opening a chatgpt window in my browser and
       | pasting some code in, with the downside of me losing all my
       | bindings.
       | 
       | My spacemacs config:
       | https://github.com/komali2/Configs/blob/master/emacs/.spacem...
        
       | xlii wrote:
       | Ok, so... I'm looking at the Python example with HTTP Endpoints
       | and I already have questions.
       | 
       | Why both functions are inlined and why FastAPI is used at all.
       | I'm also not seeing any network bindings. Is it bound to local
       | host (doubt it) or does it immediately bind to all interfaces.
       | 
       | It's a 3 second thought from looking at Python code that I know
       | only enough to write small and buggy utilities (yet Python is
       | widely popular - so LLM have ton of data learned in). I know it's
       | a demo only but this video strengthen my feeling about drop of
       | critical thinking and a raise of McDonalds productivity.
       | 
       | McDonalds is not bad: it's great when you are somewhere you don't
       | know and not feeling well. They have same menu almost everywhere
       | and it's like 99% safe due to process standardization. Plus they
       | can get you satiated in 20 minutes or less. It's still type of
       | food that you can't really feed on for long; and if you do, there
       | will be consequences.
       | 
       | The silver lining of it is that it most likely cut off all people
       | from the field who hate the domain but love the money, as it's
       | exactly the problem it automatizes away.
        
         | ramraj07 wrote:
         | Could you clarify what your problem with FastAPI here is?
         | 
         | Also did I understand correctly that you're not very well
         | versed with python in general but still decided to criticize
         | the decisions the model and the author made in that language?
        
           | xlii wrote:
           | I have doubts about the design and on spot decision of using
           | FastAPI.
           | 
           | It's kind of chicken and the egg problem. If author knows
           | FastAPI then it's great, but if not then should verify its
           | applicability. It might not be the choice they'd make and
           | need to verify both library and other solution if it's not
           | the fit.
           | 
           | If I'd get suggestion like that I'd immediately go to
           | documentation because I don't know consequences. Experienced
           | person might make a conscious choice, unexperienced -
           | implicit one which might not work in context.
           | 
           | As for the design - I'm against inlining handlers. It's not
           | like Python is the only language that allows it, but I would
           | suspect consequences are very similar. But maybe that's
           | idiomatic thing. Had this be coming from documentation I'd
           | had much more faith than a random LLM suggestion.
        
             | ramraj07 wrote:
             | FastAPI is a nobrainer choice of webserver backend for a
             | python API server in 2024. If you're not aware of that,
             | then you really shouldn't be commenting on this topic.
        
       | Giorgi wrote:
       | That article reads just like half-a--ed chatgpt prompt designed
       | to shill Cursor because it became irrelevant after introduction
       | of Canvas tool.
        
         | NitpickLawyer wrote:
         | > to shill Cursor because it became irrelevant after
         | introduction of Canvas tool.
         | 
         | Haha, no. A web interface won't make a full-fledged IDE
         | irrelevant. Canvas is _really cool_ for a quick session in the
         | browser, when travelling, while in bed, on a plane, etc. It 's
         | neat and works. But it's nowhere near the IDE experience.
         | 
         | Cursor is still a full IDE in the background, with all the
         | bells and whistles that come with it. So if you're working on
         | anything more complicated than one-off scripts, you'll still
         | benefit a lot from having it, over a web interface.
        
           | Giorgi wrote:
           | Haha, yes. I assume we will see more Cursor related shilling
           | as it becomes irrelevant, don't we? Even this comments reads
           | like an ad.
        
         | sensanaty wrote:
         | Also good to note the author is currently involved in building
         | - yet another - ChatGPT wrapper, so I'm not surprised at all
         | he's hyping and shilling AI tools/Cursor.
        
       | hum3hum3 wrote:
       | OK I have been writing code for 50 years but can only use cursor
       | for home use. From my experience, I echo the authors comments.
       | You do have to be careful with larger suggestions that it makes
       | sense but the syntax will be right. It is just faster.
        
       | qwertox wrote:
       | I tried Cursor and while I was extremely surprised by the ability
       | to do multiline edits in the middle of the lines, I could not get
       | to accept how aggressive it was when trying to autocomplete/auto-
       | edit segments of code while I was just typing.
       | 
       | It was like a second person being in the editor having a mind of
       | its own constantly touching my code, even if it should have left
       | it alone. It felt like I was finding myself undoing stuff it made
       | all the time.
        
       | vegapulse wrote:
       | Cursor is awesome. Have been using it for a month now, greatly
       | improved efficiency.
        
       | delackner wrote:
       | For me, all these tools suffer from the same basic question, how
       | can I put proprietary private source into a tool notorious for
       | siphoning up and copying everything you say to it?
        
         | viraptor wrote:
         | Business tier: "Enforce privacy mode org-wide".
        
       | OtomotO wrote:
       | "For example, suppose I have a block of code with variable names
       | in under_score notation that I want to convert to camelCase."
       | 
       | Oh my, oh my... How have I done this all these years before "AI"
       | was a th- hype?
       | 
       | I did it without wasting even a fraction of the CO2 needed for
       | these toys.
       | 
       | "AI" has some usecases, granted. But selling it as the holy grail
       | and again sh*tting on the environment is getting more and more
       | ridiculous by the day.
       | 
       | Humanity, even the smarter part, truly deserves what is coming.
       | 
       | Apes on a space rock
        
       | ciconia wrote:
       | Watching the videos in the article, the constantly changing
       | suggested completions seem really distracting.
       | 
       | Personally, I find this kind of workflow totally counter-
       | productive. My own programming workflow is ~90% mental work /
       | doing sketches with pen & paper, and ~10% writing the code. When
       | I do sit down to write the code, I know already what I want to
       | write, don't need suggestions.
        
         | viraptor wrote:
         | It's a tool. You get used to new tools. These days I can easily
         | process "did something interesting appear" in the peripheral
         | vision at the same time as continuing to type. But the most
         | useful things don't happen while I write. Instead it's the
         | small edits that immediately come up with "would you also like
         | to change these other 3 things to make your change work?" Those
         | happen in the natural breaks anyway, as I start scanning for
         | those related changes myself.
        
           | exe34 wrote:
           | > in the peripheral vision
           | 
           | this seems physiologically unlikely.
        
             | viraptor wrote:
             | We do it all the time. I can type while talking to people.
             | I can also read/process the text ahead while saying out
             | loud what I read a few words back. We do a lot of things
             | concurrently when dealing with text - I'm not staring at
             | the cursor when writing code either.
             | 
             | (Unless you meant it literally. No, I didn't mean actual
             | peripheral vision. Just noticing things beyond what I
             | type.)
        
               | exe34 wrote:
               | I did mean it literally. the solid angle covered by the
               | fovea is tiny.
        
               | theshrike79 wrote:
               | The eye also doesn't literally stay 100% static when you
               | look at something.
        
           | namaria wrote:
           | A tool that forces me to shift from creating solutions to
           | trying to figure out what might be wrong with some code is
           | entirely detrimental to my workflow.
        
             | viraptor wrote:
             | Is that your actual experience or expectation? If you're
             | just making assumptions, I'd encourage you to give it an
             | actual try. Talking about using Cursor is a bit like
             | talking about riding a bike with someone who never did it.
             | (But yeah, it's totally not for everyone, and that's fine)
        
               | namaria wrote:
               | Very early on I took pains to figure out what toolchains
               | gave me traction and which tools produced waste
               | complexity.
               | 
               | I think a lot of the excitement about using LLMs to code
               | is because a lot of teams are stuck in local optima where
               | they need to use noisy tools, and there's a lot of de-
               | noised output available to train LLMs.
               | 
               | This is progress in searching and mitigating bad trade-
               | offs, not in advancing the state of the art.
        
             | TeMPOraL wrote:
             | The latter is usually much easier than the former on a
             | small scale, so your statement is very surprising.
        
               | namaria wrote:
               | You find revising correctly looking but potentially wrong
               | code easier than just writing correct code?
        
               | TeMPOraL wrote:
               | Obviously, yes. For the exact same reason it's true for
               | math homework, too!
               | 
               | Most code most people write is trivial in terms of
               | semantics/algorithms. The hard bit is navigating the
               | space of possible solutions: remembering all the APIs you
               | need at the moment - right bits of the standard library,
               | right bits of your codebase, right bits of third-party
               | dependencies - and holding pieces you need in your head
               | while you assemble some flow of data, transforming it
               | between API boundaries as needed. I'm totally fine
               | letting the AI do that - this kind of work is a waste of
               | brain cycles, and it's much easier to follow and verify
               | than to write from scratch.
        
               | skydhash wrote:
               | When I'm writing code, I often switch between an high-
               | level mental description and the code itself. It's not a
               | one way interaction. The more I code, the more refined my
               | mental solution becomes until they merge together. I
               | don't need to hold everything in my memory (which is why
               | there are many browser tabs opened). The invariant is
               | that I can hand over my work any time and describe the
               | rest of my solution. And the other advantage is the
               | growing expertise in the tech.
        
         | batesy wrote:
         | You can create markdown files containing all the planning you
         | did and Cursor will have all of that as context to give you
         | better suggestions. This type of prompting is what gives
         | amazing results - not just relying on out of the box magic,
         | which I think a lot of people are expecting.
        
       | swang wrote:
       | Trying to remember: Was cursor the one that took yc money and
       | basically reskinned some open source project, the project that
       | was stolen, or neither..?
        
         | viraptor wrote:
         | You're thinking of PearAI, which copied Continue.
         | https://techcrunch.com/2024/09/30/y-combinator-is-being-crit...
        
         | fsto wrote:
         | Nope, that's PearAI, a fork of Continue and vscode and its
         | ChatGPT generated license Pear Enterprise License
        
       | easyKL wrote:
       | Recent interview to Cursor developers:
       | https://lexfridman.com/cursor-team
        
         | white_beach wrote:
         | thanks
        
       | foreigner wrote:
       | So the Cursor AI can make edits to the _.cursorrules_ file that
       | 's meant to control it? Hmm...
        
       | blixt wrote:
       | I have the opposite experience with Chat and Compose. I use the
       | latter much more. The "intelligence level" of the Chat is pretty
       | poor and like the author says, starts with pointless code blocks,
       | and you often end up with AI slop after a few minutes of back and
       | forth.
       | 
       | Meanwhile, the Compose mode gives code changes a good shot either
       | in one file or multiple, and you can easily direct it towards
       | specific files. I do wish it could be a bit smarter about which
       | files it looks at since unless you tell it about that file you
       | have types in, it'll happily reimplement types it doesn't know
       | of. And another big issue with Compose mode is that the product
       | is just not really complete (as can be seen by how different the
       | 3 UXes of applying edits are). It has reverted previous edits for
       | me, even if they were saved on disk and the UI was in a fresh
       | state (and even their "checkout" functionality lost the content).
       | 
       | The Cmd+K "edit these lines" mode has the most reliable behavior
       | since it's such a self-contained problem where the implementation
       | uses the least amount of tricks to make the LLM faster. But
       | obviously it's also the least powerful.
       | 
       | I think it's great that companies are trying to figure this out
       | but it's also clear that this problem isn't solved. There is so
       | much to do around how the model gets context about your code, how
       | it learns about your codebase over time (.cursorrules is just a
       | crutch), and a LOT to do about how edits to code are applied when
       | 95% of the output of the model is the old code and you just want
       | those new lines of code applied. (On that last one, there are
       | many ways to reduce output from the LLM but they're all
       | problematic - Anthropic's Fast Edit feature is great here because
       | it can rewrite the file super fast, but if I understand correctly
       | it's way too expensive).
        
       | Fizzadar wrote:
       | I've yet to switch to Cursor as my main editor (Sublime still
       | wins on performance by miles, plus no distracting tab anything),
       | but I do hop in when stamping out boilerplate and repetitive code
       | for which it is great, but it's only a minor performance bump.
       | 
       | I have also used cursor to write Kubernetes client code with
       | great success because the API space is so large it doesn't fit
       | into my head that well (not often writing such code these days)
       | so that has been incredibly helpful.
       | 
       | So it's not revolutionising my workflow but certainly a useful
       | tool in some situations.
        
       | epolanski wrote:
       | Some uses I have, e.g. a notepad in Cursor with a predefined set
       | of files and a prompt e.g. to implement storybook stories and
       | documentation out of components I use. I give it the current file
       | I'm working on, and it will generate new files and update
       | documentation files. Similarly for E2E or unit tests, it often
       | suggests cases I would've not thought about.
       | 
       | The people that are negative about these things, because they
       | need to review it, seem to be missing the massive amount of time
       | saved imho.
       | 
       | Many users point to the fact that they spend most of the time
       | thinking, I'm glad for them, most of the time I spend is glueing
       | APIs, boilerplates, refactoring, and on those aspects Cursor
       | helps tremendously.
       | 
       | The biggest killer feature that I get from similar tools (I
       | ditched Copilot recently in favor of it) is that they allow me to
       | stay focused and in the flow longer.
       | 
       | I have a tendency to phase out when tasks get too boring,
       | repetitive or stressed out when I can't come up with a solution.
       | Similarly going on a search engine to find an answer would often
       | put me in a long loop of looking for answers deeply buried in a
       | very long article (you need to help SEO after all, don't you?)
       | and then it would be more likely that I would get distracted by
       | messages on my company chat or social media.
       | 
       | I can easily say that Cursor has made me more productive than I
       | was one year ago.
       | 
       | I feel like the criticism many have comes from the wrong
       | expectations of these tools doing the work for you, whereas they
       | are more into easing out the boring and sometimes the hard parts.
        
       | myflash13 wrote:
       | All of the examples given in the article are contrived, textbook-
       | style examples. Real world projects are far more messy. I want
       | someone to talk about their flow with Cursor on a mature codebase
       | in production with lots of interlaced components and
       | abstractions.
       | 
       | I have a feeling that blindly building things with AI will
       | actually lead to incomprehensible monstrous codebases that are
       | impossible to maintain over the long run.
       | 
       | Read "Programming as Theory Building" by Peter Naur. Programming
       | is 80% theory-in-the-mind and only about 20% actual code.
       | 
       | Here's an actual example of a task I have at work right now that
       | AI is almost useless in helping me solve. "I'm working with 4
       | different bank APIs, and I need to simplify the current request
       | and data model so that data stored in disparate sources are
       | unified into one SQL table called 'transactions'". AI can't even
       | begin to understand this request, let alone refactor the codebase
       | to solve it. The end result should have fewer lines of code, not
       | more, and it requires a careful understanding of multiple APIs
       | and careful data modelling design and mapping where a single
       | mistake could result in real financial damage.
        
       | kristopolous wrote:
       | I really honestly don't get the hype. VSCode with some copilot
       | plugins seems to do effectively 100% of this fork and last time I
       | scrolled through cursor's 1000+ open github issues, they didn't
       | seem responsive or know how to fix things.
        
       | 234120987654 wrote:
       | Wow, I did not expect to see such negativity in this thread. Most
       | of them read to me like the "Dropbox is just an FTP"-narrative.
       | Yes, you and your pride can do most of these things in 0.3ms and
       | better, but so will 1 million more people now.
       | 
       | You can do most of the things the author showed with your
       | craftfully set-up IDE and magic tricks, but that's not the point.
       | I don't want to spend a lifetime setting up these things only to
       | break when moving to another language.
       | 
       | Also, where the tab-completion shines for me in Cursor is exactly
       | the edge case where it knows when _not_ to change things. In the
       | camel casing example, if one of them were already camel cased, it
       | would know not to touch it.
       | 
       | For the chat and editing, I've gotten a pretty good sense as to
       | when I can expect the model to give me a correct completion (all
       | required info in context or something relatively generic). For
       | everything else I will just sit down and do it myself, because I
       | can always _choose_ to do so. Just use it for when it suits you
       | and don't for when it doesn't. That's it.
       | 
       | There's just so many cases where Cursor has been an incredible
       | help and productivity boost. I suspect that the complainers
       | either haven't used it at all or dismissed it too quickly.
        
         | miningape wrote:
         | > You can do most of the things the author showed with your
         | craftfully set-up IDE and magic tricks, but that's not the
         | point.
         | 
         | Wrong you can do most of the things the author showed with a
         | fresh install of vim/emacs or by logging in to a fresh install
         | of vscode/intellij - In other words no lifetime was spent on
         | this, I like having as bare an experience as possible so I can
         | use the same setup on any computer.
         | 
         | > I don't want to spend a lifetime setting up these things only
         | to break when moving to another language.
         | 
         | Editor configs don't break across languages?
         | 
         | > For the chat and editing, I've gotten a pretty good sense as
         | to when I can expect the model to give me a correct completion
         | (all required info in context or something relatively generic).
         | For everything else I will just sit down and do it myself,
         | because I can always _choose_ to do so. Just use it for when it
         | suits you and don't for when it doesn't. That's it.
         | 
         | A lot of people don't have this level of wisdom or the skills
         | to pick and continue without AI. Would I be wrong for assuming
         | you've been programming for at least 10 years? I don't think AI
         | is bad for a senior who has already earned their scars, but for
         | a junior/no skill developer it stunts their growth simply
         | because the do expect the model to give them a correct
         | completion, and the thought/action of doing it without an AI is
         | painful (because they lack the requisite skills) so they avoid
         | it.
        
           | 234120987654 wrote:
           | > Wrong you can do most of the things the author showed with
           | a fresh install of vim/emacs or by logging in to a fresh
           | install of vscode/intellij - In other words no lifetime was
           | spent on this, I like having as bare an experience as
           | possible so I can use the same setup on any computer.
           | 
           | Sure, though, for example, I haven't a clue for the shortcut
           | for wrapping an expression in a try/catch block. With Cursor
           | I just press tab and it often also adds a useful print or
           | other useful expression inside the catch block. It comes down
           | to requiring less discoverability.
           | 
           | > A lot of people don't have this level of wisdom or the
           | skills to pick and continue without AI.
           | 
           | I have been coding for some time, but I think you
           | underestimate people's BS detector. People are well aware
           | that language models hallucinate. Most of the time you'll
           | figure it out soon enough (compiler/run time) and adapt
           | accordingly. I have learned much of my coding through reading
           | public repositories/code which were also not always up to
           | standards. You figure this out by banging your head once or
           | twice.
        
             | miningape wrote:
             | > You figure this out by banging your head once or twice.
             | 
             | Amen to that. People really underestimate the power of
             | brain damage in this field.
        
               | ilc wrote:
               | Naw, I've seen enough hiring fads ;).
        
         | shadowmanifold wrote:
         | I would personally like to a join a breakaway HN for people who
         | actually want to use these tools.
         | 
         | "AI positive Hacker News" or something like that.
         | 
         | There is just really not much point in reading anything on AI
         | here. I get it, AI sucks. Next.
        
         | HarHarVeryFunny wrote:
         | It's pretty clear that the utility of tools like Cursor depends
         | on a lot of variables such as:
         | 
         | - the type of project you are working on (what are you writing)
         | 
         | - who are you writing for: is this meant to be bulletproof
         | corporate code, a personal project, a throwaway prototype, etc
         | 
         | - the experience level of the developer
         | 
         | If your use case plays to the strength of the tool/technology,
         | then obviously you will have a better experience than others
         | trying to see if it can do things that it is not really capable
         | of.
        
       | anonyfox wrote:
       | Personal observation from a heavy LLM codegen user:
       | 
       | The sweet spot seems to be bootstrapping something new from
       | scratch and get all the boilerplate done in seconds. This is
       | probably also where the hype comes from, feels like magic.
       | 
       | But the issue is, that once it gets slightly more complicated,
       | thinks break apart and run into a dead end quickly. For example
       | yesterday I wanted to build a simple CLI tool in Go (which is
       | outstandingly friendly to LLM codegen as a language + stdlib)
       | that acts as a simnple reverse proxy and (re-)starts the original
       | thing in the background on file changes.
       | 
       | AI was able to knock out _something_ immediately that indeed
       | compiled, only it didn't actually work like intended. After lots
       | of iterations back-and-forth (Claude mostly) the code balooned in
       | size to figure out what could be the issue, adding all kinds of
       | useless crap that kindof-looks-helpful-but-isn't. After an hour I
       | gave up and went through the whole code manually (few hundred
       | lines, single file) and spotted the issue immediately (holding a
       | mutex lock that gets released with `defer` doesn't play well with
       | a recursive function call). After pointing that out, the LLM was
       | able to fix it and produced a version that finally worked - still
       | with tons of crap and useless complexity everywhere. And thats a
       | simple straightforward coding task that can be accomplished in a
       | single file and only few hundred lines, greenfield style. And all
       | my claude chat tokens of the day got burned for this, only for me
       | at the end having to dig in myself.
       | 
       | LLMs are great to produce things in small limited scopes
       | (especially boilerplate-y stuff) or refactor something that
       | already exists, when it has enough context and essentially
       | doesn't really think about a problem but merely changes
       | linguistic details (rewrites text to a different format
       | ultimately) - its a large LANGUAGE model after all.
       | 
       | But full blown autonomous app building? Only if you do something
       | that has been done exactly thousands of times before and is
       | simple to begin with. There is lots of business value in that,
       | though. Most programmers at companies don't do rocket science or
       | novel things at all. It won't build any actual novelty - ideal
       | case would be building an X for Y (like Uber For Catsitting) only
       | but never an initial X.
       | 
       | Personal productivity of mine went through the roof since
       | GPT4/Cursor though, but I guess I know how/when to use it
       | properly. And developer demand will surge when the wave of LLM-
       | coded startups get their funding and realize the codebase cannot
       | be extended anymore with LLMs due to complexity and the raw
       | amount of garbage in there.
        
         | fragmede wrote:
         | > After lots of iterations back-and-forth (Claude mostly) the
         | code balooned in size to figure out what could be the issue,
         | adding all kinds of useless crap that kindof-looks-helpful-but-
         | isn't. After an hour I gave up and went through the whole code
         | manually (few hundred lines, single file) and spotted the
         | issue.
         | 
         | That's what experience with current generation LLMs looks like.
         | But you don't get points for getting the code in/by the LLM
         | looking perfect, you get points for what you check-in to git
         | and PR. So skill is in realizing the LLM is running itself in
         | circles, before you run out of tokens and burn an hour, and do
         | it yourself.
         | 
         | Why use an LLM at all if you still have to do it yourself?
         | Because it's still faster than without, and also that's how
         | you'll remain employable - by covering the gaps that an LLM
         | can't handle (until they can actually do full blown autonomous
         | app development, which is still a while away, imo).
        
       | KronisLV wrote:
       | Honestly, seems like a cool tool and I could see myself using
       | something like it instead of just my current GitHub Copilot
       | subscription.
       | 
       | Sure, you probably don't want to blindly copy or accept suggested
       | changes, but when the tools work, they're like a pretty good
       | autocomplete for various snippets and I guess quite a bit more in
       | the case of Cursor.
       | 
       | If that helps you focus on problem solving and lets the tooling,
       | language and boilerplate get out of the way a little bit more,
       | all the better! For what it's worth, I'm probably sticking with
       | JetBrains IDEs for the foreseeable future, since they have a lot
       | of useful features and are what I'm used to (with VS Code for
       | various bits of scripting, configuration etc.).
        
       | pratibha_simone wrote:
       | Many pro comments above, but I like it as a coding newbie!
        
       | ertucetin wrote:
       | I also found myself feeling a bit dumb after using Copilot for
       | some time. It felt like I didn't have to know the API, and it
       | just auto-completed for me. Then I realized I was starting to
       | forget everything and disabled Copilot. Now, when I need
       | something, I ask ChatGPT (like searching on Stack Overflow).
        
         | metaltyphoon wrote:
         | Same. I find myself having to pause and let Copilot finish. At
         | some point, you lose/ not retain anything which you don't use.
         | I'm not sure I want to give that.
        
       | johnisgood wrote:
       | Cursor is unusable for many as long as
       | https://github.com/getcursor/cursor/issues/598 is not fixed.
       | 
       | I would like to use it, but I literally cannot because of this
       | bug!
        
       | cryptica wrote:
       | > Subsequently, but very infrequently, I will accept a totally
       | different completion and the previously-declined suggestion will
       | quietly be applied as well.
       | 
       | This sounds like a nightmare.
       | 
       | I think the biggest problem with AI at the moment is that it
       | incorrectly assumes that coding is the difficult part of
       | developing software, but it's actually the easiest part.
       | Debugging broken code is a lot harder and more time consuming
       | than writing new code; especially if it's code that someone else
       | wrote. Also, architecting a system which is robust and resilient
       | to requirement changes is much more challenging than coding.
       | 
       | It boggles the mind that many developers who hate reading and
       | debugging their team members' code love spending hours reading
       | and debugging AI-generated code. AI is literally an amalgamation
       | of other peoples' code.
        
         | fragmede wrote:
         | Wow reasons I can think of are the emotional overhead of not
         | being a total dick to the person who's coffee is being reviewed
         | is, if you're not an asshole, is higher than for an unfeeling
         | bot. (Unless that bots name is Roku.) The other thing is you
         | just go in and fix said code instead of writing a comment and
         | then waiting an undetermined amount of time for a reply.
        
       | socketcluster wrote:
       | I think AI is still nowhere near where it needs to be to provide
       | business value in software development.
       | 
       | As an experiment, some time ago, I tried to build a TODO app
       | entirely with AI prompts. I used a special serverless platform on
       | the backend to store the data so that it would persist between
       | page refreshes. I uploaded the platform's frontend components
       | README file to the AI as part of the input.
       | 
       | Anyway, what happened is that it was able to create the TODO app
       | quickly; it was mostly right after the first prompt and the app
       | was storing and loading the TODOs on the server. Then I started
       | asking for small changes like 'Add a delete button to the TODOs';
       | it got that right. Impressive!
       | 
       | All the code fit in a single file so I kept copying the new code
       | and starting a new prompt to ask for changes... But eventually,
       | in trying to turn it into a real product, it started to break
       | things that it had fixed before and it started to feel like a
       | game of whac-a-mole. Fixing one thing broke another and it often
       | broke the same thing multiple times... I tried to keep
       | conversations longer instead of starting a new one each iteration
       | but the results were the same.
        
         | cynicalpeace wrote:
         | The article is about Cursor. You don't need all your code to
         | fit in a single file. It sits in your IDE. You don't need it to
         | create your app entirely. I just tell it what I need, and
         | where, and it makes me 20x faster. It solves the problem you're
         | describing exactly.
        
         | logicallee wrote:
         | do you feel like it needs a major architectural change or
         | breakthrough leap in abstraction before it can provide business
         | value in software development, or would far larger context
         | window sizes be enough for it to provide substantial value
         | already?
         | 
         | For me it feels like it just starts to break after a certain
         | length, but may not require a breakthrough new architecture to
         | provide more value. Just larger context window sizes, so it can
         | do the same thing it does on smaller pieces of code, on larger
         | pieces of code, too.
        
         | rco8786 wrote:
         | > I think AI is still nowhere near where it needs to be to
         | provide business value in software development.
         | 
         | And you go on to say that your experiment was to build a TODO
         | app "some time ago" in a single file of code.
        
       | poulpy123 wrote:
       | I recently tried again github copilot, and I was much more
       | convinced of its use. I'm using it mainly as a better
       | autocompletion tool, and I sometimes use the chat for
       | discovering/understanding librairies and errors, because google
       | is now too polluted by SEO spam.
       | 
       | I'm not trying to generate programs with it, I find it still far
       | too weak for it.
       | 
       | However, and while I believe the current models can't really
       | reach it, there is nothing in my eyes that prevents to create an
       | AI good enough for that
        
       | artdigital wrote:
       | Is Cursor still sending everything you do to their own servers?
       | Last time I looked into it, that's what was happening which made
       | it an absolute no-go for corporate use.
       | 
       | Using Cody currently with our company enterprise API key
        
       | cynicalpeace wrote:
       | It's amazing how little of my colleagues don't use Cursor simply
       | because they haven't taken the 10 minutes to set it up.
       | 
       | It's amazing how many naysayers there are about Cursor. There are
       | many here and they obviously don't use Cursor. I know this
       | because they point out pitfalls that Cursor barely runs into, and
       | their criticism is not about Cursor, but about AI code in
       | general.
       | 
       | Some examples:
       | 
       | "I tried to create a TODO app entirely with AI prompts" - Cursor
       | doesn't work like that. It lets you take the wheel at any moment
       | because it's embedded in your IDE.
       | 
       | "AI is only good for reformatting or boilerplate" - I copy over
       | my boilerplate. I use Cursor for brand new features.
       | 
       | "Sonnet is same as old-timey google" - lol Google never generated
       | code for you in your IDE, instantly, in the proper place
       | (usually).
       | 
       | "the constantly changing suggested completions seem really
       | distracting" - You don't need to use the suggested completions. I
       | barely do. I mostly use the chat.
       | 
       | "IDEs like cursor make you feel less competent" - This is perhaps
       | the strongest argument, since my quarrel is simply philosophical.
       | If you're executing better, you're being more competent. But yes
       | some muscles atrophy.
       | 
       | "My problem with all AI code assistants is usually the context" -
       | In Cursor you can pass in the context or let it index/search your
       | codebase for the context.
       | 
       | You all need to open your minds. I understand change is hard, but
       | this change is WAY better.
       | 
       | Cursor is a tool, and like any tool you need to know how to use
       | it. Start with the chat. Start by learning when/what context you
       | need to pass into chat. Learn when Cmd+K is better. Learn when to
       | use Composer.
        
         | snowstormsun wrote:
         | Nope
        
           | joenot443 wrote:
           | You wouldn't be the first engineer to fade into irrelevance
           | because they were too proud to adapt to the changing world
           | around them. I'd encourage you to open your mind a bit.
        
         | zkry wrote:
         | I've noticed that tools like Cursor doesn't really seem to make
         | difference in the end. The good software developers are still
         | the good software developers, regardless of editors.
         | 
         | I don't think you should be upset or worried that people aren't
         | adopting these tools as you think they should. If the tool
         | really lives up to its hype then the non-adopters will fall
         | behind and, for example, be forced to switch to Cursive. This
         | happened with IDEs (e.g. IntelliSense, jump to definition). It
         | may happen with tools like Cursive.
         | 
         | I certainly don't feel this way but if I'm proven wrong thats
         | good.
        
           | cynicalpeace wrote:
           | > The good software developers are still the good software
           | developers
           | 
           | Correct. Because they know they need to use the correct tools
           | for the job.
           | 
           | > If the tool really lives up to its hype then the non-
           | adopters will fall behind
           | 
           | This is already happening. I'm able to out-deploy many of my
           | competitors because I'm using Cursor.
           | 
           | Have you actually spent much time with Cursor? The comparison
           | to "Jump to definition" is pretty bad. You also misspelled
           | its name twice.
        
             | zkry wrote:
             | Oh yeah, typo, I work with the Cursive IDE a lot. I've
             | spent a good amount of time with Cursor. And I have no
             | doubt that it provides a lot of utility. I also would agree
             | that most good devs I know definitely adopt some form of
             | LLM integration. I would even agree that a lot of cursive
             | features will bleed into other editors, maybe being
             | considered a necessity.
             | 
             | I just haven't made the observation that most people have
             | switched to Cursor full-time and I also haven't noticed
             | that those who have are on another level compared to those
             | using their other editor plus chatgpt/copilot/etc.
        
               | cynicalpeace wrote:
               | > I just haven't made the observation that most people
               | have switched to Cursor full-time
               | 
               | I noted that same thing in my initial comment.
        
             | halfmatthalfcat wrote:
             | > I'm able to out-deploy
             | 
             | This is a very poor metric for your efficacy as a software
             | engineer and if you optimize for this, you're gonna have a
             | bad time long term.
        
               | cynicalpeace wrote:
               | You're right. MRR is a better metric. Gotten great MRR
               | via Cursor too.
        
               | yladiz wrote:
               | How's your ARR?
        
           | tsarchitect wrote:
           | To be proven wrong would be that Cursor is used by all devs
           | or that IDEs adopt AI into their workflow?
           | 
           | Like OP using cursor has been a huge productivity boost. I
           | maintain a few postgres databases, I work as a fullstack
           | developer, and manage kubernetes configs. When using cursor
           | to write sql tables or queries it adopts my way of writing
           | sql. It analyzed (context) my database folder and when I ask
           | it to create a query, a function, a table, the output is in
           | my style. This blew me away when I first started with cursor.
           | 
           | Onto react/nextjs projects. In the same fashion, I have my
           | way of writing components, fetching data, and now writing
           | RSA. Cursor analyzed my src folder, and when asked to create
           | components from scratch the output was again similar to my
           | style. I use raw CSS and class names, what was an obstacle of
           | naming has become trivial with Cursor ("add an appropriate
           | class to this component with this styling"). Again, it
           | analyzed all my CSS files and spits out css/classes in my
           | writing/formatting style. And working on large projects it is
           | easy to forget the many many components, packages, etc. that
           | integrated/have been written already. Again, cursor comes out
           | on top.
           | 
           | Am I good developer or a bad developer? Don't know. Don't
           | care. I'm cranking out features faster than I have ever done
           | in my decades of development. As has been said before, as a
           | software engineer you spend more time reading code than
           | writing. Same applies to genAI. It turns out that I can ask
           | cursor to analyze packages, spit out code, yaml
           | configuration, sql, and it gets me 80% done with writing from
           | scratch. Heck, if I need types to get full client/server type
           | completion experience, it does that too! I have removed many
           | dependencies (tailwind, tRPC, react query, prisma, to name a
           | few) because cursor has helped me overcome obstacles that
           | these tool assisted in (and I still have typescript code
           | hints in all my function calls!).
           | 
           | All in all, cursor has made a huge difference for me. When
           | colleagues ask me to help them optimize sql, I ask cursor to
           | help out. When colleagues ask to write generic types for
           | their components, I ask cursor to help out. Whether cursor or
           | some other tool, integrating AI with the IDE has been a boom
           | for me.
        
         | stocknoob wrote:
         | The naysayers used to bother me, but then I realized it's no
         | skin off my back if they don't want to become familiar with a
         | transformative technology. Stay with the old tools, people are
         | getting excited for no reason at all, everyone is just
         | pretending to be more productive!
         | 
         | It reminds me of how blackberry users insisted physical
         | keyboards were necessary and smartphone touchscreen users were
         | deluded.
        
           | dvsfish wrote:
           | I think most naysayers are threatened by the inevitable
           | decimation of our value. Supply and demand laws are going to
           | annihilate this profession
        
             | cynicalpeace wrote:
             | This is the fundamental question most of us seem to have.
             | 
             | On the one hand, logic does seem to dictate supply/demand
             | of the profession will lower salaries. Also no one really
             | cares how code was written or if it's pretty.
             | 
             | On the other hand, these tools have only seemed to increase
             | our value so far. Someone who knows how to code with AI is
             | now 1000x more valuable than someone who doesn't know how
             | to code.
             | 
             | You still need to know how to code to be able to
             | contribute. How long that remains the case is the question.
             | You could be right
        
           | cynicalpeace wrote:
           | That's a great comparison.
        
         | kachau wrote:
         | Is it allowed to use cursor in work places? does cursor uploads
         | company code or leak any information?
        
           | cynicalpeace wrote:
           | Depends on your workplace. You can adjust some settings to
           | fine tune what gets sent to Cursor/stored by them
        
         | handzhiev wrote:
         | I also find it fascinating how in almost every LLM-related
         | discussion there are people always writing arguments to prove
         | that LLMs do not work.
         | 
         | OK, I understand. Maybe they can't get much use of them and
         | that's fine. But why they always insist that the tools don't
         | work for everyone is something I can't make any sense of.
         | 
         | I stopped arguing online about this though. If they don't want
         | to use LLMs that's fine too. Others (we) are taking their
         | business.
        
         | insane_dreamer wrote:
         | I don't use it because I already use JetBrains (Pycharm,
         | mostly). Hard to see any value add of Cursor over that.
         | 
         | For a lighter-weight IDE I use Zed
        
           | cynicalpeace wrote:
           | lol so you have no idea?
        
         | eikenberry wrote:
         | Cursor's show-stopping problem is not if it is useful, the
         | problem is that it is proprietary. These sorts of tools are fun
         | to play with to try out things that might be useful in the
         | future but relying on them puts you at the mercy of a VC backed
         | company with corresponding dodgy motivations. The only way
         | these technologies will be acceptable for widespread use is to
         | measure them as we do programming languages and to only adopt
         | free software implementations.
        
           | cynicalpeace wrote:
           | To an ideological position like yours, I would say... maybe?
           | I, for one, am happy to pay for good solutions and let the
           | market figure it out. If there are open source solutions that
           | are just as smooth, that's great. I've seen a few, but none
           | have been as good thus far.
        
             | eikenberry wrote:
             | I've been keeping an eye out for a good, free software
             | development tool like this but I've also seen nothing
             | viable yet. The main problem really seems to be that the
             | required hardware is expensive and resource intensive which
             | keeps most of the talent from being able to work on it.
             | Once the required hardware becomes more common place I
             | think multiple free software versions will pop up to fill
             | the niche.
        
         | raincole wrote:
         | I've been a paying customer for Jetbrains IDE for years.
         | 
         | After trying Cursor, I'd say if I were Jetbrains devs I'd be
         | _very_ worried. It 's a true paradiam shift. It feels like
         | Jetbrains' competitve edge over other editors/IDEs mostly
         | vanished overnight.
         | 
         | Of course Jetbrains has its own AI-based solution and I'm sure
         | they'll add more. But I think what Jetbrains excels -- the
         | understanding of semantics -- is no longer that important for
         | an IDE.
        
           | cynicalpeace wrote:
           | Meanwhile other commenters say:
           | 
           | > I don't use it because I already use JetBrains (Pycharm,
           | mostly). Hard to see any value add of Cursor over that.
           | 
           | lol
        
             | raincole wrote:
             | I don't blame them though. Honestly this was the exact
             | thought I had before I tried Cursor.
        
         | lubujackson wrote:
         | I am slow to take on new tools and was coding in Notepad for
         | far too long... but I am already on the Cursor boat. Right now,
         | I use it for two things - code completion and pasting error
         | messages into chat.
         | 
         | When people complain about LLMs hallucinating results, that
         | doesn't really apply because it is either guessing wrong on the
         | autocomplete (in which case I just keep typing) or it doesn't
         | instantly point out the bug, in which case I look at the code
         | or jump to Google.
        
       | gaploid wrote:
       | Using ChatGPT and AI assistants over the past year, here are my
       | best use cases:
       | 
       | - Generating wrappers and simple CRUD APIs on top of database
       | tables, provided only with a DDL of the tables.
       | 
       | - Optimizing SQL queries and schemas, especially for less
       | familiar SQL dialects--extremely effective.
       | 
       | - Generating Swagger comments for API methods. Joyness
       | 
       | - Re-creating classes or components based on similar classes,
       | especially with Next.js, where the component mechanics often make
       | this necessary.
       | 
       | - Creating utility methods for data conversion or mapping between
       | different formats or structures.
       | 
       | - Assisting with CSS and the intricacies of HTML for styling.
       | 
       | - GPT4 o1 is significantly better at handling more complex
       | scenarios in creation and refactoring.
       | 
       | Current challenges based on my experience:
       | 
       | - LLM lacks critical thinking; they tend to accommodate the
       | user's input even if the question is flawed or lacks a valid
       | answer.
       | 
       | - There's a substantial lack of context in most cases. LLMs
       | should integrate deeper with data sampling capabilities or,
       | ideally, support real-time debugging context.
       | 
       | - Challenging to use in large projects due to limited awareness
       | of project structure and dependencies.
        
       | taldo wrote:
       | Cursor has been an enabler for unfamiliar corners of development.
       | Mind you, it's not a foolproof tool that writes correct code on
       | the first try or anything close to that.
       | 
       | I've been in compilers, storage, and data backends for 15ish
       | years, and had to do a little project that required recording
       | audio clips in a browser and sending them over a websocket.
       | Cursor helped me do it in about 5 minutes, while it would've
       | taken at least 30 min of googling to find the relevant keywords
       | like MediaStream and MediaRecorder, learn enough to whip
       | something up, fail, then try to fix it until it worked.
       | 
       | Then I had to switch to streaming audio in near-realtime... here
       | it wasn't as good: it tried sending segments of MediaRecorder
       | audio which are not suitable for streaming (because of media file
       | headers and stuff). But a bit of Googling, finding out about Web
       | Audio APIs and Audio Worklet, and a bit of prompting, and it
       | basically wrote something that _almost_ worked. Sure it had some
       | concurrency bugs like reading from the same buffer that it 's
       | overwriting in another thread. But that's why we're checking the
       | generated code, right?
        
         | davidczech wrote:
         | I've had similar experiences. I've basically disengaged any
         | form of AI code generation. I do find it useful to pointing me
         | to interesting/relevant symbols and API's however, but it
         | doesn't save me any time connecting plumbing, nor is that
         | really a difficult thing for any programmer to do.
        
       | wanderingmind wrote:
       | As an aside, do we really need a new IDE for AI copilot? What
       | makes Cursor better than say Cody, which is just an extension on
       | VSCode which helps me stay with the mature IDE that has all the
       | bells and whistles I need.
        
         | tucnak wrote:
         | Cursor -is- Visual Studio Code, bar the AI-specific tooling.
        
       | Hrun0 wrote:
       | I have tried both cursor and cline (formerly continue dev), and I
       | don't seem to see the incredible performance boost using cursor
       | like a lot of people say
        
         | kristopolous wrote:
         | I think some people are writing dumb code for a living
        
           | phist_mcgee wrote:
           | And let me guess, you aren't?
        
         | rubslopes wrote:
         | Small correction: Cline is former Claude Dev.
         | 
         | Continue Dev is a different extension which continues with the
         | same name.
        
       | knuckleheads wrote:
       | I use and am happy with Cursor and Chatgpt. Cursor will write out
       | the syntax for me if I let it, sometimes wrong, sometimes right,
       | but enough to keep a flow going. If there are larger questions, I
       | just flip over to chatgpt and try and suss out what is going on
       | there. Super helpful with tailwind and react, speaking as a dba
       | and backend systems person.
        
         | rco8786 wrote:
         | Curious why you don't just use Cursor's built-in chat?
        
       | DeathArrow wrote:
       | From what I see, it's not better than GitHub Copilot for my use
       | case. I work in large code bases, where the code in one files
       | depends on the code in other files. Copilot seems to only be
       | aware of code in current file, unless I write very long prompts
       | to direct it to specifically look in some other files.
       | 
       | So for making changes to existing code, Copilot isn't helpful and
       | neither seems to Cursor.
       | 
       | I can use Copilot to write some new methods to parse strings or
       | split strings or convert to/from JSON or make http calls. Bat
       | anything that implies using or changing existing code doesn't
       | yield good results.
        
         | profunctor wrote:
         | If you are using vscode in the copilot chat you can use
         | @workspace and it tries to get the relevant files and context.
        
         | blitzar wrote:
         | Ai assistant tuned for your sepecific large code base seems
         | like the best final destination. I am not sure if this is on
         | the horizion, miles away or just something that is of such
         | little marginal benefit that it would only be useful internally
         | for a handful of orgs.
         | 
         | Certainly for writting my emails for me I would quite like an
         | Ai fine-tuned to my written voice.
        
         | cloudking wrote:
         | Are you using the @codebase feature? It will perform a search
         | across the codebase for files relevant to your query and
         | suggest changes across files.
         | 
         | https://docs.cursor.com/chat/codebase
        
         | rco8786 wrote:
         | Have you actually used Cursor? It does not seem like it. I'd
         | suggest trying it before dismissing it.
         | 
         | > Copilot seems to only be aware of code in current file
         | 
         | Cursor does not have this limitation
        
         | hipadev23 wrote:
         | From my experience using both:
         | 
         | * Cursor is massively faster than Copilot
         | 
         | * Cursor is absolutely aware of the codebase when you add it to
         | the workspace (ctrl/cmd+b)
        
       | mherrmann wrote:
       | In my experience, Cursor writes _average_ code. This makes sense,
       | if you think about it. The AI was trained on all the code that is
       | publicly available. This code is average by definition.
       | 
       | I'm below average in a lot of programming languages and tools.
       | Cursor is extremely useful there because I don't have to spend
       | tens of minutes looking up APIs or language syntax.
       | 
       | On the other hand, in areas I know more about, I feel that I can
       | still write better code than Cursor. This applies to general
       | programming as well. So even if Cursor knows exactly how to write
       | the syntax and which function to invoke, I often find the higher-
       | level code structure it creates sub-optimal.
       | 
       | Overall, Cursor is an extremely useful tool. It will be
       | interesting to see whether it will be able to crawl out of the
       | primordial soup of averages.
        
         | cynicalpeace wrote:
         | This is true. But with a little push here and there you can
         | usually avoid the sub-optimal high level code structure. That's
         | why it makes so much sense to have it in the IDE.
         | 
         | You can see in general anything AI produces is pretty average.
         | 
         | But people who buy software don't care that the code behind it
         | is average. As long as it works.
         | 
         | Whereas people who buy text, images and video _do_ care.
        
         | haolez wrote:
         | I've been having some difficulties with deprecated code and old
         | patterns being suggested all the time. But I guess this is an
         | easy issue to fix and will probably be fixed eventually.
        
         | jonathaneunice wrote:
         | Exactly right. Cursor makes it easy to get to "adequate." Which
         | in the hundreds of places that I'm not expert or don't have a
         | strong opinion, is regularly as good as and frequently better
         | than my first pass. Especially as it never gets tired whereas I
         | do.
         | 
         | It's a great intern, letting me focus on the few but important
         | places that I add specific value. If this is all it ever does,
         | that's still enormously valuable.
        
       | kleiba wrote:
       | Slightly OT, but perhaps someone can help me out: what's a tried
       | & tested setup to integrate a locally running AI coding assistent
       | into Emacs?
        
       | wruza wrote:
       | Parallelize a task, write a server that exposes. It's not code.
       | 
       | Show code.
        
       | niemandhier wrote:
       | I had horrible experience with a number of ai tools for infra-as-
       | code.
       | 
       | My theory is, that in that case it's hard to predict what to do
       | from context and libraries are at the same time hyper specialized
       | and similar.
       | 
       | Example: Creating a node and attaching a volume using ansible
       | looks similar for different cloud providers but there a subtle
       | differences in how to speciy the location etc.
        
         | lars_francke wrote:
         | This mirrors my experience.
         | 
         | I've tried various tools (including Cursor) and my problem is
         | that they often (more than 50%) generates non-working code. Why
         | does it do so? Because the ecosystems change so fast and they
         | have been trained on old versions of various libraries (by
         | definition) but when I use the latest version it's a constant
         | uphill battle. And there are so many different combinations of
         | how to use libraries together....
         | 
         | I can't be the only one facing this issue but I didn't see a
         | lot of discussion around this.
         | 
         | So, as someone said: It's generating at most average code and
         | most of it is outdated and sometimes vulnerable because... Well
         | that's what's out there.
         | 
         | I still use these tools but mostly to know how a solution could
         | look roughly and then start to do my own research and to avoid
         | the black page problem. Sometimes just to learn what to even
         | Google for especially in ecosystems I'm unfamiliar with.
        
       | greenie_beans wrote:
       | i had an interesting experience with cursor. i use it everyday
       | btw
       | 
       | i had two csvs. one had an ISBN column, the other had isbn10,
       | isbn13, and isbn. i tried to tell it to write python code that
       | would merge these two sheets by finding the matching isbns.
       | didn't work very well. it was trying to do pandas then i tried to
       | get it to use pure python. it took what felt like an hour of back
       | and forth with terrible results.
       | 
       | in a new chat, i told it that i wanted to know different
       | algorithms for solving the problem. once we weighed all of the
       | options, it wrote perfect python code. took like 5 minutes. like
       | duh use a hashmap, why was that so hard?
        
         | __mharrison__ wrote:
         | Chat knows how to merge CSVs with pandas. You just need to know
         | how to prompt it correctly. (Or at least it did at the start of
         | this year when I gave a keynote at PyCon Philippines with that
         | exact use case.)
        
           | greenie_beans wrote:
           | seems simple and obvious but not when the columns have
           | different keys, and there could be one or more keys to match
           | upon. i would be curious to see how you can prompt that?
           | 
           | and you are correct, you just need to know how to prompt it
           | correctly by going back to first principles, just like what i
           | did.
        
             | __mharrison__ wrote:
             | Tossing in the first few rows of the CSV in the prompt
             | helps.
        
               | greenie_beans wrote:
               | no kidding?
               | 
               | this industry should stop telling people: "you are just
               | prompting wrong" when they've never seen the prompting
               | session.
        
       | kobe_bryant wrote:
       | Just once I'd like to see an article like this from someone who's
       | not currently working on an AI tool (some sort of Khan Academy
       | tutor in this case)
        
       | ainiriand wrote:
       | Someone experienced enough could give some insights about how
       | does it work with big monorepos and/or legacy code?
        
         | breckenedge wrote:
         | Cursor will use embeddings to figure out if it needs more files
         | for additional context, or you can manually add them. It's one
         | of the weakest parts of the experience. Probably varies from
         | repo to repo. Still not really capable of large scale automatic
         | refactors.
        
           | causal wrote:
           | Agreed. Even long-context models lose track of what they're
           | doing pretty quickly as the size of the code base grows.
           | 
           | Cursor et al seem great for make small changes in context, or
           | big changes in small apps. But I don't trust them to make
           | large-scale refactoring decisions.
           | 
           | That said, if you can define really rigorous interfaces
           | between parts, you can often get more mileage by just keeping
           | those interfaces in context while asking for some kind of
           | refactoring or implementation.
        
       | szemy2 wrote:
       | Can someone please elaborate how Cursor is different to Copilot?
        
         | rco8786 wrote:
         | The founders did an episode on Lex Fridman's podcast that
         | covers the technical sides of Cursor far better than I ever
         | could: https://www.youtube.com/watch?v=oFfVt3S51T4
         | 
         | But to summarize, Copilot is an okay ChatGPT wrapper for single
         | line code completion. Cursor is a full IDE with AI baked in
         | natively, with use-case specific models for different tasks,
         | intelligent look-ahead, multi-line completion, etc.
         | 
         | If Copilot is a horse, Cursor is a Model T.
        
         | sexyman48 wrote:
         | For me, the main draw is Cursor's repo-wide indexing
         | (presumably a RAG pass). I asked Copilot to unify two
         | functions, one at the top of a massive file, and the other at
         | the bottom. Since they were so far apart, Copilot couldn't see
         | both functions at the same time. Cursor didn't give me a great
         | answer, but it did give *an* answer.
        
       | rco8786 wrote:
       | There's a lot of people in these comments who are talking about
       | the state of off-the-shelf LLMs for writing code, and they are
       | missing the point of this article. The article is about Cursor,
       | the IDE.
       | 
       | It is much, much more than a ChatGPT wrapper. I'd encourage
       | everyone to give it a shot with the free trial. If you're already
       | a VSCode user, it only takes a minute to setup with your exact
       | same devenv you already have.
       | 
       | Cursor has single-handedly changed the way I think about AI and
       | its capabilities/potential. It's truly best-in-class and by a
       | wide margin. I have no affiliation with Cursor, I'm just blown
       | away by how good it is.
        
       | marviel wrote:
       | Good Taste, Management / Communication Skills, Code Review
       | Ability.
       | 
       | If you have these skills, the productivity gains from tools like
       | Cursor are insane.
       | 
       | If you lack any of these, it makes sense that you don't get the
       | hype; you're missing a critical piece of the new development
       | paradigm, and should work on that.
        
       | vineyardlabs wrote:
       | Related question. For those who do any kind of programming for
       | fun on the side, how do you feel about using tools like cursor
       | for those projects. Is it a cool productivity enhancer that
       | allows you to focus less on the code and more on the end-product,
       | or does it suck the fun out of it for you?
       | 
       | I work in an environment right now where feeding proprietary
       | code/docs into 3rd party hosted LLMs is a hard no-go, and we
       | don't have any great locally hosted solution set up yet, so I
       | haven't really taken the dive into actively writing code with LLM
       | assistance. I feel like I should practice this skill, but the
       | idea of using a tool like Cursor on personal projects just seems
       | so antithetical to the point that I can't bring myself to
       | actually do it.
        
       | mattxxx wrote:
       | Here's a few cursor perks:                 1. Auto-complete makes
       | me type ~20% faster (I type 100+ WPM)       2. Composer can work
       | across a few files simultaneously to update something (e.g.
       | updating a chrome extension's manifest while proposing a code
       | change)       3. Write something that you know _exactly_ how it
       | should work but are too lazy to author it yourself (e.g. Write a
       | function that takes 2 lists of string and pair-wise matches the
       | most similar. Allow me to pass the similarity function as a
       | parameter. Use openai embedding distance to find most similar
       | pairings between these two results)
        
       | HarHarVeryFunny wrote:
       | Interesting to hear the perspective of an experienced developer
       | using what seems to be the SOTA coding assistant of
       | Cursor/Claude.
       | 
       | I thought his "Changes to my workflow" section was the most
       | interesting, coupled with the fact that coding productivity
       | (churning out lines of code) was not something he found to be a
       | benefit. However, IMO, the workflow changes he found beneficial
       | seem to be a bit questionable in terms of desireability...
       | 
       | 1) Having LLM write support libraries/functions from scratch
       | rather than rely on external libraries seems a bit of a double-
       | edged sword. It's good to minimize dependencies and not be
       | affected by changes to external libraries, but OTOH there's
       | probably a lot of thought and debugging that has been put into
       | those external libraries, as well as support for features you may
       | not need today but may tomorrow. Is it really preferable to have
       | the LLM reinvent the wheel using untested code it's written
       | channeling internet sources?
       | 
       | 2) Avoiding functions (couched as excessive abstractions) in
       | favor of having the LLM generate repeated copies of the same code
       | seems like a poor idea, and will affect code readability,
       | debugging and maintenance whereby a bugfix in one section is not
       | guaranteed to be replicated in other copies of the same code.
       | 
       | 3) Less hesitancy to use unfamiliar frameworks and libraries is a
       | plus in terms of rapid prototyping, as well as coming up to speed
       | with a new framework, but at the same time is a liability since
       | the quality of LLM generated code is only as good as the person
       | reviewing it for correctness and vulnerabilities. If you are
       | having the LLM generate code using a framework you are not
       | familiar with, then you are at it's mercy as to quality, same as
       | if you cut and pasted some code from the internet without
       | understanding it.
       | 
       | I'm not sure we've yet arrived at the best use of "AI" for
       | developer productivity - while it can be used for everything and
       | anything, just as ChatGPT can be asked anything, some uses are
       | going to leverage the best of the underlying technology, while
       | others are going to fall prey to it's weaknesses and fundamental
       | limitations.
        
       | baudpunk wrote:
       | I recommend that naysayers for technologies like Cursor watch the
       | documentary Jurassic Punk. When comparing the current AI
       | landscape to the era of computer graphics emerging in film, the
       | parallels are pretty staggering to me.
       | 
       | There is a very vocal old guard who are stubborn about ditching
       | their 10,000+ hours master-level expertise to start from zero and
       | adapt to the new paradigm. There is a lot of skepticism. There
       | are a lot of people who take pride in how hard coding should be,
       | and the blood and sweat they've invested.
       | 
       | If you look at AI from 10,000 feet, I think what you'll see is
       | not AGI ruining the world, but rather LLMs limited by regression,
       | eventually training on their own hallucinations, but good enough
       | in their current state to be amazing tools. I think that Cursor,
       | and products like it, are to coding what Photoshop was to
       | artists. There are still people creating oil paintings, but the
       | industry -- and the profits -- are driven by artists using
       | Photoshop.
       | 
       | Cursor makes coders more efficient, and therefore more
       | profitable, and anyone NOT using Cursor in a hiring pool of
       | people who ARE using it will be left holding the short straw.
       | 
       | If you are an expert level software engineer, you will recognize
       | where Cursor's output is bad, and you will be able to rapidly
       | remediate. That still makes you more valuable and more efficient.
       | If you're an expert level software engineer, and you don't use
       | Cursor, you will be much slower, and it is just going to reduce
       | your value more and more over time.
        
         | cynicalpeace wrote:
         | Good take. It really makes you realize that as much as
         | engineers like to pretend they're purely rational and
         | analytical, we're just as emotional as everyone else.
        
           | phist_mcgee wrote:
           | This website would make you believe that all your peers
           | exhibit Spock levels of rationality, when really it's a
           | combination of hubris and a desire to be right on the
           | internet
        
         | kristopolous wrote:
         | I think llms are useful and also that cursor is not.
         | 
         | It's a specific thing and it doesn't suit me.
         | 
         | I've seen the glittery eyed hype on hn before and it basically
         | means it will become a common tool. Whether it's good or not,
         | that's a different question.
        
           | baudpunk wrote:
           | I'm not sure what you mean here. Cursor is a LLM wrapper, so
           | if you like LLMs, I don't know how you can like LLMs but not
           | like Cursor. It's just a chatbot inside of VS Code. Cursor
           | just provides the LLM more context, and an easier path to
           | implementing the LLM's suggestions.
        
       | snozolli wrote:
       | I don't know if the author will read these comments, but there's
       | a missing word:
       | 
       |  _the architecture of I am building._
        
       | adamontherun wrote:
       | I've been working with Cursor for a few months. I learned quickly
       | to stay away from the hype around creating entire features using
       | Composer. Found a ton of value in using it to work with context
       | from the codebase as well as external documentation.
       | 
       | Shared my 8 pro tips in this post towards the bottom
       | https://betaacid.co/blog/cursor-dethrones-copilot
        
       ___________________________________________________________________
       (page generated 2024-10-29 23:01 UTC)