A good teacher will do that. And even the best teacher can’t force you to learn if you don’t want to. LLMs can be a powerful tool for learning if you’re sufficiently motivated.
I thoroughly agree, you should always have CI tools to ensure it builds, passes tests, and meets whatever formatting and/or linting standards the team sets. I was specifically responding to "Rust makes it harder for a ‘contributor’ to sneak in LLM-generated crap". If I get a contribution from an untrusted party, I will start with the assumption that it's utter garbage, buggy, broken, and malicious and review it until I'm convinced it's not. Not because I assume the dev is bad but because it's safer to assume the code is garbage. If I get a contribution from a trusted party (e.g. a member of the dev team/employee/whatever) I will review the code carefully though not with as much paranoia. I don't particularly care if my teammates are using LLMs, but if they're submitting code they don't understand that's a great way to get ejected from the "trusted contributors" group, and if they're an employee it's a good way to get fired if they keep doing it after being warned not to.
I’ve had success with Claude, but there’s always a layer of separation. I ask it to do something, read what it produced, and decide if it’s garbage or not. And rewrite or discard as necessary. Though counting by LOC mainly I’ve used it for writing tests.
nasmis an assembler though, not a ‘languages’
That's like saying "clang is a compiler though, not a language". It's correct but completely beside the point. Unless you're writing a compiler, "cross platform assembler" is kind of an insane thing to ask for. If want to learn low level programming, pick a platform. If you are trying to write a cross-platform program in assembly, WHY!? Unless you're writing a compiler. But even then, in this day and age using a cross-platform assembler is still kind of an insane way to approach that problem; take a lesson from decades of progress and do what LLVM did: use an intermediate representation.
What I mean is, from the perspective of performance they are very different. In a language like C where (p)threads are kernel threads, creating a new thread is only marginally less expensive than creating a new process (in Linux, not sure about Windows). In comparison creating a new 'user thread' in Go is exceedingly cheap. Creating 10s of thousands of goroutines is feasible. Creating 10s of thousands of threads is a problem.
Also, it still uses kernel threads, just not for every single goroutine.
This touches on the other major difference. There is zero connection between the number of goroutines a program spawns and the number of kernel threads it spawns. A program using kernel threads is relying on the kernel's scheduler which adds a lot of complexity and non-determinism. But a Go program uses the same number of kernel threads (assuming the same hardware and you don't mess with GOMAXPROCS) regardless of the number of goroutines it uses, and the goroutines are cooperatively scheduled by the runtime instead of preemptively scheduled by the kernel.
Key point: they're not threads, at least not in the traditional sense. That makes a huge difference under the hood.
The whole point is that random character sequences are often valid Perl
When I read the headline I also assumed “valid Perl program” meant it did something interesting. I was expecting to read an article about an interesting image to text conversion process that produced non-trivial Perl programs.
I assume you’re implying my confidence is due to having limited competence and thus overestimating my competence? The fact that I have imposter syndrome when I imaging trying to be a professional electrical engineer (despite having a degree) seems counter to your presumed argument.
In my book, "memory safety" also means avoiding data races. AFAIK Rust prevents most or all races by enforcing ownership and lifetime of pointers.
I've heard of Rust. It sounds noisy and even more verbose than Go, which is already a fairly verbose language. I haven't had any reason to learn Rust, so I haven't done so. The error handling is annoying but at this point I don't really notice it any more. And as interolivary said, Go has generics now.
What about improvements to the feature after it's been delivered? You develop, test, review, validate, etc, then deliver the feature, and then you get user feedback that you need to make some minor changes or improvements. The original epic is closed and there's not enough work to warrant a new epic, so where does the task go?
firelizzard
0 post score0 comment score
I will use whatever the fuck license I want to for my projects