"Haxl: A Big Hammer for Concurrency" by Simon Marlow

แชร์
ฝัง
  • เผยแพร่เมื่อ 25 ก.ค. 2024
  • Our programming languages are usually "sequential by default", and you have to be explicit if you want concurrency. Much of the code we write, however, is insensitive to reordering, and in these cases concurrency is actually a better default. In this talk I'll describe how the Haxl framework developed and open-sourced by Facebook flips the default from sequential to concurrent. I'll show how that can be useful, and give some insight into how it works.
    It turns out that the pieces we need to do concurrency-by-default also help with testing and debugging, which makes Haxl something of a Big Hammer for solving problems involving I/O and concurrency.
    Simon Marlow
    FACBEBOOK
    Simon Marlow is a Software Engineer on Facebook's Abuse Detection Systems team in London. He is working on Haxl, a Haskell-based domain-specific language that is used by the teams fighting spam and malware. Simon is a co-author of the Glasgow Haskell Compiler, author of the book "Parallel and Concurrent Programming in Haskell", and has a string of research publications in functional programming, language design, compilers, and language implementation.
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 10

  • @lambda494
    @lambda494 6 ปีที่แล้ว +13

    Hiring Simon Marlow was probably the coolest thing Facebook has ever done.

  • @sahinhabesoglu510
    @sahinhabesoglu510 6 ปีที่แล้ว +2

    This man deserves a Turing award :)

  • @vbhvsgr
    @vbhvsgr 6 ปีที่แล้ว +6

    I'd love to hear more about that build system!

  • @afeather123
    @afeather123 5 ปีที่แล้ว +2

    This is awesome! After writing a lot of async code in the style of JS and C# like you showed I always felt like the process of figuring out data dependencies could be automated in some way; and here they've done it! I think he's right that this kind of model for dealing with async could evolve over time to being the default mode of operation, similar to how garbage collection abstracts memory management. Great job!

    • @siobhanahbois
      @siobhanahbois 3 ปีที่แล้ว

      Are you using Haxl in production these days? I'm curious where I can apply Haxl myself.

  • @tylerweirtube
    @tylerweirtube 6 ปีที่แล้ว

    Amazing work!

  • @juanbono
    @juanbono 6 ปีที่แล้ว

    This is really great!

  • @kevalan1042
    @kevalan1042 6 ปีที่แล้ว

    Isn't the biggest opportunity for parallelism in this example the overlapping of getting versions and updating outdated hosts? (because if you have a large number of hosts, and one is unresponsive, you'll wait for a long time on the slowest host, but you could be updating the faster ones already). Seems like Haxl doesn't allow that.

  • @vangilsnick
    @vangilsnick ปีที่แล้ว

    Would it be possible to print/show applicativeDo notation from an arbitrary Haskell script?

    • @Endomorphism
      @Endomorphism 9 หลายเดือนก่อน

      Yes, read about Haskell core and STG
      While compilation These are the languages that Haskell desuger in to.