3 ms·
> What? I get myself in the mood for manual tests too. > We're not talking past each other. You can't just quote "testing" and embed extra meaning into that af
by hardwaresofton 3y ago
> What? I get myself in the mood for manual tests too.
> We're not talking past each other. You can't just quote "testing" and embed extra meaning into that after the fact. There's no way I would know what you're talking about.
Writing tests generally means... thinking about tests to write? If you think that thinking of edge cases is not a part of writing tests, then I don't know what to tell you.
I won't say any more on the subject.
> Nah when it comes to the lang extensions almost nothing comes close. I'm just talking about regular haskell ADTs.
>
> The affine stuff isn't relevant as python uses a GC. What does it even mean to do borrow checking when nothing owns a variable in python?
>
> It's quite obvious I'm just referring to the ADTs here.
>
> Python supports regular ADTs better than typescript. So it's better imo. But that's just my initial opinion, I don't use ts extensively so it might be better.
We're not considering language extensions (which are built in BTW, on par with using the stdlib), but we're considering completely separate ecosystem plugins that do type checking? Nonsense.
Tracking usage of variables is useful, whether you use GC or not -- it's a matter of ability in the type system. My point is that you cannot specify in your code that a value should be used "at most once", which is what affine types afford you.
I will not say more on this -- the point is absurd from the beginning, that mypy is as advanced as the literal PhD marsh that is Haskell or innovation that was Rust's borrow system for decades.
If you think mypy is better than Typescript, then we have nothing to talk about -- it's just unlikely for me to gain anything from that discussion.
> If You mean JS. then no, JS is horrible. Typescript has an argument here, I think that's what you mean.
No, I mean JS, and in particular NodeJS as an execution platform, because it has no GIL, can do threads, async io is a first class concept, were flexible enough to get used to transpilation (which lets something like Typescript exist).
> ah my mistake I had a brain fart and thought you were referring to Haskells Num or something along those lines. Yes if by Nat you mean Haskell Nat or unsigned int, then that makes sense.
The type is called Natural, and I wrote Natural.
> I'm not sure why you're telling me this. Did I make a claim that type checking can work on a redis connection?
You said that it can prove a system to be "correct". Unfortunately I can't know what you meant by "correct", but the type system will not help you with many of the practical issues that are most important when writing code.
That's where good engineering comes in.
This will be my last on this discussion, was good!
- formulathree 3y ago>I won't say any more on the subject. Yeah don't bother. >We're not considering language extensions (which are built in BTW, on par with using the stdlib), but we're considering completely separate ecosystem plugins that do type checking? Nonsense. It's not nonsense, the language extensions should not be included because the functionality in Haskell is so far and above what ANY type checker typically does. Clearly. You're being utterly too pedantic here. When I say python types match haskell in power I am obviously not touching upon GADT or RankN. You're getting into the weeds. It has nothing to do with extensions being "on par with stdlib" >Tracking usage of variables is useful, whether you use GC or not -- it's a matter of ability in the type system. My point is that you cannot specify in your code that a value should be used "at most once", which is what affine types afford you. Yeah but not strictly necessary for python which has a GC, but strictly necessary for Rust which has ownership. >I will not say more on this Yeah don't bother. Sort of rude. But whatever. >No, I mean JS, and in particular NodeJS as an execution platform, because it has no GIL, can do threads, async io is a first class concept, were flexible enough to get used to transpilation (which lets something like Typescript exist). It can't do threads. I just looked it up. Worker Threads are processes that use some form of IPC. Literally a whole new v8 engine. I was right. Also JS is a horrible language. It's crazy you use haskell and you're ok with things like undefined which basically is a nonsense instance that can flow from one end of your code to another. >The type is called Natural, and I wrote Natural. Nope the type is called Nat. https://hackage.haskell.org/package/fin-0.3/docs/Data-Type-Nat.html https://hackage.haskell.org/package/fin-0.3/docs/Data-Type-N... and in Idris: https://www.idris-lang.org/docs/current/base_doc/docs/Prelude.Nat.html#Prelude.Nat.Nat https://www.idris-lang.org/docs/current/base_doc/docs/Prelud.... But this has nothing to do with anything does it? I thought you were referring to a more general type Num. >You said that it can prove a system to be "correct". Unfortunately I can't know what you meant by "correct", but the type system will not help you with many of the practical issues that are most important when writing code. And I wrote extensively on what that means and you read it so you know what I'm talking about. There's no need to get pedantic and argue on pedantic points that are obviously contrary to the obvious meaning of what I'm saying. >That's where good engineering comes in. Yep, but do you have a point? Why make this statement? >This will be my last on this discussion, was good! I don't think you think it was good. I think you're annoyed. That's why you want to cut it off.