Talk

Advanced Type Systems. What I Still Need in Java from Rust

  • In Russian
Presentation pdf

One of the common ways to create code which is maintainable and free from a certain class of errors is by using language features allowing to define the structure of each and everything in a more strict and laconic way at the type system level.

In this talk we will study what's already available for this purpose in Java, especially considering the novelties like pattern matching, what's still missed by us, what's already perfect and what will never get. We'll try to decide whether we really need all this or POJOs are just enough.

We will discuss a number of questions: what's wrong with Go's err, what the never-type is, and how it is all related to monads, also comparing the approaches in and outside of the JVM ecosystem backing it up by the personal experience of building convenient API for advanced Protobuf request parsing.

This talk will be followed by a discussion of which language did it right, lots of fun applications of the boring theory and disputes about the essence of void, and finally by meditation on what the Java developers should take from other languages.

Speakers

Invited experts

Schedule