Top all-time · #6178
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.
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?
- Patterns of Functional Programming: Functional Core – Imperative Shell4 people · 4 mentions · first linked 2019-09-23
- Codata in action, or how to connect FP and OOP2 people · 2 mentions · first linked 2019-05-25
- Sensible Path to Microservices2 people · 2 mentions · first linked 2019-06-25
- Using TypeScript to make invalid states irrepresentable2 people · 2 mentions · first linked 2019-07-08
What Hacker News says?
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?”Submitted Codata in action, or how to connect FP and OOP as a story · 100 points
HN discussionLocation: 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)”Submitted The Rule of Seven: how to overload the brain of a programmer for no good reason as a story · 61 points
HN discussionMore 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”Submitted Typechecking state transitions in a React/Redux app as a story · 10 points
HN discussionwhile 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”Submitted Types as an Afterthought as a story · 3 points
HN discussionMy 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”Submitted Using TypeScript to make invalid states irrepresentable as a story · 3 points
HN discussion~~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”Submitted Common Advanced React/Redux Mistakes as a story · 2 points
HN discussionYou 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?”Submitted Common Intermediate React/Redux Mistakes as a story · 2 points
HN discussionThanks 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”Submitted Common Beginner React/Redux Mistakes as a story · 2 points
HN discussionSEEKING 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)”Submitted Code Equivalences from the Little Prover as a story · 2 points
HN discussionI 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”Submitted Dependent Types in TypeScript as a story · 2 points
HN discussionSubmitted Type Families in TypeScript as a story · 2 points
HN discussionSubmitted Improving Your React with TypeScript ADTs as a story · 2 points
HN discussionSubmitted Sensible Path to Microservices as a story · 2 points
HN discussionSubmitted Patterns of Functional Programming: Functional Core – Imperative Shell as a story · 2 points
HN discussionSubmitted Plutus Smart Contracts: Pay $10 in Ada as a story · 2 points
HN discussionSubmitted Patterns of Functional Programming: Functional Core – Imperative Shell as a story · 1 points
HN discussionSubmitted Patterns of Functional Programming: Functional Core – Imperative Shell as a story · 1 points
HN discussionSubmitted Type Families in TypeScript as a story · 1 points
HN discussionSubmitted Constructing a Generic Data Loader Component with Good Typechecking as a story · 1 points
HN discussionSubmitted Using TypeScript to make invalid states irrepresentable as a story · 1 points
HN discussion