Skip to content
0:00 / 0:00

#monads#asyncawait#virtualthreads

Ron Pressler - Pull Push: Please stop polluting our imperative languages with pure concepts-Curry On

Curry On!

6.3K subscribers • 21 videos on Hallway

YouTube
  • Recommended by 3 people: 3 on Hacker News.
  • A classic. People kept recommending it from 2015 to 2024.
  • Presented by Ron Pressler, creator of Quasar
  • An opinion. It argues one side of a question engineers disagree on.

Advanced. Deep dive for people who know the field.

24K views11 years ago3 recommendations

Programming languagesSoftware designLanguage design and type systemsConcurrency and parallelismFunctional programming

Ron Pressler argues against importing pure functional concepts like monads into imperative languages, advocating instead for simple blocking code.

Curry On, Prague July 6th 2015. curry-on.org 2015.ecoop.org

Why it's here

3 people recommend this

What people say. Recommended as a strong argument for blocking code and virtual threads over non-blocking async/await paradigms.

elcritchon Hacker News • Recommends

On “TensorFlow: open-source library for machine intelligence”

…perative control flow along with the data. E.g. wrapping up the if/else choices into a data structure. Currently I actually found studying up on actual category theory easier than all the "easy introduction" things regarding monads. As in, the ideas when presented straightforwardly and technically correct are simpler than we give credence to. 1: link to this video…

aptaon Hacker News • Recommends

On “Go proposal: Leave “if err != nil” alone?”

…s, 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 Idris or what have you will automagically grant you superior or error-free software. I actually like what talks like these have to say: * link * link to this video However, that does not mean we disregard established practices, only to try to reinvent them in a bad way as we see golang trying to do (no generics - even though many other languages implemented them "correctly", bad error handling, no sum types, null pointers, and so on). They purposely disregarded these works without good arguments at al…

fzeindlon Hacker News • Recommends

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: link to 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.

fzeindlon Hacker News • Recommends

On “Async await: the worst thing to happen to programming?”

Here are more arguments against async/await: link to 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.

u/whitehead1415in r/haskell • Mentions

Debugging monadic code? Today I had a discussion with a coworker about exceptions vs monads for error handling. One of the main things he talked about was that he prefers exceptions, and try catch blocks to monads because he wants to know the specific line number of when something failed. So if you have a long chain of functions that operate on a Maybe value how can you know what function turned it into a Nothing? I told him that in my experience I have never really needed to know the line number where something turned into a Nothing. I could know where to start debugging by the types, tests, input, or some other context. Any specific example I showed him was too simple and he wanted to k…

u/gopher9Concin r/ProgrammingLanguages • Mentions

On “A question for you all: What's your least favourite thing about your favourite programming language?”

Monads do not combine well with imperative features. This talk has some examples and compares monads with scoped continuations.