CodeMesh 2017 - Takeaways
here are some key takeaways from this year’s codemesh conference. i must say i never had such an intense conference, with lot of fascinating and mind-blowing sessions which bred lots of new or old ideas in my mind. thanks a lot to the organisers and the amazing speakers which made this event memorable.
- How to apply simple machine learning techniques and speculative execution to optimise repeated executions of programs or program fragments, caching pre-computed execution path to skip some computations,
- Using session types to design applicative protocols as finite state machines enforced by the type system hence statically verified, with some encoding examples in haskel and idris,
- An answer to the classical fizzbuzz interview test where one the y combinator and church numerals from scratch using a pure untyped λ-calculus, in the spirit of the now famous piece by Aphyr Typing the technical interview,
- Why it is actually a good idea to model
IOas a monad even in an impure language like scala, as it gives the compiler the capability to verify and enforce proper use of side effects statically,
- How messy and imprecise the Computer Science Metanotation, a language which is ubiquitous in PLT research papers to define formal systems, has become over the past 30 or 40 years,
- How to write (potentially infinite) towers of interpreters, with reflection and reification capabilities between each layer, and collapse the resulting tower in a single-pass compiler. This year’s favorite, ex aequo with Tomas Petricek’s talk,
- Whence does Haskell come and what’s the history of Miranda, where one learns there was no λ-calculus nor first-class functions in McCarthy’s LISP and the Programming Languages’ history is far from the linear reconstruction we often are told it is,
- Would aliens be able to understand λ-calculus which amounts to asking classical philosophy of mathematics question: Are mathematical objects discovered from the the land of eternal truths they are part of or invented hence subjects to historical and sociological contingencies. With fascinating references to works by Lakatos and Lakoff on the history and sociology of mathematics,
- What benefits one can reap from abstracting concurrent IOs with Haxl, a great library developed at Facebook by Simon Marlow,
- How to derive implementations of functions from examples thanks to Barliman and logic programming with miniKanren,
- The use of the concept of Feedback Loops and Feedback Structures to design and develop complex self-regulated distributed systems.