Julia Subtyping Lessons Scala Could Learn (Student Talk)
Julia is a young dynamic programming language designed for technical computations. Although it lacks the static typing discipline, Julia is full of types. Multiple dynamic dispatching is the core language mechanism making use of type annotations of method parameters, and residing on surprisingly complicated subtype relation. In previous work we studied one possible algorithmic formulation of the relation — it happens to be full of ugly patches and possibly inefficient procedures. All those irregularities were thoroughly discussed with the language developers and approved as reflecting the actual behaviors encoded in the highly optimized implementation.
We relate Julia’s expressive type language to Scala. We believe that most of the main pieces of the former: invariant type constructors and covariant tuples, existential and union types — can be mapped on Scala or DOT. Yet the latter manages to stay away from disturbing irregularities. We identify key features allowing for that and speculate about the ones which could be added to the system safely.
Fri 28 Sep Times are displayed in time zone: (GMT-05:00) Guadalajara, Mexico City, Monterrey change
|11:50 - 12:00|
Artem PelenitsynNortheastern University
|12:00 - 12:10|