Fast and Fearless Evolution of Server-Side Web Applications
When evolving web applications, in most programming languages and frameworks, we risk introducing programming errors. Undefined values, parsing failures, broken links, invalid markup, and good old null pointers, are all things that can break our applications. Manually writing and maintaining tests to catch programming errors is a time consuming effort, and we would rather spend that time testing our application logic. This talk takes you on a whirlwind tour of mature technologies that offer static guarantees for modern web applications.
Finite-state machines? Your compiler wants in!
When modeling problem domains, we collect different possible states, legal transitions between states, and relevant data for each state. Finite-state machines emerge. To verify that programs are constructed correctly, and to have a living machine-verified documentation, we should let the compiler in on our trade secrets.
In this talk we will look at motivations and examples of encoding finite-state machines, using expressive type systems in functional languages.
The Power of Functional Programming and Static Type Systems in Server-Side Web Applications
- flatMap(Oslo), 2-3 May 2017, Oslo, Norway
- GOTO Nights CPH, February 22, 2017, Copenhagen, Denmark
- Kats Conf 2, February 18, 2017, Dublin, Ireland
Oden - A Functional Programming Language for the Go Ecosystem
- PolyConf 2016, Poznan, Poland
- Curry On 2016, Rome, Italy
This talk will introduce Oden, an experimental, statically typed, functional programming language being built for the Go ecosystem. We will look at how Oden aims to leverage the great features of Go — static linking, cross-compilation, goroutines, channels and the great set of libraries and tools — and enable higher-level abstractions, generics and a safer yet more flexible type system.
Designing and Building the Oden Programming Language
This first part of this talk will introduce Oden, an experimental, statically typed, functional programming language being built for the Go ecosystem. We will look at how Oden aims to leverage the great features of Go — static linking, cross-compilation, goroutines, channels and the great set of libraries and tools — and enable higher-level abstractions, generics and a safer yet more flexible type system.
The second part will delve more deeply into the implementation of the Oden compiler. Why was it first written in Racket and then rewritten in Haskell? What pros and cons are there in writing compilers in Haskell? We will look at how the type system can help us build safe and robust intermediate representations and transformations between them.