7 ms·
Eng leadership at my place are pushing Cursor pretty hard. It's great for banging out small tickets and improving the product incrementally kaizen-style, but it
by walthamstow 2y ago
Eng leadership at my place are pushing Cursor pretty hard. It's great for banging out small tickets and improving the product incrementally kaizen-style, but it falls down with anything heavy.
I think it's weakening junior engineers' reasoning and coding abilities as they become reliant on it without having lived for long, or at all, in the before times. I think may be doing the same to me too.
Personally, and quietly, I have a major concern about the conflict of interest of Cursor deciding which files to add to context then charging you for the size of the context.
As with so many products, it's cheap to start with, you become dependent on it, then one day it's not cheap and you're fucked.
- rco8786 2y agoI’ve been a paying cursor user for 4-5 months now and feeling the same. A lot more mistakes leaking into my PRs. I feel a lot faster but there’s been a noticeable decrease in the quality of my work. Obviously I could just better review my own code, but that’s proving easier said than done to the point where I’m considering going back to vanilla Code.
- ljm 2y agoSame result - I tried it for a while out of curiosity but the improvements were a false economy: time saved in one PR is time lost to unplanned work afterwards. And it is hard to spot the mistakes because they can be quite subtle, especially if you've got it generating boilerplate or mocks in your tests. Makes you look more efficient but it doesn't make you more effective. At best you're just taking extra time to verify the LLM didn't make shit up, often by... well, looking at the docs or the source.. which is what you'd do writing hand-crafted code lol. I'm switching back to emacs and looking at other ways I can integrate AI capabilities without losing my mental acuity.
- geoduck14 2y agoCan you elaborate on the mistakes you see? What languages are you working with?
- ljm 2y agoJust your run-of-the-mill hallucinations, e.g. mocking something in pytest but only realising afterwards that the mock was hallucinated, the test was based on the mock, and so the real behaviour was never covered. I mean, I generally avoid using mocks in tests for that exact reason, but if you expect your AI completions to always be wrong you wouldn't use them in the first place. Beyond that, the tab completion is sometimes too eager and gets in the way of actually editing, and is particularly painful when writing up a README where it will keep suggesting completely irrelevant things. It's not for me.
- rco8786 2y ago> the tab completion is sometimes too eager and gets in the way of actually editing Yea, this is super annoying. The tab button was already overloaded between built-in intellisense stuff and actually wanting to insert tabs/spaces, now there are 3 things competing for it. I'll often just want to insert a tab, and end up with some random hallucination getting inserted somewhere else in the file.
- crucialfelix 2y agoSeriously, give us our tab key back! I changed accept suggestion to shift TAB. But still there is too much noise now. I don't look at the screen while I'm typing so that I'm not bombarded by this eager AI trying to distract me with guesses. It's like a little kid interrupting all the time.
- walthamstow 2y agoI just turned tab off. If I'm writing myself, if I'm in the flow, I don't need any help. If I want the tool to write for me, I'll ask it to.
- j45 2y agoCan tell it to check it before and after if it doesn't do something and it can improve. Also telling it not to code, or not to jump to solutions is important. If there's a file outlining how you like to approach different kinds of things, it can take it into consideration more intuitively. Takes some practice to pay attention to your internal dialogue.
- _rwo 2y ago> And it is hard to spot the mistakes because they can be quite subtle aw yeah; recently I spent half a day pulling my hair debugging some cursor-generated frontend code just to find out the issue was buried in some... obscure experimental CSS properties which broke a default button behavior across all major browsers (not even making this up). Velocity goes up because you produce _so much code so quickly_, most of which seems to be working; managers are happy, developers are happy, people picking up the slack - not so much. I obviously use LLMs to some extent during daily work, but going full-on blind mode on autopilot gotta crash the ship at some point.
- DanHulton 2y agoThere's this concept in aviation of "ahead of or behind the plane". When you're ahead of the plane, you understand completely what it's doing and why, and you're literally thinking in front of it, like "in 30 minutes we have to switch to this channel, confirm new heading with ATC" and so forth. When you're behind the plane, it has done something expected and you are literally thinking behind it, like "why did it make that noise back there, and what does that mean for us?" I think about coding assistants like this as well. When I'm "ahead of the code," I know what I intend to write, why I'm writing it that way, etc. I have an intimate knowledge of both the problem space and the solution space I'm working in. But when I use a coding assistant, I feel like I'm "behind the code" - the same feeling I get when I'm reviewing a PR. I may understand the problem space pretty well, but I have to basically pick up the pieced of the solution presented to me, turn them over a bunch, try to identify why the solution is shaped this way, if it actually solves the problem, if it has any issues large or small, etc. It's an entirely different way of thinking, and one where I'm a lot less confident of the actual output. It's definitely less engaging, and so I feel like I'm way less "in tune" with the solution, and so less certain that the problem is solved, completely, and without issues. And because it's less engaging, it takes more effort to work like this, and I get tired quicker, and get tempted to just give up and accept the suggestions without proper review. I feel like these tools were built without any sort of analysis if they _were_ actually an improvement on the software development process as a whole. It was just assumed they must be, since they seemed to make the coding part much quicker.
- ygra 2y agoThat's a great analogy. For me it is a very similar feeling that I get ripped out of "problem solving mode" into "code review mode" which is often a lot more taxing for me. It also doesn't help reviewing such code that sometimes surprisingly complex problems are solved correctly, while there's surprisingly easy parts that can be subtly (or very) wrong.
- ryandrake 2y agoYes great analogy! A hard pill to swallow is that a lot of software developers have spent most of their careers "behind the code" instead of out ahead of it. They're stuck for years in an endless "Junior Engineer" cycle of: try, compile, run, fix, try, compile, run, fix--over and over with no real understanding, no deliberate and intentional coding, no intimacy, no vision of what's going on in the silicon. AI coding is just going to keep us locked into this inferior cycle. All it seems to help with is letting us produce A Lot Of Code very quickly. But producing code is 10% of building a wonderful software product....
- Aeolun 2y agoI feel like this is also related to cursor getting worse, not better, over the past few months.
- theshrike79 2y agoWhat do you consider "heavy"? Is it optimising an algorithm or "rewrite this whole codebase in <a different language>"?
- walthamstow 2y agoRefactoring a critical function that is very large and complex. Yeah, maybe it shouldn't be so large and so complex, but it is and that's the codebase we have. I'm sure many other companies do too.
- kamaal 2y agoThats not how apex productivity folks have used any IDE productivity leap including this one. You dont outsource your thinking to the tool, You do the thinking and let the tool type it for you.
- deleted 2y ago[deleted]
- walthamstow 2y agoYou're missing the step where I have to articulate (and type) the prompt in natural language well enough for the tool to understand and execute. Then if I fail, I have to write more natural language. You said just the same in another of your posts: > if you can begin to describe the function well So I have to learn how to describe code rather than just writing it as I've done for years? Like I said, it's good for the small stuff, but bad for the big stuff, for now at least.
- kamaal 2y agoExactly my point, you don't ask the LLM to give you the whole function. That would be too much English work, because that means you need to write down the contract of the function in concrete and/or list(list of lists). You ask it to give you one block at a time. iterate over the above list and remove all strings matching 'apple' open file and write the above list etc etc kind of stuff. Notice how the English here can be interpreted only way, but the LLM is now a good intelligent coding assistant. >>I think in code, I'd rather just write in code. Continue to think, just make the LLM type out the outcome of your ideas.
- malux85 2y agoThen only use it for the small tasks? There's one button you have to click to turn it off.
- KronisLV 2y ago> Personally, and quietly, I have a major concern about the conflict of interest of Cursor deciding which files to add to context then charging you for the size of the context. > As with so many products, it's cheap to start with, you become dependent on it, then one day it's not cheap and you're fucked. If it gets too expensive, then I guess the alternative becomes using something like Continue.dev or Cline with one of the providers like Scaleway that you can rent GPUs from or that have managed inference… either that, or having a pair of L4 cards in a closet somewhere (or a fancy Mac, or anything else with a decent amount of memory). Whereas if there are no well priced options anywhere (e.g. the upfront investment for a company to buy their own GPUs to run with Ollama or something else), then that just means that running LLM based systems nowadays is economically infeasible for many.
- deleted 2y ago[deleted]
- onion2k 2y agoI think it's weakening junior engineers' reasoning and coding abilities as they become reliant on it without having lived for long, or at all, in the before times. As someone old enough to have built websites in Notepad.exe it's totally reasonable that I ask my teams to turn off syntax highlighting, brace matching, and refactoring tools in VSCode. I didn't have them when I started, so they shouldn't use them today. Modern IDE features are just making them lazy. /s
- walthamstow 2y agoIs this supposed to be funny?
- brookst 2y agoFunny / sad. GP is just highlighting the all too common attitude of people who grew up using new tech (graphing calculators, Wikipedia, etc) who reach a certain age and suddenly new tech is ruining the youth of today. It’s just human nature, you can decide if it’s funny or sad or whatever
- walthamstow 2y agoNeither of you have comprehended the part of my post where I talk about myself and my own skills. Hiding behind the sarcasm tag to take the piss out of people younger than you, I don't think that's very funny. The magnetised needle and a steady hand gag from xkcd, now that is actually funny.
- onion2k 2y agoYes.
- moron4hire 2y agoNot all change is progress. Change comes with pros and cons. The pros need to outweigh the cons (and probably significantly so) for change to be considered progress. Syntax highlighting has the pro of making code faster to visually parse for most people at the expense of some CPU cycles and a 10 second setting change for people for whom color variations are problematic. It doesn't take anything away. It's purely additive. AI code generation tools provide a dubious boost to short term productivity at the expense of extra work in the medium term and skill atrophy in the long term. My junior developers think I don't know they are using AI coding tools. I discovered it about 2 months into them doing it, and I've been tracking their productivity both before and after. In one case, one might be committing to the repository slightly more frequently. But in all cases, they still aren't completing assignments on time. Or at all. Even basic things have to be rewritten because they aren't suitable for purpose. And in our pair programming sessions, I see them frozen up now, where they weren't before they started using the tools. I can even see them habitually attempt to use the AI, but then remember I'm sitting with them, and halt. I tried to use AI code generation once to fill in some ASP.NET Core boilerplate for setting up authentication. Should be basic stuff. Should be 3 or 4 lines of code. I've done it before, but I forgot the exact lines and had been told AI was good for this kind of lazy recall of common tasks. It gave me a stub that had a comment inside, "implement authentication here". Tried to coax the AI into doing what I wanted and easily spent 10x more time than it would have taken to look up the documentation. And it still wasn't done. I haven't touched AI code gen since. So IDK. I'm very skeptical of the claims that AI is writing significant amounts of working code for people, or that it at all rivals even a moderately smart junior developer (say nothing of actually experienced senior). I think what's really happening is that people are spending a lot of time spinning the roulette wheel, always betting on 00, and then crowing they're a genius when it finally lands.
- kamaal 2y ago>>but it falls down with anything heavy. If you are using LLMs to write anything more than a if(else)/for block at a time you are doing it wrong. >>I think it's weakening junior engineers' reasoning and coding abilities as they become reliant on it without having lived for long, or at all, in the before times. When I first started work, my employer didn't provide internet access to employees, their argument would always be how would you code if there was no internet connection, out there in the real world? , As it turns out they were not only worried about the wrong problem, but the got the whole paradigm about this new world wrong. In short it was not worth building anything at all in a world internet doesn't exist. >>then one day it's not cheap ... Again you are worried about the wrong thing, your worry should not be what happens when its no longer cheaper, but when it, as a matter of fact gets cheaper. Which it will.
- bluefirebrand 2y ago> If you are using LLMs to write anything more than a if(else)/for block at a time you are doing it wrong Then what value are they actually adding? If this is all they are capable of, surely you could just write this code yourself much faster than trying to describe what you want to the LLM in natural language? I cannot imagine any decently competent programmer gaining productivity from these tools if this is how limited they still are Why are people so bullish on them?
- kamaal 2y agoEnglish to Code translation. Albeit they are fairly context aware as to what you are asking. So they can save a lot of RTFM and code/test cycles. At times they can look at the functions that are already built, and write new ones for you, if you can begin to describe the function well. But if you want to write a good function, like written to fit tightly to specifications. Its too much English. You need to describe in steps what is to be done, plus exceptions. And at some point you are just doing logic programming(https://en.wikipedia.org/wiki/Logic_programming https://en.wikipedia.org/wiki/Logic_programming) In the sense that whole english text looks like a list of and/or situations + exceptions. So you have to go one atomic step(a decision statement and a loop) at a time. But thats a big productivity boost too. Reason being able to put lots of text in place without you having to manually type it out. >>you could just write this code yourself much faster than trying to describe what you want to the LLM in natural language? Honestly speaking most of coding is manually laborious if you don't know touch typing. And even if you did know its a chore. I remember when I started using co-pilot with react it was doing a lot of otherwise typing work I'd have to do. >>I cannot imagine any decently competent programmer gaining productivity from these tools if this is how limited they still are IMO opinion, my brain atleast over the years has seen so many code patterns, debugging situations and what to anticipate and assemble as I go, that having some intelligent typing assistant is a major productivity boost. >>Why are people so bullish on them? Eventually newer programming languages will come along and people will build larger things.
- bitwize 2y agoIn a few years, if you mention you just straight up code with an editor or IDE, there's going to be a hackernews who's going to ask you about the size of your project at work (LOC, dev team headcount) because you can't really be working on something big and important without AI.
- evo_9 2y agoHas anyone tried limiting Cursor or Cline, etc, to a higher level role such as analysis and outlining proposed changes, and then coding those changes yourself with minimal LLM interaction? Aka, ask to define / outline only a high level set of changes, but do no actual changes to any file; then proceed through the outlined work, limiting Cursor to roughing out the work and hand writing the actual critical bits? That’s the approach I’ve been taking, a sort of best of both worlds that greatly speeds me up without taking the hands 100% off the wheel.
- real0mar 2y agoYeah. Reasoning models like r1 tend to be good for architecting changes and less optimal for actually writing code. So this allows the best of both worlds.
- vineyardmike 2y agoThis seems like the worst of both worlds. The human still has to do the "boring" work of writing out all the boiler plate stuff, but now there is a machine telling the human what to do. Oh, and the machine is famously not great at big question type stuff while being being much more performant at churning out boilerplate.
- tgdude 2y agoI find the opposite. I tend to think through the problem myself, give cursor/claude my understanding, guide it through a few mistakes it makes, have it leave files at 80% good enough as it codes and gets stuck, and then spend the next 20 min or so cleaning up the changes and fixing the few wire up spots it got wrong. Often I will decompose the problem into smaller subproblems and feed those to cursor one by one slowly building up the solution. That works for big tickets. For me the time saving and force multiplier isn't necessarily in the problem solving, I can do that faster and better in most cases, but the raw act of writing code? It does that way faster than me.
- mock-possum 2y agoYeah that’s been my approach as well - and honestly I’m not even sure that it’s necessarily faster, it’s just different. Sometimes I feel like getting my hands dirty and writing the code myself - LLMs can be good for getting yourself unstuck when you’re facing an obstacle too. But other times, I’d rather just sit back and dictate requirements and approaches, and let the robot dream up to implementation itself.
- dr_kiszonka 2y ago> I think it's weakening junior engineers' reasoning and coding abilities as they become reliant on it without having lived for long, or at all, in the before times. I have a feeling there will be a serious shortage of strong "old-school" seniors in a few years. If students and juniors are reliant on AI, and we recruit seniors from our juniors, who will companies turn to when AI gets stuck?
- mwgalloway 2y agoI’m looking forward to when the job market recovers, but I’m not looking forward to the prospect of a significant amount of future demand being in the realm of having to scale and maintain the AI slop code that’s being generated now.
- ryandrake 2y agoIt sounds like a pretty lucrative retirement plan, no matter how boring and frustrating the actual work would be. Sadly, I don't think companies are going to hire graybeards to maintain AI slop code. They're just going to release low-quality garbage, and the bar for what counts as good software will get lower and lower.
- HenryBemis 2y agoI feel that (I can feel it in my own skin/life) that those 'oldies' with "ok" SME skills and "great" business acumen will be the ones harnessing the hordes of 'prompt engineers'. It is like they will be the 'new nerds' and we will have the 'street-smarts'.
- mbil 2y agoI wrote about this recently. I agree, though I think it might take a little longer. There will be a deskilling where the easy problems are solved by AI, so new grad workers won’t have gradual experience to grow into seasoned experts.
- arkh 2y ago> I think it's weakening junior engineers' reasoning and coding abilities as they become reliant on it without having lived for long, or at all, in the before times. Same as StackOverflow, same as Google, same as Wikipedia for students. The problem is not using the tools, it's what you do with the result. There will always be lazy people who will just use this result and not think anymore about it. And then there will always be people who will use those results as a springboard to what to look for in the documentation of whatever tool / language they just discovered thanks to Cursor. You want to hire from the second category of people.
- m_fayer 2y agoQuantity has a quality all it’s own. That is to say, as we strive for better and better tools along a single axis, at some point the social dynamics shift markedly, even though it’s just “more of the same”. Digital distribution was just better distribution, but it changed the very nature of journalism, music, and others. Writing on computers changed writing. And the list goes on. “This is just the next thing in a long line of things” is how we technologists escape the disquieting notion that we are running more and more wild social experiments.
- addicted 2y ago> Same as StackOverflow, same as Google, same as Wikipedia for students. Is it though? If I used stack overflow, for example, I still needed to understand the code well enough to translate it to my specific codebase, changing variable names at the very least.
- breakfastduck 2y agoThis is not the same. Because SO, google etc require actual research, introspection, prompting AI does not.
- tomrod 2y agoYou're describing superficial behavior -- akin to taking the first match on Google or SO and saying that people are only doing that regarding AI prompts. Good prompting _does_ require engagement and, for most cases, some research, just like SO or Google. Sure, you can throw out idle or lazy queries. The results will be worse generally.
- firecall 2y ago> As with so many products, it's cheap to start with, you become dependent on it, then one day it's not cheap and you're fucked. Exactly! As you learn a codebase, you and it become better together. It can take a while, but the investment in understanding the stack you are working with does pay off. Trying to shortcut junior devs to productivity is the plot to a cyberpunk horror movie!
- Torkel 2y agoI saw this post from a professor this morning: https://x.com/lxeagle17/status/1899979401460371758 https://x.com/lxeagle17/status/1899979401460371758 Students are not asking questions anymore. Small assignments work well! But then the big test comes and scores are at an all time low.
- HenryBemis 2y agoYes it is exactly what we think is causing it. Students use LLMs to get 10/10 in assignments so they don't learn 'the thing' and they tank on the big-closed-books-non-LLM-exams. BUT (apologies for the caps), back in the day we didn't have calculators and now we do. And perhaps the next phase in academia is "solve this problem with the LLM of your choice - you can only use the free versions of LLAMA vX.Y, ChatGTP vA.B, etc. - no paid subscriptions allowed" (in the same spirit that for some exams you can use the simple calculator and not the scientific one). Because if they don't do it, they (academia/universities) will lose/bleed out even more credibility/students/participation. The world is changing. Some 'parts' are lagging. Academia is 5 years behind (companies paying them for projects help though), Politicians are 10-15 years behind (because the 'donors' (aka bribers) prefer a wild-wild-west for a few years before rights are protected. (Case and point writers/actors applying a lot of pressure when they realized that politicians won't do anything until cornered)
- vasachi 2y agoWhen you need to calculate a square root of 12.345 during a physics exam, professor doesn't care that you use a calculator, because the exam doesn't test your calculating ability. But it does test your knowledge of physics. What is the point of allowing LLM use during such a test?
- meheleventyone 2y agoCalculators replaced books of look up tables and slide rules. As tools they're not really replacing thinking. They help calculate the result but not make good decisions about what to calculate. LLMs are replacing thinking and for students the need to even know the basics. From the perspective of an academic program if they're stopping the students learning the materials they're actively harmful. If you're saying that LLMs obviate the need to understand the basics I think that's dangerously wrong. You still need a human in the loop capable of understanding whether the output is good or bad.
- belter 2y agoIt seems these days every other post on HN is about Cursor. Is Cursor ultimately not using GPT-4, GPT-4o, Claude 3.5/3.7 Sonnet and so on? If some of the auto completion and agent features might be nice, is this not too much push for what is essentially just another UI plugin?
- rafram 2y agoThey have their own next edit prediction model, and for me personally that’s the killer feature. I don’t like the VS Code platform very much, but it’s just magical to be able to press tab-tab-tab and watch Cursor jump between lines in the file and make the edits that I was clearly about to make.
- smokel 2y agoDon't underestimate how much effort it takes to apply a technique (LLMs) to a certain domain. Creating a good user interface, processing the code into appropriate embeddings for useful matching, and marketing are just three things that take a lot of effort to get right. The fragmented landscape of alternatives is not attractive at all. One thing I'm quite worried about, though, is that Cursor is a fork of VS Code. This will never be maintainable in the long run, in particular if Microsoft does not want them to continue.
- siva7 2y agoHas anyone else noticed how sharp the quality of composer and chat output has dropped since their newest release? I had a good opinion about them but they seem to have dropped the ball
- brushfoot 2y ago> Cursor deciding which files to add to context then charging you for the size of the context Copilot is unlimited for a flat fee [1]. I've been happy with it. They also have a free tier now, but it's limited to 50 chats a month, which I'd burn through pretty quickly. 1: https://docs.github.com/en/copilot/about-github-copilot/subscription-plans-for-github-copilot https://docs.github.com/en/copilot/about-github-copilot/subs...
- lolinder 2y ago> Personally, and quietly, I have a major concern about the conflict of interest of Cursor deciding which files to add to context then charging you for the size of the context. Can you elaborate on what you're referring to? I don't used Cursor extensively, but I do pay for it, and it was a flat fee annual subscription for unlimited requests, with the "fast" queue being capped at a set number of requests per month with no reference to their size. Claude Code does work the way you say, since you provide it your Anthropic API key. But I have not seen Cursor charging for context or completion tokens, which is actually the reason why I'm paying for it instead of using something like Aider. https://www.cursor.com/pricing https://www.cursor.com/pricing
- j45 2y agoHeavier architecture / systems design stuff is sometimes easier to do with a differently configured cursor, or claude. The key I find is experience doing that kind of stuff to begin with, vs domain experience as well, vs little to none and wanting to learn the ropes.