26 ms·
Well it's not really ushering it in, given that this is what Haskell has had for a decade at least.
by seanparsons 3y ago
Well it's not really ushering it in, given that this is what Haskell has had for a decade at least.
- marginalia_nu 3y agoWell, yeah. Haskell is a research language, while Java's stated design philosophy from day one has been to be conservative with adding new features, and judiciously add new features after they've proven useful in other languages.
- maxbond 3y agoTo be fair though M:N threads aren't the provenance of research language, Go and Rust both have them, and I'm sure some other languages. (But it's awesome Java has them now too, other languages getting the feature earlier doesn't really devalue it.)
- kaba0 3y agoRust doesn’t have them, though.
- maxbond 3y agoIn what way? async-std and tokio both support M:N.
- kaba0 3y agoBut they can’t turn blocking calls to non-blocking which is the whole point, that requires runtime support.
- maxbond 3y agoOh interesting, that's very cool, I didn't realize Java was doing that. That's a different axis than M:N though (cooperative versus preemptive) and you could definitely write a preemptive async runtime for Rust (rtic comes to mind). But the async-std and tokio runtimes are certainly cooperative. (As a note, cooperative scheduling also requires a runtime - Rust might not "have a runtime" by default but you need to opt into one to use async.)
- marginalia_nu 3y agoMy point is that they're on diametrically opposite ends of the language-philosophical spectrum.
- kjto 3y ago.net has had this feature for a decade++
- marginalia_nu 3y agoYeah, so has a lot of languages. See the previous comment.
- kjto 3y agoyou’re trying to support “judicious and conservative” but realistically java is on a lifeline like fortran, delphi and objectiveC
- kaba0 3y agoThat “lifeline” is apparently the same the internet is on.
- marginalia_nu 3y agoWhat are you basing this sentiment on?
- spuz 3y agoWhat is the virtual thread feature in .NET called? I can't find any information about it.
- kjto 3y agoTasks, simple intro here https://code-maze.com/csharp-tasks-vs-threads/ https://code-maze.com/csharp-tasks-vs-threads/
- seanparsons 3y agoSo how does that make a difference to my point? The title is literally false as multiple other languages have already done it, Haskell in fact has even rewritten the underpinnings at least once the feature has been there so long.
- namdnay 3y agoThe fact that X exists doesn't mean the "era of X" has started yet, you have to have the exponential adoption curve. The "Internet Age" started several years after the Internet was created And clearly, adding this feature to Java is going to be like putting a web browser in Windows 95
- cleanchit 3y agoWhat's haskell? \s