The Power of Functional Programming and Static Type Systems in Server-Side Web Applications

Events

Abstract

Single-page web applications have been spreading like wildfire, with an endless amount of frameworks and libraries, and functional programming together with static types fueling the fire with great ideas like pure functions, monads, and strong type checking. But what happened to Progressive Enhancement? Some parts of our applications might require Javascript to function, but the majority could be built with ordinary links and forms. In this talk we will explore how we can build web applications using established web technology, and the power of functional programming and PureScript on the server-side, with strong correctness guarantees.

Oden - A Functional Programming Language for the Go Ecosystem

Events

Abstract

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

Events

Abstract

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.