top | item 44149340

(no title)

rahulprasath | 9 months ago

Why don’t mainstream languages like Python just support multimethods directly?

discuss

order

perlgeek|9 months ago

Probably because typing in Python is optional and kinda bolted-on after the fact, and you really need a good type system to get the most out of multimethods.

In particular, type declarations, as they were first introduced in python, did not have a run-time effect, and they very much have a run-time effect with multi methods.

(Dataclasses are kind of an exception to this rule, but one that feels far less fundamental than multi dispatch would).

RadiozRadioz|9 months ago

Many of them do, e.g. Java. Why don't _some_ mainstream languages like Python not support it? Entirely design preference, usually because they want to have less emphasis on the type system.

pdhborges|9 months ago

Java supports it? Are you conflating method overload (which is statically determined) with multimethods?