Skip to content
HomeVideos
AllLongsCategoriesPlaylists
BooksBlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K

    Functional architecture - The pits of success - Mark Seemann

    NDC Conferences

    5 HN recommenders · recommended in 10 months, 2018–2025

    YouTube

    1:00:10 · 152K views · Aug 26, 2016

    Mark Seemann argues that functional programming naturally yields many of the best practices object-oriented developers learn painfully. He shows how functional architecture leads to a pit of success, with a pure core and impure shell.

    Recommended as a practical demonstration of how functional thinking improves design without going off the deep end.

    Software Engineering & LanguagesSoftware architecture & designFunctional programming
    1. 51:40
      Domain Modeling Made Functional - Scott WlaschinNDC Conferences71K views • 9 years ago
    2. 46:09
      Why Isn't Functional Programming the Norm? – Richard FeldmanMetosin1.6M views • 7 years ago
    3. 1:02:26
      Solving Problems the Clojure Way - Rafal DittwaldClojure/north87K views • 7 years ago
    4. 1:05:51
      The Functional Programmer's Toolkit - Scott WlaschinNDC Conferences79K views • 7 years ago
    5. 1:07:10
      Brian Beckman: Don't fear the Monadjasonofthel33t415K views • 13 years ago
    6. 34:55
      "Outperforming Imperative with Pure Functional Languages" by Richard FeldmanStrange Loop Conference98K views • 5 years ago
    7. 36:42
      Bottom Up vs Top Down Design in Clojure - Mark BastianClojureTV29K views • 10 years ago
    8. 44:35
      Object-Oriented Programming is BadBrian Will2.6M views • 10 years ago
    9. 45:55
      Ruby Conf 12 - Boundaries by Gary BernhardtConfreaks58K views • 13 years ago
    10. 1:14:52
      Effective Programs - 10 Years of Clojure - Rich HickeyClojureTV176K views • 9 years ago
    11. 1:16:14
      Spec-ulation Keynote - Rich HickeyClojureTV136K views • 9 years ago
    12. 1:29:27
      The Forgotten Art of Structured Programming - Kevlin Henney [C++ on Sea 2019]cpponsea245K views • 7 years ago
    13. 35:32
      Cheng Lou - On the Spectrum of Abstraction at react-europe 2016ReactEurope63K views • 10 years ago
    14. 49:54
      The Clean Architecture in PythonNext Day Video114K views • 12 years ago
    15. 59:50
      Leslie Lamport: Thinking Above the CodeMicrosoft Research403K views • 12 years ago
    16. 1:12:14
      Beyond functional programming: a taste of Verse. Simon Peyton Jones & Tim Sweeney | Lambda Days 2023Code Sync30K views • 3 years ago
    17. 1:01:39
      "Simple Made Easy" - Rich Hickey (2011)Strange Loop Conference220K views • 5 years ago
    18. 1:03:31
      Brian Goetz - Stewardship: the Sobering PartsClojureTV39K views • 11 years ago
    19. 44:36
      Hacker Way: Rethinking Web App Development at FacebookMeta Developers900K views • 12 years ago
    20. 1:10:05
      Are We There Yet - Rich HickeyZhang Jian24K views • 7 years ago

    10 comments from Hacker News

    1. @adamklOct 2020· in “A Theory of Software Architecture”

      I spend a lot of time thinking about these sorts of topics (actually, I just taught a 4 hour session yesterday that used most of the terms in this article), working with newer, less experienced developers, and trying to figure how to distill the essence of "architecture" down to something simple that everyone can start with. This is what I’ve started telling people: Use mostly functions, try to make most of them pure. I think that can get people (even new devs) 80% of the benefits (testability, composability, loose coupling, and the ability to reason about code) of more complicated, prescriptive architectures (Hexagonal, Onion, Ports & Adapters, Clean, etc) with a minimal amount of ramp up. Of course, this isn't the solution to every problem (it obviously depends on the domain you are working in, for me its webDev and backends), but I think maybe its a good way for people to start. Edit: Here is a great talk demonstrating that by following a simple functional approach, your code can naturally fall into a “pit of success”: this video

      Strongly recommendsView on HN
    2. @XunjinJul 2021· in “Habits of Expert Software Designers (2019)”

      His videos about functional programming are amazing (Mark Seemann). "Pit of success" is one of the best. this video

      Strongly recommendsView on HN
    3. @adamklJan 2021· in “Software engineering topics I changed my mind on”

      > So while FP is just another tool, it's also a framework for thinking that helps people make better choices I’ve been getting more into functional programming this past year (via Clojure, though my day-job is mostly JavaScript/TypeScript) and this is the big takeaway for me. Type theory and monads may have their place, but thinking about separating logic from side-effects is, I think, the most valuable aspect of functional programming. That is a thought process that you can apply in pretty much any language that will give you the biggest bang for your buck. Edit: Here’s some great examples of the benefits of functional thinking without going off the deep end. 1. Boundaries by Gary Bernhardt - [LINK] 2. Pits of Success by Mark Seemann - this video 3. Grokking Simplicity by Eric Normand - [LINK]

      RecommendsView on HN
    4. @pwmSep 2018· in “Functional core, imperative shell (2012)”

      The goal is that everything in the core is pure data types and functions. Now, depending on your problem domain, your core can be small or huge compared to the shell. Your question was all about IO/effects. They are impure and belong to the shell. If what you work on does mostly IO then you will have a lot of impure code lying around by definition. Still, the idea is that you should keep the amount of time spent in impure land minimal, ie. drop into pure structures/computation as soon as possible during program execution and only dip out of on occasions when you have to do IO. Here is a good talk about these ideas: this video

      RecommendsView on HN
    5. @kirseDec 2021· in “F# Good and Bad”

      Mark Seemann has a good talk on this called the "functional pits of success" -> this video Of all the languages I've used nothing is quite as fun as refactoring an F# app down to nothing. Expressive power is king in F# with the whole .NET ecosystem behind it.

      RecommendsView on HN