Live data from Hacker News

My Software North Star

kristoff.it

61–70 of 166 posts

Re: My Software North Star

#61
post #25

Earlier quoted context omitted.

Agreed unfortunately, if Zigs whole selling point is meant to be a "nicer C" (and a much nicer DX than Rust because no fighting the borrow checker etc) - does that really matter in a world where an LLM is writing the code? I am not going to be fighting the borrow checker, the LLM is. And as always, the response you'll hear is: but AI sucks/hallucinates/could never replace me etc... Just look at the progress LLM'S hav…

Why would *any* programming language matter when LLMs can just directly output binaries from a sufficiently detailed spec ;) And specifically, why would Rust be a better choice than C or Zig when the LLMs get good enough to just write memory safe code in unsafe languages (they are already pretty good at finding memory safety bugs). IMHO for code generation, different things start to matter (like fast build times, whi…

Writing memory safe code in unsafe languages requires global reasoning, which LLMs are terrible at. The whole point of a type system or a borrow checker like Rust's is to thread the requirements for safety throughout the program syntax in a way that makes it possible to spot problems locally. That's why LLMs tend to be rather good at writing Rust.

Re: My Software North Star

#62

Earlier quoted context omitted.

Why would *any* programming language matter when LLMs can just directly output binaries from a sufficiently detailed spec ;) And specifically, why would Rust be a better choice than C or Zig when the LLMs get good enough to just write memory safe code in unsafe languages (they are already pretty good at finding memory safety bugs). IMHO for code generation, different things start to matter (like fast build times, whi…

Writing memory safe code in unsafe languages requires global reasoning, which LLMs are terrible at. The whole point of a type system or a borrow checker like Rust's is to thread the requirements for safety throughout the program syntax in a way that makes it possible to spot problems locally. That's why LLMs tend to be rather good at writing Rust.

> Writing memory safe code in unsafe languages requires global reasoning

If you learn how to use arena allocators and in general use modern techniques, you don't need global reasoning to write correct memory management code pretty much never.

If your code is a RAII and abstraction maze, then yes, you will probably need global reasoning, but that's not the case with Zig.

Re: My Software North Star

#63

Earlier quoted context omitted.

Why would *any* programming language matter when LLMs can just directly output binaries from a sufficiently detailed spec ;) And specifically, why would Rust be a better choice than C or Zig when the LLMs get good enough to just write memory safe code in unsafe languages (they are already pretty good at finding memory safety bugs). IMHO for code generation, different things start to matter (like fast build times, whi…

Writing memory safe code in unsafe languages requires global reasoning, which LLMs are terrible at. The whole point of a type system or a borrow checker like Rust's is to thread the requirements for safety throughout the program syntax in a way that makes it possible to spot problems locally. That's why LLMs tend to be rather good at writing Rust.

Writing anything safe code in any language that doesn't have that safety built in requires global reasoning. That's why LLMs aren't better at writing rm-rf/-safe code in Rust.

Re: My Software North Star

#64
post #6

Damn this person's obviously is so bitter towards Rust... I wonder why he's so obsessed with it? I mean, if they really care about software correctness, I wonder why take a very discutibile position and say that "safety doesn't matter if you don't use the correct process". Yeah, I mean, having some guardrails is better than none, right? If they really cared about correctness, they would really strive to put all the p…

I don't get it. Are we reading the same article? This article is so generic that it reads like vacuous truth to me. But I don't see their bitterness towards Rust (or anything, really. It's just vacuous.) from it. Is this person a famous anti-rust'er or something?

I don't get how you dont't get. It links about memory safety (with a link towards an extremely biased article in Rust's favor) and a link to design to correctness (that leads to Zig project).

There is a lot to dislike about this paragraph:

      It doesn’t matter that the language you use is memory-safe, if you didn’t design for correctness or have no process that will eventually lead you to fixing all bugs.
 
Hang on. If I want to prevent all bugs, shouldn't memory safe make your correctness much easier to achieve? And what is this about fixing all bugs? You mean proofs? The stuff that Zig doesn't aim to do?

And no, asserts don't fix all bugs, they just guarantee some of your invariants are held at best, used in test at worst.

Re: My Software North Star

#65
post #58
post #45

Earlier quoted context omitted.

There is a pretty clear and important difference between a program that does something wrong , and a program that just doesn't do something somebody wants. "You don't support printing", "pressing the print button doesn't print", "pressing the print button crashes the computer" and "pressing the print button lets an attacker get root access to the system" are all different and it makes sense to distinguish them. (The…

> There is a pretty clear and important difference between a program that does something wrong, and a program that just doesn't do something somebody wants. Your argument hinges on all parties agreeing on what "wrong" means. Take a step back and consider that parties do not agree on a common definition of "wrong." Does "wrong" mean a gap between the spec and the implementation or a gap between a reasonable user's exp…

There are some really obvious things that are definitely bugs. If login doesn’t work if your email address contains the letter “e” when the expectation is all valid email addresses should work, then that is a bug. It isn’t “indistinguishable from a feature”. If clicking a button in your accounting software consumes all the RAM on your computer and causes it to crash, then there is no universe or agreed upon definition that would consider that a feature instead of a bug.

Re: My Software North Star

#66
post #21

The adjective 'useful' is doing a lot of the heavy-lifting here. What kind of 'useful'? Normative? Empirical? Prescriptive? Pragmatic? 'Useful' is a very subjective north star.

>What kind of 'useful'? Someone says it's useful to them. If you get a consensus where >50% find it useful, then it's probably useful.

Ok, that's empirically useful by argument of popularity.

By that same measure: correctness, maintainability, and efficiency are not that useful.

I wasn't saying usefulness is not important, I'm saying this post conveniently crammed the hardest problem of writing software into a fuzzy adjective.

Re: My Software North Star

#67
post #59

recently i've ran into products that feel like they were not meant to be used, but instead just follow some specification list. for me, the end user's experience goes above all.

There's a weird theme I've seen in some American companies, where they will avoid communicating with the end user and letting everything be one sided

> I do not hear the end user, therefore it does not exist

Not literally, but that's what it feels like.

It's probably safer, but in the long run you're not building any trust.

Re: My Software North Star

#68
post #58
post #45

Earlier quoted context omitted.

There is a pretty clear and important difference between a program that does something wrong , and a program that just doesn't do something somebody wants. "You don't support printing", "pressing the print button doesn't print", "pressing the print button crashes the computer" and "pressing the print button lets an attacker get root access to the system" are all different and it makes sense to distinguish them. (The…

> There is a pretty clear and important difference between a program that does something wrong, and a program that just doesn't do something somebody wants. Your argument hinges on all parties agreeing on what "wrong" means. Take a step back and consider that parties do not agree on a common definition of "wrong." Does "wrong" mean a gap between the spec and the implementation or a gap between a reasonable user's exp…

Just because you can't get everyone to agree does not mean that the concept is not well-defined or clear. People can and do disagree over almost anything. That could just mean that one side is wrong and the other side is right, even if it is difficult to determine which is which... or simply difficult to navigate the underlying politics regardless.

Besides, in your example, either kind of gap could be a bug or a missing feature. It's a totally orthogonal question.

Re: My Software North Star

#69
post #58
post #45

Earlier quoted context omitted.

There is a pretty clear and important difference between a program that does something wrong , and a program that just doesn't do something somebody wants. "You don't support printing", "pressing the print button doesn't print", "pressing the print button crashes the computer" and "pressing the print button lets an attacker get root access to the system" are all different and it makes sense to distinguish them. (The…

> There is a pretty clear and important difference between a program that does something wrong, and a program that just doesn't do something somebody wants. Your argument hinges on all parties agreeing on what "wrong" means. Take a step back and consider that parties do not agree on a common definition of "wrong." Does "wrong" mean a gap between the spec and the implementation or a gap between a reasonable user's exp…

What party would desire to crash a program

Re: My Software North Star

#70
I have voiced a similar thought more succinctly: “it is your worst software that will live forever.”

The implication is that you should always strive to release software that isn’t overly buggy, isn’t slow, and is general a pleasure to use.

Post reply on HN