• 0 Posts
  • 152 Comments
Joined 11 months ago
cake
Cake day: September 24th, 2023

help-circle







  • I never did a CS degree but recently I’ve been doing some things that make me wish I had. But it isn’t any of this stuff which seems mostly programming things that you can easily learn outside academia.

    The stuff I would like to understand which I haven’t yet been able to learn on my own is the hard computer sciency stuff: lambda calculus, type inference (how do you read that weird judgement syntax?), how SAT/SMT solvers work, dependent typing systems… Does anyone have any good resources for those sorts of things?


  • I haven’t used one, but my guess would be they’re fine if you’re a “web browsing and email” sort, but most of us here probably aren’t, and then you’re going to have pain when you need to install some tool that expects to be installed globally, because so many pieces of open source software assume the “spew files all over /usr” installation method.

    Feels like you’d be spending a lot of time fighting expectations in the same way that Nix has to.



  • When they say global state here it’s not really global state, it’s class members - global to the class. “Why are they calling it global state then, idiots?” you might think. It’s because it prevents local reasoning in the same way as global state does (and most people get the implications of “global state” because of experience, so it’s a kind of shorthand).

    Of course, not many people would recommend “no class variables” (in a classic OOP language anyway), but the point is they have similar downsides to global variables in terms of understanding code (and testing, etc.) so recommending to always use them - even when passing state in and out of functions is perfectly ergonomic - is clearly bonkers.





  • And you’re making the assumption that it could be. Why am I the only one who needs to show anything?

    “Could be” is the null hypothesis.

    any person

    Hmm I’m guessing you don’t have children.

    What do you mean, “certain of the answer?” It’s math

    Oh dear. I dunno where to start here… but basically while maths itself is either true or false, our certainty of a mathematical truth is definitely not. Even for the cleverest mathematicians there are now proofs that are too complicated for humans to understand. They have to be checked by machines… then how much do you trust that the machine checker is bug free? Formal verification tools often have bugs.

    Just because something “is math” doesn’t mean we’re certain of it.

    Can I ask where’s your proof?

    I don’t have proof. That’s my point. Your position is no stronger than the opposite position. You just asserted it as fact.


  • I think understanding requires knowledge, and LLMs work with statistics around text, not knowledge.

    You’re already making the assumption that “statistics around text” isn’t knowledge. That’s a very big assumption that you need to show. And before you even do that you need a precise definition of “knowledge”.

    Ask me a thousand times the solution of a math problem, and a thousand times I’ll give you the same solution.

    Sure but only if you are certain of the answer. As soon as you have a little uncertainty that breaks down. Ask an LLM what Obama’s first name is a thousand times and it will give you the same answer.

    Does my daughter not have any knowledge because she can’t do 12*2 reliably 1000 times in a row? Obviously not.

    it’ll just make things up

    Yes that is a big problem, but not related to this discussion. Humans can make things up too, the only difference is they don’t do it all the time like LLMs do. Well actually I should say most humans don’t. I worked with a guy who was very like an LLM. Always an answer but complete bullshit half the time.

    they contain information about—the statistical relations between tokens. That’s not the same as understanding what those tokens actually mean

    Prove it. I assert that it is the same.


  • This is a timely reminder and informative for people who want to seem smug I guess? Or haven’t really thought about it? … that the word “understand” is definitely not defined precisely or restrictively enough to exclude LLMs.

    By the normal meaning of “understand” they definitely show some level of understanding. I mean, have you used them? I think current state of the art LLMs could actually pass the Turing test against unsophisticated interviewers. How can you say they don’t understand anything?

    Understanding is not a property of the mechanism of intelligence. You can’t just say “it’s only pattern matching” or “it’s only matrix multiplication” therefore it doesn’t understand.


  • Ada is not strictly safer. It’s not memory safe for example, unless you never free. The advantage it has is mature support for formal verification. But there’s literally no way you’re going to be able to automatically convert C to Ada + formal properties.

    In any case Rust has about a gazillion in-progress attempts at adding various kinds of formal verification support. Kani, Prusti, Cruesot, Verus, etc. etc. It probably won’t be long before it’s better than Ada.

    Also if your code is Ada then you only have access to the tiny Ada ecosystem, which is probably fine in some domains (e.g. embedded) but not in general.