The bright future between immutability and aliasing restrictions

Istituto del software

Data: 2 Marzo 2023 / 16:30 - 17:30


Speaker: Dimi Racordon, Northeastern University, Boston

Looking on your right, you catch a glance of a colleague writing code in Haskell. Once again, you’re impressed by the confidence she has in the correctness of her code. When you met her, you thought she was just reckless. ‘Sooner or later, she’ll shoot herself in her foot, like all of us you told yourself. But your prediction never came true. 
‘Mutability is the root of evil!’ she often proclaims. It’s certainly true that the hardest bugs you’ve had to eliminate were the ones where you didn’t realize some mutation was happening behind your back. Besides, when you look at current trends in object-oriented languages, it seems as though your colleague might be right. Immutability looks popular in Javascript. You’ve heard some Java folks talk about immutable value types. Scala is a thing… Long story short, the idea is growing on you. The problem is, you’re writing performance-critical applications. Memory allocation and garbage collection are expensive and even though your colleague has shown you optimizing compilers can do wonders, you’ve still worried about their unpredictability. 
Looking on your right, you see another colleague tinkering with some Rust code. They’re quite passionated about this language and tried many times to talk you into switching from your beloved C++. After all, Rust does seem well-suited to your kind of work. But every time you tried, you found yourself exhausted after fighting the borrow checker. Maybe these lifetime annotations are the future of systems programming? The C++ community seems to think so. But the learning curve seems so steep! 
If only there were another way, one that gives you the benefits of functional programming and the performance guarantees of C++, but without the complexity costs of Rust…

Dimi Racordon is a researcher at Northeastern University, in the US. She got her Ph.D. in computer science at the University of Geneva, but only because she bribed her jury members with chocolate. She worked on model checking and developed efficient data structures to generate and explore large state spaces. She then studied logics and type systems while trying to find new ways to teach computer science. 
Since as long as she can remember, Dimi has always loved coding, but quickly realized she’s not so good at writing correct programs. So she thought she’d better write clever compilers to do it for her. Eventually, she developed a true passion for language design with a particular focus on type-based approaches to memory safety and program optimization. Now she works on answering research questions related to these topics and writes formal proofs for a living (but has yet to prove someone else reads them). 
Dimi likes generic programming, because it looks like math, and low-level programming languages, because she loves wasting time on premature optimization. Since she doesn’t like Haskell’s syntax, isn’t good enough to write C++, and thinks she’s too cool for Rust, she decided to focus her research on another programming language that fits in the middle. She says she’s ‘discovering’ a core calculus to build a ‘safe by default’ and ‘fast by definition’ language.

Chair: Carlo Alberto Furia

Location: online - join via the following link