HackerTube

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

The Julia Programming Language9 HN recommenders · recommended in 6 months, 2019–2025
YouTube
talk · intermediate · evergreen · 2019–2025 on HN

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.

12 comments from Hacker News

@dTal2020-06 · 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 recommends View on HN
@krastanov2021-02 · in “Julia 1.6: what has changed since Julia 1.0?”

Julia's model is based around multimethods, which enables pretty crazy levels of interoperability (imagine being able to use scipy and tensorflow together, with tensorflow's autograd just magically working on most of scipy's functions). More about it here ▶ this video

Recommends View on HN
@dandanua2021-01 · in “Quick Overview of Julia language [pdf]”

Indeed, Julia's abstract type system with multiple dispatch is its killer feature. It enables generic programming in a beautiful and concise fashion. Here [1] Stefan Karpinski gives some explanations of why multiple dispatch is so effective. [1] ▶ this video

Recommends View on HN
@nur0n2020-10 · in “Ask HN: What is your favorite YouTube channel to learn advanced programming?”

I like to watch talks by programming language designers. Some that readily come to mind are Rich Hickey, Joe Armstrong (RIP), and Stefan Karpinski. Some of my favorites are: - Simple Made Easy (Hickey): link - The Mess We're In (Armstrong): link - The Unreasonable Effectiveness of Multiple Dispatch (Karpinski): ▶ this video

Recommends View on HN
@StefanKarpinski2020-10 · 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.

Recommends View on HN