1. 5
  1. 4

    Congrats on another release.

    I didn’t realize that Dark was not a total/pure language. But the change to short-circuiting Boolean operators would indicate that the order of evaluation is important. Is there documentation on this design choice?

    1. 4


      The design goal is for darklang to be simple to write in and think about. We are mostly pure/immutable because we think this makes it really simple to reason about what happens in your program (vs say OO), but we also support imperative actions (such as DB::set or HttpClient::post), because we think those are the simplest ways to accomplish those for the developer. Similar to OCaml/F# in that respect.

      Probably the piece where I discuss this in most detail is on the Future of Coding podcast, where we took a deep dive into it: https://futureofcoding.org/episodes/043.html

    2. 2

      Paul - Glad to see your continued progress. I’m a huge believer in the importance of the problems you set out to solve, and I’m rooting for you. Wishing you the best with Darklang :)

      There are a few really innovative takes to solving some of these problems. I liked the integration of the tooling and the language that Darklang took early on. I also really like the Ballerina orchestration focus. There’s a lot of complexity out there that needs to be slain, so there’s going to be a big opportunity if you can give people a compelling solution to even just some slice of all that unnecessary complexity.