7 ms·
Installing Rust projects is usually as simple as calling `cargo install`. No need to wait for 5-30 minutes until LLM figures this out. People are delegating wa
by f311a 11mo ago
Installing Rust projects is usually as simple as calling `cargo install`. No need to wait for 5-30 minutes until LLM figures this out.
People are delegating way too much to LLMs. In turn, this makes your own research or problem-solving skills less sharp.
- Retr0id 11mo agoFiguring out how to build a project in an unfamiliar language/build system is my least favourite activity, mainly because all the people who are familiar with those tools think it's "as simple as" and don't bother to write it down anywhere. I don't plan on learning every build system ever.
- heddycrow 11mo agoI did not know how to do X so I Y. It would be interesting to know what kinds of responses humans offer across different values of Y such as: 1) looked on stack overflow 2) googled it 3) consulted the manual 4) asked an LLM 5) asked a friend For each of these, does the learner somehow learn something more or better? Is there some means of learning that doesn't degrade us as human beings according to those in the know? I ask as someone who listens to audiobooks and answers yes when someone asks me if I've read the book. And that's hardly the extent of my transgressions.
- hrimfaxi 11mo agoAt least if you're copy/pasting from stack overflow you presumably glanced at the change you are copying if only to ensure you select the correct text.
- heddycrow 11mo agoGood point. We also sometimes leave comments in code noting the thread we referenced.
- sroussey 11mo agoYeah because the code on stack overflow has a license.
- simonw 11mo agoYeah, it's CC BY-SA 4.0: https://stackoverflow.com/help/licensing https://stackoverflow.com/help/licensing
- heddycrow 11mo agoThat would be a great reason to include the link. Would have been good idea for me to think about that 5-10 years ago. I just did it because I thought it might be helpful and it's cheap. Woops!
- sroussey 11mo agoYou forgot to read the readme
- heddycrow 11mo agoI did! How could I forget that and RTFM? The code is self-documenting! Lol.
- globular-toast 11mo agoOk but I'd argue Rust/Cargo shouldn't be an "unfamiliar language/build system" for most professional programmers these days. It's like a professional plumber being unfamiliar with solder. Like, yeah, you can do a lot without soldering, but imagine a pro just straight up not having a clue about solder. It's worth learning how to do this stuff. Not just because you then know that particular build system, but because you get better at learning. Learning how to learn is super important. I haven't come across a new project that's taken me more than a few minutes to figure out how to build in years.
- thunky 11mo ago> Ok but I'd argue Rust/Cargo shouldn't be an "unfamiliar language/build system" for most professional programmers these days. This isn't even close to true. The majority of programmers will be fine going their entire career without even knowing what Rust is, let alone how to build Rust projects. A more accurate analogy would be a plumber not knowing how his wrench was manufactured.
- zahlman 11mo agoRust ranks 16th on the current TIOBE (https://www.tiobe.com/tiobe-index/ https://www.tiobe.com/tiobe-index/), behind assembly, PHP and R. It is still not remotely as popular (as "based on the number of skilled engineers world-wide, courses and third party vendors") as C or C++ (to say nothing of how dominant Python has become). The supposed ubiquity of Rust is the result of a hype and/or drama bubble.
- mock-possum 11mo agoConversely: I’ve been a professional programmer for nearly 20 years and I’ve never touched rust/cargo - I’ve never needed to. (Though in general I do agree with “it’s worth learning how to do this stuff.)
- simonw 11mo agoQuoting my article: > This is a useful starting point for a project like this—in figuring out the compile step the coding agent gets seeded with a little bit of relevant information about the project, and if it can compile that means it can later partially test the code it is writing while it works. "Figure out how to build this" is a shortcut for getting a coding agent primed for future work. If you look at the transcript you can see what it did: https://gistpreview.github.io/?ddabbff092bdd658e06d8a2e8f142098 https://gistpreview.github.io/?ddabbff092bdd658e06d8a2e8f142... Ran ls └ AGENTS.md CHANGELOG.md +13 lines scripts sdk Ran cat README.md └ <p align="center"><code>npm i -g @openai/codex</code><br />or <code>brew install --cask codex</code></p> +105 lines This repository is licensed under the [Apache-2.0 License](LICENSE). Ran rg -n "rust" -n docs/install.md └ 23:curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 25:rustup component add rustfmt 26:rustup component add clippy Ran sed -n '1,200p' docs/install.md └ ## Install & build +36 lines cargo test ``` Im gathering the build steps for the Rust tool, focusing on running cargo build inside the codex-rs directory. I'll check dependencies and confirm the instructions before actually building, aiming to provide a clear summary afterward. Ran cargo build └ Updating git repository `https://github.com/nornagon/crossterm` Updating git repository `https://github.com/nornagon/ratatui` +825 lines Compiling codex-cli v0.0.0 (/Users/simon/Dropbox/dev/codex/codex-rs/cli) Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 27s Ran ls target/debug | head └ apply_patch apply_patch.d +6 lines codex-execpolicy That's a decent starting point on seeding the context with information that's relevant to making and then testing the modifications I'm about to ask for.
- adastra22 11mo agoWhat useful context is in there? How to call “cargo build”? It already knows that.
- simonw 11mo agoThe README files that it looked at, and the directory structure it explored. It now knows what the project is, what dependencies it uses, how it's laid out and the set of binaries that it generates. Even more importantly: it knows that the project can be built without errors. If it tries a build later and sees an error it will know that the error was caused by code it had modified.
- caymanjim 11mo agoI would have done the same thing. I know how to build software in a dozen or more languages. I've done it manually, from scratch, in all of them. I don't know Rust. I have no immediate plan to learn Rust. I vaguely know that Cargo is something in the Rust toolbox. I don't have it installed. I don't particularly want to learn anything about it. It's a whole lot easier for me to tell the LLM to figure that out. I might learn Rust some day. At the moment, I don't need the mental clutter.
- adastra22 11mo agoWell, fyi because it is really simple: if you have rust installed, you have cargo installed too. And to run a project you type “cargo run” from the base directory. That is all.
- Retr0id 11mo agoYou get a build error because the rust version you have installed is incompatible with the codebase. Now you have to install rustup and...
- caymanjim 11mo agoI don't doubt that the process is ultimately fairly easy, but it always looks easier from inside the bubble. You have to know that Cargo is part of Rust; what the best way to install it is on your system; what tooling you should use if you don't want headaches later; what to do if you don't want to or can't install system-level packages; what minimum versions of Rust and Cargo are assumed by application developers this week; what additional dependencies are required; etc. It's my understanding that building Rust applications still requires a C toolchain, and packages are still going to be dependent on things like having the openssl dev headers/libraries installed. That's fine, that's normal for building software, but it's not as trivial as "just git-clone this Rust source repo and run one command and everything will work". I'm certain I could get up and running quickly. I'm also certain I'd have to install a bunch of stuff and iterate past multiple roadblocks before I was actually able to build a Rust application. And finally I'm certain I could get Claude or Codex to do it all a lot faster than if I muddled through it myself for half an hour.
- winternewt 11mo agoI see where you're coming from. But I often find that when I have some idea or challenge that I want to solve, I get bogged down in details (like how do I build that project)... before I even know if the idea I _wanted_ to solve is feasible. It's not that I don't care about learning how to build Rust or think that it's too big of a challenge. It's just not the thing I was excited about right now, and it's not obvious ahead of time how sidetracked it will get me. I find that having an LLM just figure it out helps me to not lose momentum.
- lifthrasiir 11mo agoI have used Rust for decades (yeah, Rust is that old) and want to point out that that's not always the case, especially when FFI is involved. At some point, for example, any Rust crate with the `openssl` dependency used to require a special care every time `cargo install` gets run. Cargo itself is super nice; other tools, still not so much.
- beklein 11mo agoIf you've never used Rust before, I couldn't find good documentation on how to run a existing Rust project nor could I find `cargo install` on the "Getting Started" page. I could read the Cargo Book, or check `--help` I guess, but this can be surprisingly time consuming as well, it might take 5-30 minutes of active searching to locate the information. If you can, try put yourself in a beginner's mindset and think though your argument again. Regarding your second point, I think people actually underutilise LLMs for simple tasks. Delegating these tasks frees up your problem-solving skills for challenges that truly need human insight. In this case, asking an LLM is arguably the smart choice: it's a common task in training data, easy to verify, and low-risk to run and not a direct learning or benefit for your initial question.
- aabhay 11mo agoYou don’t need to cargo install anything. You just need cargo itself, which is linked on the main page. Once you have that, here’s an example google search that gives you all the info you need to run the project (hint: `cargo run`) https://www.google.com/search?q=how+do+I+run+a+rust+project https://www.google.com/search?q=how+do+I+run+a+rust+project
- beklein 11mo agoThanks for the Google link, I was just asking GPT-5-Pro "How to Google: 'How do I run a rust project'", and am still waiting for the answer... the point was that searching for an answer (wherever/however) is not necessary in some cases, like this one, but asking the AI agent to find a solution can be sufficient and is totally ok. Engineers are allowed to delegate, there is not nothing wrong with this.
- survirtual 11mo agoFunny you say that, because I have the opposite opinion. It is easy for any of us to quickly bootstrap a new project in whatever language. But this takes a cognitive toll, and adds friction to bring our visions online. Recently, I went "blind" for a couple of days. My vision was so damaged I could only see blurs. The circumstances of this blindness are irrelevant, but it dawned on me that if I were blind, I could no longer code as I do. This realization led me to purchase a Max subscription to Claude Code and rely more on LLMs for building, not less. It was much more effective than I thought it would be. In my blurred blindness, I saw blobs of a beautiful user interface form, from the skeleton of my Rust backend, Vue3 frontend. It took my (complex backend in Rust) and my frontend scaffolding to another level. I could recognize it via the blur distinctly. And it did this in minutes / hours instead of days. As my vision returned, I began analyzing what happened and conducting experiments. My attitude changed completely. Instead of doing things myself, directly, I set out to make the LLM do it, even if it took more time. It is painful at first. It makes very stupid mistakes that make an experienced engineer snarl at it, "I can do better myself". But my blindness gave me new sight. If I were blind, I couldn't do it myself. I would need help. Instead of letting that ego take over, I started patiently understanding how the LLM best operates. I discovered mainly it needs context and specific instructions. I experimented with a DSL I made for defining LLM instructions that are more suited for it, and I cannot describe the magic that started unfolding. Now, I am writing a massive library of modular instructions for LLMs, and launching them against various situations. They will run for hours uninterrupted and end up implementing full code bases, with complete test suites, domain separation, and security baked in. Reviewing their code, it looks better than 90% of what I see people producing. Clear separation of concerns, minimal code reuse, distinct interface definitions, and so much more. So now, I have been making it more and more autonomous. It doesn't matter if I could bootstrap a project in 30 seconds. If I spend a few hours perfecting the instructions to the LLM, I can bootstrap ANY project for ANY LANGUAGE, forever. And the great thing? I already know the pattern works. At this point, it is foolish for me to do anything other than this.
- ClawsOnPaws 11mo agoJust as a quick datapoint here in case people get worried; yes, it is absolutely possible to program as a blind person, even without language models. Obviously you won't be using your eyes for it, but we have tried and tested tools that help and work. And at the end of the day, someone's going to have to review the code that gets written, so either way, you're not going to get around learning those tools. Source: Am a blind person coding for many years before language models existed.
- jstummbillig 11mo ago> In turn, this makes your own research or problem-solving skills less sharp. Why would that be true? The average assistant is certainly typing more quickly than their boss, but most people would not find issue in that. It's different responsibilities. You free up time to research / problem-solve other things. > No need to wait for 5-30 minutes until LLM figures this out. I don't care it the LLM takes 15 additional minutes to figure it out, if it net saves me a minute (we could certainly debate the ergonomics of the multitasking involved, but that is something that every person, who delegates work, has to deal with and that's not unique to working with LLMs in any way)
- globular-toast 11mo agoI got excited about LLM agents thinking it was just about "faster typing". A lot of us have dreamed of a day where we can just transfer what we have in mind directly into the computer, skipping the laborious manual keying step. But using an LLM is not that. It's not that at all. Instead they let you type vague or ambiguous crap in and just essentially guess about the unclear bits. Hadn't quite thought through which algorithm to use? No worries, the LLM will just pick one. Hadn't considered an edge case? No worries, the LLM will just write 100 lines of code that no sane programmer would ever go through with before realising something isn't right. I've made the mistake of being that senior who is way too eager to help juniors many times in my career. What happens is they never, ever learn for themselves. They never learn how to digest and work through a problem. They never learn from their mistakes. Because they can always just defer to me. LLMs are the worst thing to happen for these people because unlike a real person like me the LLM is never busy, never grumpy and nobody is taking notes of just how many times they're having to ask. LLMs are really useful at generating boilerplate, but you have to ask yourself why you're spending your days writing boilerplate in the first place. The danger is it can very quickly become more than just boilerplate and before you know it you've forgotten how to think for yourself.
- amluto 11mo agoSometimes avoiding boilerplate is out of scope. I’m currently using an LLM agent to write a Home Assistant integration. The LLM is happy to write boilerplate crap to interact with the terrible Home Assistant API without complaining about it. Sure, some of the code it writes is awful, and I can fix that. (The record was about 15 lines of code, including non-functional error handling, to compute the fixed number zero.) Becoming proficient at banging out Home Assistant entities and their utterly ludicrous instantiation process has zero value for my career.
- fHr 11mo agotrue bunch of regards in the making like why I need you to do basic ass shit like this, no wonder we see mass layoffs
- CamperBob2 11mo agoIn turn, this makes your own research or problem-solving skills less sharp. That's one way to think about it, but on the other hand, where's the "skill" in knowing a particular CLI invocation for a particular tool or installation task? Next year there will be a Better Way to Do It. (Witness how many trendy package installers / venv managers the Python community has gone through.) An LLM's job is to translate what I want to do into instructions or commands that actually do it. Real skill involves defining and directing the process; the implementation details are just temporary artifacts. Memorized command lines, mastery of specific tools, and conflation of rote procedures with "skills" are what keeps languages like C around for 50 years, long after the point where they begin to impede progress.
- simonw 11mo agoI've been thinking about this a lot recently. I've been using Git for about 20 years, but I've never considered myself a Git expert because I have to look up how to do things like a git bisect or a history rewrite beyond just the first "git commit --amend" But now... I use a ton of advanced Git features several times a week, because just knowing that it's possible to do something is enough for me to tell Codex or Claude Code to do that thing. So maybe Git mastery now is more about concepts? You need to understand the DAG and roughly what's in the .git folder and origins and branches and tags and commits and so forth, but you don't need to remember the syntax.
- CamperBob2 11mo agoExactly, and now imagine that somebody introduces a tool even better than Git. Normally that tool would have major adoption problems because it would have to dislodge the incumbent standard that everybody's familiar with, and that everybody can at least tolerate. But if you aren't even issuing commands directly to Git, suddenly it starts to look like there is room for improvement without the pain of learning a new tool or a new paradigm. That's a bigger deal than I think most people appreciate.