I built the first demo of Dark in Python, in about two weeks. A few months later when I started productizing it, I rebuilt it in OCaml. Back in 2017, when I was considering the language and platform to use for Dark, OCaml was extremely compelling:
I’ve been working recently on a benchmark, to try and see how to get the most performance from the Dark backend. I’ve reimplemented the core of Dark in various languages and web frameworks, notably in OCaml, F# and Rust.
As a reminder, Dark is a language and platform for building…
There was a wonderful post just now that I saw on HN as I was procrastinating writing this post. It was by Tim Bray, and it covered my favorite topic, which is just how batshit cloud services have gotten, this time Traffic Director on GCP. I don’t have anything more to say about this that you haven’t heard before, blah blah blah, complexity bad, blah blah, simplicity good.
Which leads me quite nicely into some clarity I’ve gotten over the last few weeks. After reducing the team down to just me, I spent the last month doing a lot of thinking, really trying to get my head around where Dark is, what I should be doing, priorities, etc.
I’m always interested in stories about Accidental Complexity — when you waste time dealing with the endless layers of tooling that’s required to make a web application today. I’m also super into using Observability (which I’ll call to ability to introspect live systems, though that’s not exactly right). Fortunately for these two hobbies, I caused a partial outage of one of our systems due to terrible Accidental Complexity, and solved it using some delightful Observability. It’s Story Time, gather round!
One of the things that makes Dark truly unique is what we call “Trace-driven development”. The best way to write a HTTP handler in Dark is to start by making a request to the non-existent handler, then:
using the 404s list to create the handler
using the actual trace value to see the output of your code as you type it.
On Friday we had our first contributor meetup. Thirteen folks showed up to a zoom call to discuss how to contribute to Dark.
Obviously, the point of the conversation was to get to know each other. We’re all hanging out in the #contributors channel, but the room isn’t super chatty so talking in person (or whatever counts for in-person on Zoom) is helpful to get to know one another.
One of the big topics was how to do bigger projects.