Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
rastrian
searching Neon…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
5 ms
·
1.
▲
by
rastrian
4mo ago
A multi-server Discord control plane that exposes Discord operations as MCP tools, resources, and prompts for AI clients, with a built-in conversational AI agent.
2.
▲
by
rastrian
7mo ago
TLDR: Pragmatic argument against outsourcing taste to tech influencers. Includes a framework for choosing communities/mentors, plus a critique of naive “build in public” and why private iteration + strong support/contingency beats
3.
▲
by
rastrian
9mo ago
Take a look at Algebraic Effects concept, I think you would like it.
4.
▲
by
rastrian
9mo ago
I really don’t like the argument calling “industrial usage” just because a main company or FAANG aren’t using the tech stack, but arbitrary under the hood are doing basically the same stuff with internal toolings that should be entirely und
5.
▲
by
rastrian
9mo ago
heisen-valves are a perfect comparison, thank you.
6.
▲
by
rastrian
9mo ago
Mostly “boring” stuff where the type system pays rent fast: - Domain/state machines (payments/fulfillment-style workflows): modeling states + transitions so “impossible” states literally can’t be represented. - Parsers/DSLs &
7.
▲
by
rastrian
9mo ago
You can get most of the “ADT/state-machine reliability” benefits in Python by combining static checking + tagged unions + boundary validation: Model states as tagged unions (Union + Literal + dataclass(frozen=True)), use match (Py3.10+
8.
▲
by
rastrian
9mo ago
I think we mostly agree for the nullable case in a sound-enough type system: if Foo | null is tracked precisely and the compiler forces a check before x.bar, then yes, you’re not “remembering” checks manually, the compiler is. Two places wh
9.
▲
by
rastrian
9mo ago
lmao
10.
▲
by
rastrian
9mo ago
I mostly agree: for many businesses, a big SaaS outage and a payments outage can look similar in impact (lost revenue, interrupted operations). It’s not “life or death” most of the time. The reason money-related systems often get singled ou
11.
▲
by
rastrian
9mo ago
I think your Option/String example is a real-world tradeoff, but it’s not a slam-dunk “untagged > tagged.” For API evolution, T | null can be a pragmatic “relax/strengthen contract” knob with less mechanical churn than Option&l
12.
▲
by
rastrian
9mo ago
Yep, in practice a lot of orgs treat reliability as a cost center until an outage becomes a headline or a regulatory incident. I’ve seen the same tension in payments/banking: product pressure wins until the risk is visible. Part of why
13.
▲
by
rastrian
9mo ago
I’ve worked in Brazilian banking stacks that were literally FTP + spreadsheets for years. So yes, the ecosystem is often messy and protocols can be flaky. That’s exactly why I argue for stronger internal modeling: when the boundary is dirty
14.
▲
by
rastrian
9mo ago
I get why it reads like FP evangelism, but I don’t think it’s “ignoring decades of prior art.” I’m not claiming these ideas are exclusive to FP. I’m claiming FP ecosystems systematized a bundle of practices (ADT/state machines, exhaust
15.
▲
by
rastrian
9mo ago
I think you’re both pointing at the same tradeoff: “untagged” unions feel lighter, but you often pay it back in ad-hoc narrowing (shape checks/heuristics) and ambiguity once variants overlap. Tagged unions/ADTs make the discrimina
16.
▲
by
rastrian
9mo ago
Agree, I didn’t give testing enough space. A proper treatment would’ve doubled the post, so I’m writing a separate follow-up on testing. Pure functions/immutability help a lot because tests become representative and cheap. I’d only pus
17.
▲
by
rastrian
9mo ago
Agree on the economics. I’m not arguing for full formal proofs; I’m arguing for low-cost enforcement of invariants (ADTs/state machines/exhaustiveness) that makes refactors safer and prevents silent invalid states. Human processes
18.
▲
by
rastrian
9mo ago
Agreed, I conflated FP with “typed FP.” My claim is mainly about static types + ADTs/exhaustiveness improving refactors/review/tests. Racket can get FP benefits, but absent static typing you rely more on contracts/tests
19.
▲
by
rastrian
9mo ago
I get your point about ICFP drifting into “types, types, types.” I don’t think FP benefits are only static typing or immutability, pure-ish core/imperative shell, and explicit effects matter a lot even in dynamic languages. My angle wa
20.
▲
by
rastrian
9mo ago
I was searching for the Stefik article to argue here, thank you.
21.
▲
by
rastrian
9mo ago
Agree with the framing: in payments/telecom, reliability is often achieved via fault tolerance + reconciliation more than “perfect correctness.” My point is narrower: those mechanisms still benefit from making illegal transitions unrep
22.
▲
by
rastrian
9mo ago
100%. Types don’t replace fuzzing, property tests, chaos, or adversarial thinking. They just move one slice of bugs from runtime to compile time and make refactors safer. In hindsight I should have positioned types/ADTs as one layer in
23.
▲
by
rastrian
9mo ago
Fair pushback. I agree the title and a couple of lines overshoot. My intent isn’t “FP is a silver bullet” or “types replace operational reliability”
24.
▲
Functional programming and reliability: ADTs, safety, critical infrastructure
(blog.rastrian.dev)
158 points
by
rastrian
9mo ago
|
187 comments
25.
▲
Beyond the Nat: Cgnat, Bandwidth, and Practical Tunneling
(blog.rastrian.dev)
40 points
by
rastrian
9mo ago
|
21 comments
26.
▲
Not Everything Should Be Easy
(blog.rastrian.dev)
2 points
by
rastrian
9mo ago
|
0 comments
27.
▲
The Future of Software Engineering: Efficiency, Learning Velocity, Small Teams
(blog.rastrian.dev)
3 points
by
rastrian
9mo ago
|
0 comments