Skip to content
HomeVideos
AllLongsCategoriesPlaylists
BooksBlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K

    The Unreasonable Effectiveness of Multiple Dispatch | Stefan Karpinski | JuliaCon 2019

    The Julia Programming Language

    9 HN recommenders · recommended in 14 months, 2019–2025

    YouTube

    35:24 · 79K views · Jul 25, 2019

    Julia co-creator Stefan Karpinski explains why multiple dispatch makes Julia code and types reusable across packages with so little friction. He covers sharing basic types and sharing generic algorithms.

    HN commenters recommend it as the definitive explanation, from a language designer, of why multiple dispatch makes Julia's composability work.

    Software Engineering & LanguagesProgramming language designSoftware architecture & design
    1. 26:34
      Shared memory parallelism in Julia | Kiran Pamnany | Cambridge Julia Meetup (May 2018)The Julia Programming Language6.8K views • 8 years ago
    2. 1:04:53
      Julia: to Lisp or not to Lisp?European Lisp Symposium24K views • 10 years ago
    3. 1:12:10
      Practical Common LispGoogle TechTalks98K views • 19 years ago
    4. 1:01:04
      Introduction to Julia - Part 1 | SciPy 2014 | David SandersEnthought80K views • 12 years ago
    5. 46:09
      Why Isn't Functional Programming the Norm? – Richard FeldmanMetosin1.6M views • 7 years ago
    6. 52:40
      Keynote. Professor Steven G. Johnson | JuliaCon 2019The Julia Programming Language18K views • 7 years ago
    7. 1:14:52
      Effective Programs - 10 Years of Clojure - Rich HickeyClojureTV176K views • 9 years ago
    8. 1:03:31
      Brian Goetz - Stewardship: the Sobering PartsClojureTV39K views • 11 years ago
    9. 19:12
      Taking Vector Transposes Seriously | Jiahao Chen | JuliaCon 2017The Julia Programming Language7.4K views • 9 years ago
    10. 30:40
      What's Bad About Julia | Jeff Bezanson | JuliaCon 2019The Julia Programming Language37K views • 7 years ago
    11. 34:55
      "Outperforming Imperative with Pure Functional Languages" by Richard FeldmanStrange Loop Conference98K views • 5 years ago
    12. 1:01:39
      "Simple Made Easy" - Rich Hickey (2011)Strange Loop Conference220K views • 5 years ago
    13. 54:14
      Zig: A programming language designed for robustness, optimality, and clarity –  Andrew KelleyRecurse Center75K views • 8 years ago
    14. 59:04
      On the Expressive Power of Programming Languages by Shriram Krishnamurthi [PWLConf 2019]PapersWeLove27K views • 7 years ago
    15. 8:34
      APL at Julia's Speed | Shashi Gowda | JuliaCon 2016The Julia Programming Language3.5K views • 10 years ago
    16. 39:46
      JuliaRobotics: Making robots walk with Julia | Robin DeitsThe Julia Programming Language8.7K views • 8 years ago
    17. 1:07:22
      Invited Talk - Guy SteeleClojureTV39K views • 9 years ago
    18. 50:49
      Domain Modeling Made Functional - Scott Wlaschin - KanDDDinsky 2019KanDDDinsky74K views • 6 years ago
    19. 41:06
      "Unison: a new distributed programming language" by Paul ChiusanoStrange Loop Conference45K views • 7 years ago
    20. 43:04
      "Stop Writing Dead Programs" by Jack Rusher (Strange Loop 2022)Strange Loop Conference468K views • 4 years ago

    20 comments from Hacker News

    1. @dTalJun 2020· in “JuliaCon 2020 Goes Online”

      Did you mean "unreasonable effectiveness"? :P I just watched that talk the other day, and boy is it insightful. Julia has cracked a fairly magical combination of features. I fully expect it to replace Python over the next 10 years. Direct link to "Unreasonable Effectiveness": this video

      Strongly recommendsView on HN
    2. @ddragonMay 2020· in “Julia library for fast machine learning”

      It's hard to say limited benefit when the entire Julia ecosystem evolved to so heavily rely on it, to allow for each package to work on it's own level of abstraction: For example, the Julia's standard library implements all of the basic math operators on the CPU, and libraries like Flux then define it's own methods to implement the higher level operators used in ML (such as convolutional layers and activation functions). And then someone writes those same basic math operators but instead of running on CPU they run on GPU, and for that they use a new type (CUArray). The original library knows nothing about CUArrays, it will call the same basic operators as always, but since they have a different type (received from the user) they'll dispatch to the GPU version. This kind of interaction can grow indefinitely, for example if you use a complex number type/library it will change the basic operators to deal with both real and imaginary parts, and if you use the GPU types within it, then it will do complex math in the GPU (and ML on complex math on GPU..., without any of the libraries being aware of the other). You can see a more detailed explanation on: this video

      RecommendsView on HN
    3. @StefanKarpinskiOct 2020· in “The Accelerating Adoption of Julia”

      The core problem with class-based object orientation is that methods go inside of the type instead of being added externally. That means everyone has to agree on what methods can be called on a class or they have to subtype it, which sounds harmless, but is actually a big problem when what you really wanted to do was just define a new method for an existing type. My best attempt at explaining: this video There's also the issue that one sometimes needs to specialize generic operations in generic algorithms on something other than the receiver—sometimes even on more than one of the arguments. Single dispatch forces you to use something slow and awkward like double dispatch in cases like this. And that's assuming the person who wrote the generic code anticipates the need for specialization! If they don't allow for it, then you're just stuck. With multiple dispatch, you can just define the method you need the specialization for and you're done.

      RecommendsView on HN
    4. @stabblesOct 2020· in “Why Does Julia Work So Well?”

      "The Unreasonable Effectiveness of X" is a reference to the well-known 'the unreasonable effectiveness of mathematics in the natural sciences'. It's turned into some sort of meme. Maybe you've seen 'the unreasonable effectiveness of recurrent neural networks' before. What you were referring to is a talk by a core developer at JuliaCon 2019 titled 'The unreasonable effectiveness of multiple dispatch' [1], which has less of a fanboy-vibe imho. Edit: Oh. I didn't notice the arstechnica article had this exact title. That's a bit cheap... [1] this video

      RecommendsView on HN
    5. @amkkmaOct 2020· in “The Accelerating Adoption of Julia”

      What? I used to write python, and to me, MD is first and foremost a conceptual improvement. Makes writing code so much sweeter, more expressive and sensical. It also heavily improves composability. It's LESS performant if not done carefully. Certainly FastAI, Matt rocklin etc didn't reimplement a subset in python just to get slower code See this video

      RecommendsView on HN