Rust has been a practical experiment in macros for ten years now. I think it is safe to say the results are in: macros are great, and you just needed to have a better style of macros. Making and using something like `tokio::select!` in C-style macros is miserable, but `tokio::select!` is easy to use and understand in Rust.
Basic argument:<p>I want it because LLMs make it easy to do without having to think.
At the risk of being a bit of a douchebag, it seems like nearly every tech opinion piece I read now boils down to "things used to be hard but they aren't anymore because LLMs can understand things faster than we can, so can ignore/change fundamentals!"<p>I didn't really find the argument convincing the first time and I don't really find it convincing now.<p>That said, with regards to macros, I actually do agree that the fear against them is broadly overblown. I <i>have</i> seen scary terrible horrifying macro soup in Clojure, but that has generally been outlier cases. Something like core.async abuses the hell out of macros, and despite that I think it very often increases readability and understanding of the language.
> it seems like nearly every tech opinion piece I read now boils down to "things used to be hard but they aren't anymore because LLMs can understand things faster than we can, so can ignore/change fundamentals!"<p>Sure, LLM coding agents being capable doesn't mean we can ignore fundamentals.<p>But LLM coding agents surely adjust the cost/benefit considerations for all kinds of programming efforts.<p>Arranging your code in such a way that it's so complicated you <i>need</i> an LLM to understand it is surely silly.<p>Using an LLM to write a macro because you weren't going to learn how to write macros and deal with all the subtle cases? I think that's arguable.
And even if LLMs do our thinking for us, it's still not a reason to fork the programming language you're using, unless you expect me to believe an LLM can understand `foo |> bar` but it can't understand `bar(foo(x))`. If you're not looking at the code, it doesn't matter how pretty the code is anymore.
As long as GPS stays bullet proof, Navies are in good shape.<p>It's going to be a hard come-to-Beevis moment if the magic signal goes away and people have to remember celestial navigation.<p>Not sure you can even find a sextant on most vessels.<p>So too these AI services.
GPS service is obviously going to go down whenever World War III goes hot, so the Navy is definitely training sailors on the alternatives.
The Navy was phasing out celestial navigation, but after some public outrage from retired naval officers they brought it back.
Moving from Java to Kotlin was a breath of fresh air; sometimes a language change genuinely unlocks productivity.
Not a single mention of Chesterton's Fence. Was this really written for HN, then?
My last project needed Rust for one module, but the rest was Go. Felt silly rewriting core logic just to stay unified.
[dead]