Work in progress: 181,232 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #6178

J

javiercasas.com

Personal blog · javiercasas.com/articlesprogrammingweb

javiercasas.com is a personal blog at javiercasas.com about programming and web. Since 2019, 13 different Hacker News readers have linked it 33 times, most often “Patterns of Functional Programming: Functional Core – Imperative Shell”. No feed was found, so read it on the site itself.

33mentions?
13HN people?
2019–2025first – last linked?
Links on Hacker News per year · peak 16 in 2019

Too few sampled comments (8) to say how often HN recommends it.?

Why HN links it

HN commenters link this blog's essays on functional programming and its relation to OOP, such as codata, the visitor pattern as Church encoding, and the functional core with imperative shell design.

Summarised by Claude from a sample of 8 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

Most-linked posts?

  1. Patterns of Functional Programming: Functional Core – Imperative Shell
    4 people · 4 mentions · first linked 2019-09-23
  2. Codata in action, or how to connect FP and OOP
    2 people · 2 mentions · first linked 2019-05-25
  3. Sensible Path to Microservices
    2 people · 2 mentions · first linked 2019-06-25
  4. Using TypeScript to make invalid states irrepresentable
    2 people · 2 mentions · first linked 2019-07-08

What Hacker News says?

  1. There is no such presumption that it's possible to have an exhaustive list of all the "verbs" you might want to use with a given "noun". In a C++ / Java / C# like language classes are open by default (even this creates some issues). The reasoning behind that is exactly the one that it's impossible to know all "verbs" upfront. On the other hand it's a fundamental concept in software engineering to define interfaces .…

    Comment linking /articles/codata-in-action

    on “What’s so great about functional programming anyway?”
  2. Submitted Codata in action, or how to connect FP and OOP as a story · 100 points

    HN discussion
  3. Location: Quito, Ecuador (GMT-5) Remote: Yes Willing to relocate: For the right opportunity Technologies: Fullstack Web Typed Functional Programming (Haskell, PureScript, React/Redux, TypeScript, JavaScript), Python/Django Web Development, PostgreSQL, DevOps (CircleCI, GitlabCI, Docker, docker-compose, Ansible) Résumé/CV: http://www.javiercasas.com/CV.pdf Email: javcasas@gmail.com Website: http://www.javiercasas.com…

    Comment linking /

    on “Ask HN: Who wants to be hired? (July 2019)”
  4. Submitted The Rule of Seven: how to overload the brain of a programmer for no good reason as a story · 61 points

    HN discussion
  5. More connections between FP and OOP: - Codata in action[0], FP emphasizes thinking about constructors, OOP emphasizes thinking about eliminators - Existential types[1], having higher-ranked types lets you express dynamic dispatch - Lenses[2], generalized getters, setters and traversals [0] https://www.javiercasas.com/articles/codata-in-action/ [1] https://wiki.haskell.org/Existential_type [2] https://www.schoolofhas…

    Comment linking /articles/codata-in-action/

    on “The visitor pattern is essentially the same thing as Church encoding”
  6. Submitted Typechecking state transitions in a React/Redux app as a story · 10 points

    HN discussion
  7. while you probably can do this with dependent types, i'd imagine GP means something along the lines of typescript's structural typing, i.e. const post = { id: 123, content: "...", published: true, } // TS infers the type of `post` to be an unnamed "map-ish" type: // { id: number, content: string, published: boolean } JS objects are map-like, and this one is "heterogenous" in that the values are of different types (u…

    Comment linking /articles/typescript-dependent-types

    on “Revisiting the principles of data-oriented programming”
  8. Submitted Types as an Afterthought as a story · 3 points

    HN discussion
  9. My ideal service layer has a functional core - easy to understand, easy to test. linked from the article: https://www.javiercasas.com/articles/functional-programming-...

    Comment linking /articles/functional-programming-patterns-functional-core-imperative-shell

    on “Functional Programming Self-Affirmations”
  10. Submitted Using TypeScript to make invalid states irrepresentable as a story · 3 points

    HN discussion
  11. ~~I can't tell if you're being sarcastic, but that's exactly what TFA does. But just to pull it out explicitly:~~ Edit: I think I misunderstood your point. You were asking for a similar kind of list as TFA from the other commenter which may not necessarily be the *same* 5 ideas Leaving the rest here in case it helps someone: 1. Parse, don’t validate https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-va... 2.…

    Comment linking /articles/functional-programming-patterns-functional-core-imperative-shell

    on “Functional Programming Self-Affirmations”
  12. Submitted Common Advanced React/Redux Mistakes as a story · 2 points

    HN discussion
  13. You should do whatever works for you! But, have you encountered the idea of "Functional core, imperative shell?" https://www.javiercasas.com/articles/functional-programming-...

    Comment linking /articles/functional-programming-patterns-functional-core-imperative-shell

    on “Who cares about functional programming?”
  14. Submitted Common Intermediate React/Redux Mistakes as a story · 2 points

    HN discussion
  15. zackmorris · 2025-03-24Recommends
    Thanks for taking the time to write this, it feels validating because what I said came from the school of hard knocks! I agree with everything you stated. And also very much appreciate the insight about the anti-pattern of using primitives to represent domain ideas. I hadn't considered that, because most of my day jobs have been about getting anything at all to work and putting out fires. I didn't know about Gary Be…

    Comment linking /articles/functional-programming-patterns-functional-core-imperative-shell/

    on “Component Simplicity”
  16. Submitted Common Beginner React/Redux Mistakes as a story · 2 points

    HN discussion
  17. SEEKING WORK - Remote only, based on Portugal Senior Software Engineer with more than 10 years of experience, and strong skills automating on the UKG ( https://www.ukg.com/ ) platform, looking to help enterprises manage better their HR systems. I do general software development, and I'm looking at more specific niches where my experience can provide better outcomes. Major technologies known: * JavaScript, TypeScript…

    Comment linking /CV.pdf

    on “Ask HN: Freelancer? Seeking freelancer? (November 2023)”
  18. Submitted Code Equivalences from the Little Prover as a story · 2 points

    HN discussion
  19. I don't know of any sane language that does not support interfaces. Type-classes are also just interfaces. Additionally quite some orthogonal concepts are mixed up here: Classes, inheritance, overriding, runtime types, patterns… In the end OO and FP are anyway the same thing at the core. You can mechanically translate one into the other: https://www.javiercasas.com/articles/codata-in-action

    Comment linking /articles/codata-in-action

    on “Idris: A Language for Type-Driven Development”
  20. Submitted Dependent Types in TypeScript as a story · 2 points

    HN discussion
  21. Submitted Type Families in TypeScript as a story · 2 points

    HN discussion
  22. Submitted Improving Your React with TypeScript ADTs as a story · 2 points

    HN discussion
  23. Submitted Sensible Path to Microservices as a story · 2 points

    HN discussion
  24. Submitted Patterns of Functional Programming: Functional Core – Imperative Shell as a story · 2 points

    HN discussion
  25. Submitted Plutus Smart Contracts: Pay $10 in Ada as a story · 2 points

    HN discussion
  26. Submitted Patterns of Functional Programming: Functional Core – Imperative Shell as a story · 1 points

    HN discussion
  27. Submitted Patterns of Functional Programming: Functional Core – Imperative Shell as a story · 1 points

    HN discussion
  28. Submitted Type Families in TypeScript as a story · 1 points

    HN discussion
  29. Submitted Constructing a Generic Data Loader Component with Good Typechecking as a story · 1 points

    HN discussion
  30. Submitted Using TypeScript to make invalid states irrepresentable as a story · 1 points

    HN discussion

Search all of HN for javiercasas.com

Linked by the same people?