No video

Nicolas Rinaudo - When is an ADT not an ADT?

  Рет қаралды 1,487

Scala Days Conferences

Scala Days Conferences

Күн бұрын

Modeling data types is a critical aspect of programming: coming up with the right data representation can mean the difference between clear, efficient code, and an unholy mess of spaghetti code with tons of forgotten edge cases.
At the same time, there’s a fundamental tension between what’s commonly known as ““the OOP approach”” and ““the FP approach””, where the former introduces a tight coupling between data and behaviors, and the latter does the exact opposite.
In this talk, we explore both by attempting to represent and interpret a (very simple) programming language using ““the OOP approach,”” observing the pain points, and seeing what different set of properties we get by fixing them. By the time we’re done, we’ll have explored a large chunk of the design space, and learned lessons on the various tradeoffs one makes by choosing one approach over the other. Importantly, we try to stay away from oversimplifications such as FP good, OO bad. We hope to demonstrate that both approaches are interesting and valid, and choosing one should be a matter of context rather than religious belief.

Пікірлер: 3
@gerardbosch
@gerardbosch 10 ай бұрын
Hi anyone, I'd like to ask whether type classes would help to solve the problem of adding new terms, when using ADT-encoding? Thanks!
@avalagum7957
@avalagum7957 10 ай бұрын
Does it look wrong when we write `class Eq extends Exp`? I understand that we come to it because we can describe the equality in a binary tree. However, I don't think all the binary trees are about the same thing, i.e. it doesn't make sense to put a binary tree about A in a binary tree about B. If we agree with that, then we can avoid the complication of `Exp[...]` (but I guess that complication won't disappear, it will go somewhere else 🙂).
@controlflow89
@controlflow89 10 ай бұрын
Very very basic Expression Problem talk
Guillaume Martres - Polymorphic Function Types in Scala 3
40:14
Scala Days Conferences
Рет қаралды 917
Wojciech Mazur - Explaining Different Coroutine Flavours using Scala Native
37:16
Real Or Cake For $10,000
00:37
MrBeast
Рет қаралды 58 МЛН
나랑 아빠가 아이스크림 먹을 때
00:15
진영민yeongmin
Рет қаралды 14 МЛН
拉了好大一坨#斗罗大陆#唐三小舞#小丑
00:11
超凡蜘蛛
Рет қаралды 16 МЛН
Jan-Pieter van den Heuvel - Saving Christmas Using Scala
42:34
Scala Days Conferences
Рет қаралды 512
Martin Odersky - Scala's Role in the Programming Languages Ecosystem
45:53
Scala Days Conferences
Рет қаралды 11 М.
Nicolas Rinaudo-Much Ado About Testing
55:31
Scala World
Рет қаралды 1,8 М.
Nicolas Rinaudo THE DEBATABLY FREE MONAD Scalar Conference 2024
36:01
Maciej Gorywoda - The State of the IntelliJ Scala Plugin 2023
28:02
Scala Days Conferences
Рет қаралды 778
Paul Matthews - Sounds of Structure - Music Modelling with ADT's
42:26
Scala Days Conferences
Рет қаралды 769
Zainab Ali - Shaping Your Scala Community
55:39
Scala Days Conferences
Рет қаралды 277
Nicolas Stucki - Implementing a Macro
35:11
Scala Days Conferences
Рет қаралды 1,4 М.
Real Or Cake For $10,000
00:37
MrBeast
Рет қаралды 58 МЛН