|
73 | 73 | } |
74 | 74 | ◊meetups{ |
75 | 75 |
|
| 76 | + ◊meetup[#:title "07.06.26"]{ |
| 77 | + ◊par{ |
| 78 | + The next meetup will take place on the 07.06.26 at the ◊link["https://itdesign.de/"]{itdesign office}, Friedrichstraße 12. |
| 79 | + } |
| 80 | + ◊div[#:class "mx-2 my-4 sm:text-lg leading-relaxed"]{ |
| 81 | + ◊orga{18:45 Doors open & Welcome} |
| 82 | + ◊p[#:class ""]{◊span[#:class "font-medium"]{A Tour of Polarity} (Tim)} |
| 83 | + ◊abstract{ |
| 84 | + ◊p[#:class "my-2"]{ |
| 85 | + There is a fundamental difference between how we structure programs in object-oriented and functional programming. |
| 86 | + In object-oriented programming, we model our domain using interfaces and classes, with methods defining the behavior of objects. |
| 87 | + In functional programming, we model our domain using algebraic data types and define their behavior through functions that pattern match on them. |
| 88 | + This design choice directly affects the extensibility of a program: |
| 89 | + adding new data variants is easy in the object-oriented style, while adding new operations is easy in the functional style. |
| 90 | + This trade-off is known as the expression problem. |
| 91 | + } |
| 92 | + |
| 93 | + ◊p[#:class "my-2"]{ |
| 94 | + Modern programming languages are typically multi-paradigm, combining features from both traditions. |
| 95 | + However, they rarely support both styles equally well. |
| 96 | + Which representation to prefer is therefore not only a question of the problem domain, but also a question of language support. |
| 97 | + Can we get the best of both worlds? |
| 98 | + } |
| 99 | + |
| 100 | + ◊p[#:class "my-2"]{ |
| 101 | + In this talk, we will study this question through the lens of Polarity, a research programming language with symmetric support for both functional and object-oriented program decomposition. |
| 102 | + Because Polarity is dependently typed, we can also use its type system to statically ensure important properties of our programs. |
| 103 | + We will consider how the choice of programming style affects not only extensibility, but also the way such properties are stated and verified. |
| 104 | + } |
| 105 | + } |
| 106 | + ◊orga{Food, talking, coding, whatever} |
| 107 | + ◊orga{22.00 End} |
| 108 | + } |
| 109 | + } |
| 110 | +
|
76 | 111 | ◊meetup[#:title "11.03.26"]{ |
77 | 112 | ◊par{ |
78 | | - The next meetup will take place on the 11.03.26 at the ◊link["https://itdesign.de/"]{itdesign office}, Friedrichstraße 12. |
| 113 | + This meetup took place on the 11.03.26 at the ◊link["https://itdesign.de/"]{itdesign office}, Friedrichstraße 12. |
79 | 114 | } |
80 | 115 | ◊div[#:class "mx-2 my-4 sm:text-lg leading-relaxed"]{ |
81 | 116 | ◊orga{18:45 Doors open & Welcome} |
|
92 | 127 |
|
93 | 128 | ◊meetup[#:title "28.01.26"]{ |
94 | 129 | ◊par{ |
95 | | - This meetup took take place on the 28.01.26 at the ◊link["https://itdesign.de/"]{itdesign office}, Friedrichstraße 12. |
| 130 | + This meetup took place on the 28.01.26 at the ◊link["https://itdesign.de/"]{itdesign office}, Friedrichstraße 12. |
96 | 131 | } |
97 | 132 | ◊div[#:class "mx-2 my-4 sm:text-lg leading-relaxed"]{ |
98 | 133 | ◊orga{18:45 Doors open & Welcome} |
|
0 commit comments