Skip to content
0:00 / 0:00

#cats#spire#library-design

Principles for Modular, Functional, Approachable Libraries — Erik Osheim

Scala World

5.9K subscribers • 13 videos on Hallway

YouTube
  • Recommended by 2 people: 1 in engineering communities and 1 curated list.
  • Presented by Erik Osheim

Advanced. Deep dive for people who know the field.

7.5K views11 years ago2 recommendations

Software designProgramming languagesScalaFunctional programmingSoftware architecture

Erik Osheim discusses key principles and design goals for building modular, functional, and approachable libraries in Scala.

Scala stands for “scalable language” and was designed to be able to grow and evolve. One look at the Scala ecosystem shows that this goal has been successful — many people have been excited to make Scala their own, and to extend the state of the art in all directions, based on their needs, principles, and whimsy. This Cambrian explosion of expressiveness has brought with it a wide variety of idioms, conventions, strategies, preferences, and designs. Some of these are purely stylistic, others are critically-important, and it is not always clear which are which. Given this massive possibility space, what is a library author to do? Starting with a few key principles and design goals, this talk takes a holistic look at designing useful, efficient, and reliable libraries, with the goal of supporting a coherent ecosystem around functional programming in Scala. Cats and Algebra will be used as two real-world examples of libraries that are designed with these goals in mind, and with similar (but not identical) constraints.

Why it's here

2 people recommend this

What people say. Recommended as a great talk on functional programming principles and library design in Scala.

programming-talkscurated list on GitHubRecommends

Under “Scala”

Principles for Modular, Functional, Approachable Libraries 01:32:44 by **Erik Osheim** (2015)

u/morazowin r/scala • Recommends

On “How much functional is enough?”

> Is it because I don't have the basic in functional programming? Is there a book or sth that teaches me this part I'm missing? Erik Osheim gave really nice talk in Scala World 2015, here. Maybe this is Scala only, there is no certain principles for learning FP in Scala, it is ad hoc way of learning.