No video

Bringing Types to Elixir by Giuseppe Castagna and Guillaume Duboc | ElixirConf EU 2023

  Рет қаралды 6,343

Code Sync

Code Sync

9 ай бұрын

SAVE THE DATE FOR NEXT EDITION: 18-19 April 2024 📆
🔥 Check elixirconf.eu for details about ElixirConf EU 2024! 🔥
Call for Talks is open and you can also join the waiting list for access to limited Very Early Bird pricing - don't miss the cheapest tickets!
About the talk:
Set-theoretic types, and how they are uniquely suited to represent Elixir programs: Guillaume Duboc discusses the potential benefits of a type system designed for Elixir, such as detecting common bugs and providing direct feedback on code quality.
Follow us on social:
Twitter: / elixirconfeu and / codesyncglobal
LinkedIn: / 27159258
Facebook: / codesyncglobal
Looking for a unique learning experience?
Attend the next Code Sync conference near you!
See what's coming up at: codesync.global

Пікірлер: 17
@joemartinez3218
@joemartinez3218 Жыл бұрын
This is really exciting work and I really appreciate the analytical rigor up front. 🙏
@calebbeers6384
@calebbeers6384 Жыл бұрын
1:10 Why types? 2:02 (Some) debugging for free 2:23 Types as contracts between functions 3:27 Union types: correct, not precise enough 4:47 Type intersections are used to represent functions 5:19 Negations and singletons 6:20 Polymorphism and local type inference 8:09 Type intersections and polymorphism 9:12 Protocols in Elixir 11:31 First-class support 13:17 Pattern-Matching: Case Statement 13:52 Exhaustivity and redundancy in pattern matching 15:57 Narrowing: inferring more precise types 17:34 Map types 19:16 Gradual typing 20:06 Taming dynamic() with Elixir type tests 21:46 Passing dynamic() around 23:20 Current progress 25:35 Begin taking questions 25:44 Question: negation types 29:30 Question: typechecking dependencies 32:27 Question: migrating from type-specs to the new annotations 34:06 Question: matching on struct names vs types 37:44 Question: maps as intersections of atoms
@AdolfoNeto
@AdolfoNeto Жыл бұрын
Thanks!
@LeCyProductions
@LeCyProductions Жыл бұрын
Brilliant!
@jonnmostovoy2406
@jonnmostovoy2406 Жыл бұрын
Let's go-o-o-o-o!
@ikun1317
@ikun1317 Жыл бұрын
I can't wait to see it in Elixir 1.15
@sbuttgereit
@sbuttgereit Жыл бұрын
This isn't in Elixir 1.15
@angeloceccato
@angeloceccato 9 ай бұрын
Does anyone know if there is the code of implementations/prototypes somewhere?
@tshakah
@tshakah Жыл бұрын
In other strong type systems, the `integer()` argument to `integer() or boolean()` would be fine, as it is a subset. It is confusing to then have to use an _and_ to specify that you can have either integer _or_ boolean. I understand that it is from the perspective of describing the whole type, but that is the opposite of what you would use in a @type declaration
@jose-valim
@jose-valim Жыл бұрын
integer() is fine as an argument to a function that expects integer() or boolean(). However, if a function returns integer() or boolean(), you would have to handle both. This is common to most type systems. Note `integer() and boolean()` is the empty set: nothing can be an integer and boolean at the same time.
@encapsulatio
@encapsulatio 9 ай бұрын
Why was this talk posted 4 months ago and only now made public? Seems only SOME people got access to it then. Why is that?
@CodeSync
@CodeSync 9 ай бұрын
It’s our commitment to ensuring the value of the event for our ticket holders (virtual and in-person attendees), who have invested in the exclusive access. We do release all talks eventually, for free, to the wider audience, but right after the event the access is reserved to the conference participants.
@cagribaba4464
@cagribaba4464 9 ай бұрын
@@CodeSync You also seem to be missing the opportunity for community feedback for 4 months about such an important issue like type systems.
@5SADH
@5SADH 7 ай бұрын
When your type system is longer than the function's implementation, you are not helping developers be productive. Is this system rigorous? Yes; productive? I'll let you all decide. But is there anyway we can stop this train?
@jaymartinez311
@jaymartinez311 Жыл бұрын
looks confusing
@BartOtten
@BartOtten Жыл бұрын
Can you elaborate what exactly you find confusing?
@cagribaba4464
@cagribaba4464 9 ай бұрын
@@BartOtten Trying to merge single type statement for multiple functions at the start was very confusing. Annotation like type system seems counterintuitive. I was expecting regular type system where you would write argument types with the arguments, not over the function as separate statement.
黑天使遇到什么了?#short #angel #clown
00:34
Super Beauty team
Рет қаралды 31 МЛН
UNO!
00:18
БРУНО
Рет қаралды 4,1 МЛН
Smart Sigma Kid #funny #sigma #memes
00:26
CRAZY GREAPA
Рет қаралды 18 МЛН
A little girl was shy at her first ballet lesson #shorts
00:35
Fabiosa Animated
Рет қаралды 20 МЛН
Strong Arrows for Elixir Gradual Typing
4:30
German Velasco
Рет қаралды 1,1 М.
Clarity | Saša Jurić | ElixirConf EU 2021
1:08:35
Code Sync
Рет қаралды 19 М.
ElixirConf 2022 - Chris Keathley - SOLID code isn't flexible
38:08
Introducing Nx - José Valim | Lambda Days 2021
52:59
Code Sync
Рет қаралды 24 М.
黑天使遇到什么了?#short #angel #clown
00:34
Super Beauty team
Рет қаралды 31 МЛН