6 ms·
AI is a tool like any other. Autocomplete on steroids -- markov chains taken to the extreme. We already put natural language between us and the bytes. Hence wh
by s_dev 2y ago
AI is a tool like any other. Autocomplete on steroids -- markov chains taken to the extreme.
We already put natural language between us and the bytes. Hence why most keywords and variable names (a hard part of computer science) are in simple English and it is considered a net positive.
- namaria 2y agoThe memory and compute requirements to develop and run these models make no sense if the marginal improvement in autocomplete is the big end result. They only make sense in a world where machine can derive intent from natural language and actually conform to what people mean when they ask for something. This is clearly a fantastical result that LLMs are very short of.
- nailer 2y agoIt’s interesting. I would’ve agreed that ‘driving intent from natural language is something that LLMs have fallen far short of’ maybe a month ago. Since then, I spent a week trying to get cursor to work, and after dealing dealing with all the bugs, and restarting the composer each time with a new prompt, was able to get what I would consider a quality output for a moderately complex app (a parimutuel betting market). The issue isn’t that LLMs are terrible, it’s the software like cursor is buggy and poorly written. It should know that I don’t want to use code from an old version of the library I am using because the new library I am using is already in my projects dependencies. It should let me set up preferences for different programming languages. And preferences for all programming languages. So when I give it a prompt, it looks at the dependencies and language rules I already have set up, adds those to the prompt and produces the quality output I’m seeing now without me having to manually specify all those things. Short version: LLMs rule the software is just shitty.
- otabdeveloper4 2y agoLLM's don't "know" anything, it's just a souped-up Stackoverflow search.
- Xmd5a 2y agoMy experience has been the opposite, I found cursor to be an improvement over comparable tools such as aider. I was able to write a plugin for ComfyUI (a 60k loc python/js codebase) in 2 hours thanks to semantic search. It's not an exercise I'm versed in. It wasn't that different from the kind of internal monologue I'd have held in my head had I done it on my own, including misguided confidence that gets crushed 5 minutes later as you read other parts of the code that show you had the wrong understanding of how it actually works. In this context, LLMs can be very useful because a ground truth already exists to compare their replies against.
- nailer 2y ago> My experience has been the opposite, I found cursor to be an improvement over comparable tools such as aider. That sounds like a similar finding to what I had (comparing to copilot in my own case). My point, which my post maybe didn’t make so well, was a huge amount of the prompt should’ve been written for me in order to get to an acceptable result sooner.
- meltyness 2y agoI see this and conclude the opposite that they were adhering to the principle. Basically AI writes the buggy code that is upsetting you. Similar experience trying to use GenAIScript, btw, and peering inside the box the code and product is pretty well incomprehensible.
- nailer 2y agoMy post above does not seem to be well written as it’s been frequently misinterpreted. Yes, the AI is writing the buggy parts that upset me but my point was creating a good quality prompt would’ve taken a lot less time if Cursor had had some reasonable defaults.
- senordevnyc 2y agoI totally agree. I think almost all coding could be done by today’s best LLMs, IF they had the right context and tooling. Using Cursor is sometimes like magic, but it also feels painfully clear that the LLM is being held back by a lack of information, leaving me to have to interface between the codebase and the LLM, in both directions. Selecting which files to include in context feels so stupid, and like something that will hopefully quickly go away.
- llm_trw 2y ago>The memory and compute requirements to develop and run these models make no sense There is the story that von Neumann flew off the handle the first time he saw an assembler. >>How dare you waste compute cycles on this frivolity? Just use machine code like everyone else.
- chongli 2y agoThere is the story that von Neumann flew off the handle the first time he saw an assembler. That was in the 1940s when labour was very cheap and compute was insanely expensive. We’re talking hundreds to thousands of programmers’ salaries for the cost of one computer.
- aleph_minus_one 2y ago> Hence why most keywords and variable names (a hard part of computer science) are in simple English and it is considered a net positive. As I'm not a native English speaker, I disagree. I learned programming long before I got decent in English, and even today I just consider the English keywords in programming languages to be some "abstract mathematical concept" that by mere coincidence is named after some real, existing English word. Even today, being somewhat decent in English, I stil think this way when I see program code. I actually would insist that this is a much more useful way to think about good programming, since this way you have no difficulties to ask yourself all the time whether it would make sense to replace some "English-named" concept by something more useful, but which has no analogue in the English language (or any other natural language).
- llm_trw 2y ago49 20 72 61 74 68 65 72 20 74 68 69 6e 6b 20 74 68 61 74 20 74 68 65 20 6e 61 6d 65 73 20 6f 66 20 6b 65 79 77 6f 72 64 73 20 6d 61 74 74 65 72 20 61 20 6c 6f 74 2e
- kmstout 2y ago4b 65 6e 74 20 50 69 74 6d 61 6e 20 72 65 6c 61 74 65 64 20 5b 30 5d 20 74 68 65 20 63 6f 6d 6d 65 6e 74 20 6f 66 20 61 20 70 72 6f 67 72 61 6d 6d 65 72 20 69 6e 20 50 61 6e 61 6d 61 2c 20 77 68 6f 20 6c 69 6b 65 6e 65 64 20 45 6e 67 6c 69 73 68 20 6b 65 79 77 6f 72 64 73 20 74 6f 20 6d 75 73 69 63 61 6c 20 6e 6f 74 61 74 69 6f 6e 73 20 62 6f 72 72 6f 77 65 64 20 66 72 6f 6d 20 49 74 61 6c 69 61 6e 2e 0a 0a 5b 30 5d 20 68 74 74 70 73 3a 2f 2f 64 65 76 65 6c 6f 70 65 72 73 2e 73 6c 61 73 68 64 6f 74 2e 6f 72 67 2f 73 74 6f 72 79 2f 30 31 2f 31 31 2f 30 33 2f 31 37 32 36 32 35 31 2f 6b 65 6e 74 2d 6d 2d 70 69 74 6d 61 6e 2d 61 6e 73 77 65 72 73 2d 6f 6e 2d 6c 69 73 70 2d 61 6e 64 2d 6d 75 63 68 2d 6d 6f 72 65
- tgv 2y agoThere have been studies (in the 80s or 90s, I never wrote down references, unfortunately, but they probably involved lexical priming) that support that idea. They suggest that English keywords get a meaning of their own for non-native speakers.
- d_tr 2y agoBad take. Identifiers are just labels.
- nailer 2y agoI don’t think anyone disagrees that identifiers are labels. If you’re claiming that these labels are unimportant, I’d be interested in why you think this.
- d_tr 2y agoIdentifiers are super important and should be chosen wisely, but a C program with English identifiers is still a C program, while an LLM prompt is in fact NL and a whole new layer of that between your brain and the bytes. Which is why I think that saying "we already put NL between us and the bytes" minimizes that difference and is a bad take.
- dartos 2y agoExactly. Not to mention that our existing programming languages have a deterministic output given the same code and the same compiler. LLMs do not. Thus, LLM prompts are an entirely different class of tool than a programming language. This should be obvious to anyone who has written code, but alas.
- nailer 2y agoOoh. Good point. I guess we need traditional languages as a way to debug the created machine code. But… what if we didn’t? Ie the LLM made bytecode and we had some better way to talk about the concrete implementation.
- seba_dos1 2y agoThey mostly aren't important though. When I first learned Pascal, JavaScript and PHP as a child, I had barely any idea what all those English words meant. Later on, when I was learning English in middle school, I was remembering their meanings by recalling what they do in code.
- JTyQZSnP3cQGa8B 2y ago> AI is a tool like any other. Autocomplete on steroids No, AI is a shitty tool that has yet to prove its utility. Autocomplete works by analyzing the official API and interface, it's completely different than AI which hallucinates meaning between words and also stuff that it was fed before it met you. > variable names (a hard part of computer science) Naming is for software engineering, not CS. One more confusion by people who want to sell us AI at all cost.
- dagw 2y agoAutocomplete works by analyzing the official API and interface, it's completely different than AI You can (and should) give the AI access to your existing codebase and any relevant documentation to use as context if you want good results. If you give the AI zero context for the problem it is trying to solve, of course it will struggle. If you give it all the necessary context, it will do much better. I've found that just uploading the documentation of the API or library you are working with before asking the AI questions about it makes a huge difference in the quality of its output.
- criley2 2y agoAt some point, you become the luddite. Maybe you have no experience with modern AI dev tools, maybe you work in a language that is underrepresented in models meaning off the shelf tools don't work well, or maybe you're just an old curmudgeon who will die on a hill. But modern AI tools are far beyond "auto complete". (I actually turn off those in-line completions, I feel they ruin flowstate). The tools now are fully prompted, with multi-file editing, with full codebase context, with web/search and doc integration, and for "on the rails" development are producing high quality code for "easier" tasks. These modern models and tools can solve nearly every single leet code problem faster than you. They can do every single Advent of Code problem likely 10X-100X faster than you can. In my professional, high standards, very legal and contract driven web app world, AI tools are still very useful for doing "on the rails" development. Is it architecting entire systems? No of course not (yet). Is it emulating existing patterns and extending them for new functionality 10X faster than a Jr or Mid? Yes it is. Is it writing nearly perfect automated tests based on examples? Yes it is. It is scaffolding new ideas and putting down a great starting point? Yep. And it's even able to iterate on featurework pretty well, and much faster than Jr/Mid. The kind of work I'd give to a Jr/Mid and expect to take 2-3 days before they need serious feedback up and down the change, these AI are doing in about 30 seconds, maybe 90 seconds if you need to iterate a few times on the prompt. I get that "AI" is a buzzword that is pumping valuations and making business people see $$$. But coding assistants are not that. For many programmers, they are quickly becoming valuable tools that do in fact speed up development.
- zahlman 2y ago>Hence why most keywords and variable names (a hard part of computer science) are in simple English "Natural language" is about far more than individual words.