Ron Pressler - Pull Push: Please stop polluting our imperative languages with pure concepts-Curry On
Why Hacker News recommends it
Recommended as the case for blocking code and virtual threads over monads and async/await.
What it is
Ron Pressler's Curry On 2015 talk arguing that imperative languages should not be polluted with pure functional concepts like monads. He favors simple blocking code over non-blocking styles.
Recommended by 3 HN commenters across 4 different months, 2015 to 2024.
What Hacker News said
Recommends elcritch · 2015-11 · on “TensorFlow: open-source library for machine intelligence”
That's a fair point overall. It's basically the entirety of the debate between functional languages and imperative languages. Nonetheless, it is still pretty good question as far as someone trying to understand the differences and why it might be useful. @hmehta, one of my recent favorite videos generally on this topic has been from Curry On conference [1]. It's not strictly data-flow vs control flow, but it does discuss some of the more practical differences in between using monads for structuring data flows vs imperative control. My take is that monads can be roughly considered as wrapping up imperative control flow along with the data. E.g. wrapping up the if/else choices into a data stru
Recommends apta · 2019-06 · on “Go proposal: Leave “if err != nil” alone?”
> Or Java? Yes - that was implied in the same sentence where I wrote "(e.g. exceptions or actual compiler enforced error handling like Rust)." :-) > As far as I know, race conditions happen and leak out into production with Scala and Java. They do. But there are more techniques in those languages (such as immutable collections, as their type systems are actually able to model and implement them) to mitigate the issue. > and really the lesson of programming in the large for the past 30 years, is that it's not enough to have mathematical or methodological power in guaranteeing correctness in a program. I agree there. I actually don't abide by the ideas that using a language like Haskell or Idr
Recommends fzeindl · 2024-07 · on “Java Virtual Threads: A Case Study”
Does it shake out to any real advantage? To put it shortly: Writing single-threaded blocking code is far easier for most people and has many other benefits, like more understandable and readable programs: [this video] The main reason why non-blocking IO with it's style of intertwining concurrency and algorithms came along is that starting a thread for every request was too expensive. With virtual threads that problem is eliminated so we can go back to writing blocking code.
Recommends fzeindl · 2024-11 · on “Async await: the worst thing to happen to programming?”
Here are more arguments against async/await: [this video] Ron Pressler always was an advocate for blocking code and even joined oracle to add virtual threads to the JVM, thus invalidating the performance argument of the async/await/non-blocking crowd. I really wish young developers would be taught about the actor model and communicating sequential processes before falling for the false promises of async/await-land. And I wish JavaScript runtimes had a way of expressing continuations /blocking threads on their eventloop.