Episode 63


Details
Interesting Language Enhancements in Dotty/Scala 3
Arnold deVos
A tour of some selected new language features that can be seen in the latest dotty RC (and will probably be in scala 3). To make it interesting we will try to use these features in example code. Hopefully some of their raison d'être will emerge.
--------------
Compile Time Parsing
Mark Hopkins
Sometimes, rather than constructing a domain object in code, it's clearer to specify it as YAML or JSON. But at the same time, we don't want to give up the compile-time guarantees we get from a programming language, as this would expose us to runtime errors if we made a mistake in the YAML/JSON.
Can we write in another language and then check it at compile time? We can, through the power of macros!
I'll show how to build useful compiler checking of arbitrary Strings. Key ingredients will be: (a) macros that produce macros (b) string interpolators, and (c) compile-time evaluation.
--------------
Why "Names Don't Matter" Matters.
Jed Wesley-Smith
Increasingly, people are popping up stating the controversial opinion that names don't matter. To most programmers this statement is obviously untrue, as naming is seen as difficult, and critical to semantic expression and communication in their code. To make matters worse, these same people demand fidelity to obscure and difficult names from mathematics, leading to charges of hypocrisy – if names don't matter, why do they care we all use any particular ones?
We'll try and tease out these seeming contradictions. We'll look at why "names don't matter" is an important idea, and why its more obvious superficial interpretation is specious.

Episode 63