9 comments

  • ramon1562 hours ago
    So many promises and claims in both the post and the README, yet I have no seen any evidence. I don&#x27;t want to nitpick things out because it doesn&#x27;t add much to the conversation, but it&#x27;s assuming a lot of things about me<p>&quot;the majority of developers don&#x27;t give a second thought to writing code with I&#x2F;O tangled in business logic&quot;<p>This is a very fuzzy intro<p>- &quot;the majority of developers dont do X&quot;, is something that needs to be easily verifyable<p>- &quot;writing code with I&#x2F;O tangled in business logic&quot; seems like just SoC, I doubt devs have never heard about this.<p>The solution is a library that adds a bunch of FP with... tests? Hard bugs require session replays, not FP. FP has nothing to do with &quot;reproducing bugs on your device&quot;. These seem like two things loosely wired together.<p>If you&#x27;re trying to make something alike Effect-TS, then sure, this looks like a cool library, but it took a while for me to get to that conclusion.<p>Also, the five AI generated articles provide little value to the conversation. They don&#x27;t even have a topic, other than you talking about your own library.
  • tcdent28 minutes ago
    The concept of developing on a system which does not closely mirror your production environment died with virtualization and containerization over a decade ago. You will experience unforeseen consequences if your development environment does not emulate your production environment as closely as possible.
  • dwroberts2 hours ago
    &gt; Testing without mocking<p>&gt; you can assert on what the code intends to do without executing any of it<p>is that not just bending the meaning of mocking? Nulling things out and not executing them is a form of mocking (and the default behaviour for mocks in most languages)
  • woutgaze1 hour ago
    I have the feeling that the author is really onto something: the explicit boundary between symbolic intent and real-world execution.<p>Type systems don’t cut it always, you sometimes need something in-between imperative code - which is hard to test all edge cases - and pure type system chasing. The sweet spot maybe lies in having a DSL (in this case &quot;building business mutations&quot;) and have good building blocks.
  • erispoe1 hour ago
    Why not just use Effect? <a href="https:&#x2F;&#x2F;effect.website&#x2F;" rel="nofollow">https:&#x2F;&#x2F;effect.website&#x2F;</a>
    • rirze1 hour ago
      He comments on this in the Hackernews post text:<p>&gt; Effect-TS is the full-featured option in this space and has a large ecosystem. Pure Effect offers a different tradeoff. It covers the 80% case: testable pipelines, dependency injection, retry, and OpenTelemetry hooks, all in under 1 KB with zero dependencies and no new vocabulary to learn. Effect-TS is a framework you build around. Pure Effect, on the other hand, is a pattern you drop into existing code.
  • indiv01 hour ago
    Been kicking around a similar idea in the back of my mind from the first moment &quot;functional core &#x2F; imperative shell&quot; [0] and &quot;sans-IO&quot; [1] infected my brain. I&#x27;ve been chasing that high ever since.<p>Unfortunately, whenever I try to apply this pattern 100%, I hit all kinds of walls: language isn&#x27;t expressive enough to support what I want; the amount of wiring&#x2F;glue to support it becomes a burden; the resulting code is spaghetti because the &quot;declaration of intent&quot; lives too far from &quot;implementation of the intent&quot;; &quot;oops I invented my Nth leaky DSL&quot;; and so on and so on. Part of the problem is certainly my own capabilities as a developer as well.<p>I can&#x27;t help but fantasize about the platonic ideal of a &quot;perfect&quot; system where all that nasty evil I&#x2F;O is banished to the Shadow Realm and I can frolic in the <i>Fields of Idempotency and Reproduciblity</i> -- one of these days I&#x27;ll bite the bullet and try Haskell.<p>Nowadays I aim for 80% &quot;perfection&quot;, and only in the areas where it matters. In addition, instead of effects I rely more on &quot;reduce complexity as much as possible&quot;, which is (frustratingly) much harder to put into practice than &quot;use X library&#x2F;pattern to solve all problems&quot;. Though if I can model the system as a state machine and proptest it [2], that usually gets me where I want to be.<p>Though my soul feels like I just woke up from a dream where I was perfectly content, and now I&#x27;m back in the real world with all of its imperfections [3].<p>---<p>As for your specific project, it <i>heavily</i> reminds me of the Crux [4] model, which is itself inspired by Elm [5]. Also Flawless [6]. I wish you the best of luck with it.<p>[0]: <a href="https:&#x2F;&#x2F;www.destroyallsoftware.com&#x2F;screencasts&#x2F;catalog&#x2F;functional-core-imperative-shell" rel="nofollow">https:&#x2F;&#x2F;www.destroyallsoftware.com&#x2F;screencasts&#x2F;catalog&#x2F;funct...</a><p>[1]: <a href="https:&#x2F;&#x2F;fasterthanli.me&#x2F;articles&#x2F;the-case-for-sans-io" rel="nofollow">https:&#x2F;&#x2F;fasterthanli.me&#x2F;articles&#x2F;the-case-for-sans-io</a><p>[2]: <a href="https:&#x2F;&#x2F;sled.rs&#x2F;simulation.html" rel="nofollow">https:&#x2F;&#x2F;sled.rs&#x2F;simulation.html</a><p>[3]: <a href="https:&#x2F;&#x2F;xkcd.com&#x2F;224&#x2F;" rel="nofollow">https:&#x2F;&#x2F;xkcd.com&#x2F;224&#x2F;</a><p>[4]: <a href="https:&#x2F;&#x2F;github.com&#x2F;redbadger&#x2F;crux#architectural-overview" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;redbadger&#x2F;crux#architectural-overview</a><p>[5]: <a href="https:&#x2F;&#x2F;guide.elm-lang.org&#x2F;architecture&#x2F;" rel="nofollow">https:&#x2F;&#x2F;guide.elm-lang.org&#x2F;architecture&#x2F;</a><p>[6]: <a href="https:&#x2F;&#x2F;flawless.dev&#x2F;" rel="nofollow">https:&#x2F;&#x2F;flawless.dev&#x2F;</a>
  • toozitax49 minutes ago
    [dead]
  • thenewtoolsmith55 minutes ago
    [dead]