Domain Modeling Made Functional - Scott Wlaschin

NDC Conferences · 71K views · 2017 · 51:40

Open on YouTube

Functional programmingSoftware architecture & designProgramming language designtalk

Why Hacker News recommends it

HN people recommend it as an eye-opening talk whose domain-modeling ideas carry over to other languages and make a strong compiler feel like a coding partner.

What it is

Scott Wlaschin's NDC talk on using statically typed functional programming, F# in particular, to model a business domain. Types are used to represent the domain precisely and to encode business rules so that illegal states cannot be built, with the compiler acting as an instant unit test.

Recommended by 6 HN commenters across 7 different months, 2018 to 2024.

What Hacker News said

Strong rec markdoubleyou · 2018-09 · on “Try OCaml”

The "F# for fun and profit" site by Scott Wlaschin is a great jumping-off point: [LINK] I discovered it when I was reading a lot about domain driven design, and I stumbled upon a talk by the author that kind of blew my mind: "Domain Modeling Made Functional" [this video]

Strong rec BoiledCabbage · 2019-11 · on “Why functional programming matters (1990) [pdf]”

If anyone is looking for a really eye-opening video take a look at that this. "Domain Modeling Made Functional" It's applying Functional Programming to plain old Enterprise line of business apps in F#. The author argues why it's so much simpler, and simply walks through an example with cases. It's hard not to be persuaded. It leaves behind all of the lofty crazy maths you see in a lot of presentations of FP, and just shows how it's a simpler technique to solve real world problems. Domain Modeling Made Functional - [this video] (Watch on 1.25x speed) It's really impressive, and also surprising why more people promoting FP don't show it's tangible benefits and simplicity vs. the theoretical/abstrac

Recommends KurtMueller · 2020-02 · on “Math is an insurance policy”

Scott Wlaschin, author of F# for Fun and Profit, has an excellent talk on using F# (an ML language) for domain driven design and business development: [this video]

Recommends rashkov · 2020-08 · on “BuckleScript Is Rebranding”

Yep! This talk captures it pretty darn well: [this video] Besides that, the compiler becomes a partner in coding. - Refactoring things is no longer something I avoid, because the compiler will point out any unexpected places that interact with a given piece of code. - I can code for an hour without loading the app, and be reasonably certain that the code I'm writing will be more or less be correct. Overall, I feel like the compiler does the double-checking and second-guessing that I was always doing in the back of my head, which gives some peace of mind and frees me up to focus on the actual task.

Recommends carapace · 2020-12 · on “Write code. Not too much. Mostly functions.”

I like this talk: "Domain Modeling Made Functional" by Scott Wlaschin [this video] He's working in F# but the concepts map. There's a fascinating book "Data Model Patterns: A Metadata Map" by David C. Hay that's pretty much a Pattern Language or catalog for data models. You can just implement the subset of Hay's patterns that make sense for your application.

Recommends carapace · 2021-01 · on “Haskell is a Bad Programming Language (2020)”

In re: Haskell's goodness or badness, compare and contrast with, say, PHP (crap language with wild success.) Or Prolog (a stately Elven language with deep but obscure success.) Haskell is what it is. In re: types and data, FP is good for that. See e.g. "Domain Modeling Made Functional" by Scott Wlaschin ( [this video] ) it's about F# but the concepts apply cross-language. In re: FP PLs "done right" I submit Elm lang. I've been using Elm recently and it gets the job done. It's weird though: on the one hand, as a experienced professional it feels like a toy. The error messages feel almost insulting, like I'm being patronized. On the other hand, once I got over that (silly) reaction, they're awesome

Recommends agentultra · 2024-09 · on “Why Haskell?”

I adore Scott Wlaschin's work [0] -- that's where I picked up on the acronym, BLOBS! F# is super cool, I agree. [0] [this video]

Cites carapace · 2021-02 · on “One Way to Represent Things”

Take something like the design discipline Scott Wlaschin describes in this talk "Domain Modeling Made Functional"[1]. Combine it with a catalog of standard models like David Hay's "Data Model Patterns: A Metadata Map"[2] which is like a Pattern Language for data models combined with a catalog covering most (enterprise) needs. Specify the binary formats with Erlang "bit syntax"[3]. Eh? [1] [this video] [2] [LINK] [3] [LINK]