I am actually enthusiastic about Darklang

I have been engaged on Darklang for a bit over 2 years, and I am actually enthusiastic about it. I am posting this together with a status update that I wrote for the Darklang weblog. It is in all probability finest to learn that first, for context.
This publish is supposed to be much less formal – simply pondering out loud about one thing I am considering. In it, I:
I like software program
My earliest reminiscences of computer systems contain my dad – surrounded by displays, computer systems, and books, nerding out.
The story goes that in ~1998 after I was 6, the 2 of us had been residing in a trailer in central Pennsylvania, and he had simply gained some cash playing in Atlantic Metropolis. With that money, he instantly splurged it on all on that tools and books, got down to be taught as a lot as he may.
All through my life, I’ve seen him construct a powerful profession in software program and databases, rapidly transferring on up as he deliberately and joyously pursued that world, in its earlier days.
He had real ardour for all of it, and as I grew I gained that zeal as effectively. It usually appeared that his hobbies – computer systems, chemistry, woodworking, electronics, R/C autos, and so forth – had been the first supply of his pleasure, and he wasn’t positive what to make of the remaining. Whereas he wasn’t at all times ‘there’ to speak about life at massive, he would at all times be accessible for some software program BS chat. So, that is the place we aligned, and the place so a lot of our conversations went. Not less than we may at all times discuss software program.
I grew to like software program. I used it, wrote it in my spare time associated to hobbies, traded software program to skip quizzes and initiatives, bought USB sticks of software program to classmates in highschool, and so forth. It grew to become this natural ardour, a part of my life.
So, I obtained my first tech internship, doing internet dev for my college. After which moved on to work on a scheduling app someplace else, and HR/Payroll software program, and training software program, and ecomm software program, and so forth.
Together with the love of software program got here a rising connection between that world and my father. The 2 matters grew to become more and more entwined, and I might be excited to have one thing to speak to him about after a workday. “Oh, I have been engaged on this cool API that (blah blah),” or “ugh you must see this monstrosity of a saved process this fool at work wrote.”
In some unspecified time in the future, I assume doing software program for a day job wasn’t sufficient, and I began going to and talking at conferences and native person teams for enjoyable. My first time attending a significant convention was TechEd in New Orleans – my dad took me with him for my twenty first birthday. Anyway, every time I obtained considering varied technical issues, I signed myself as much as discuss them, and traveled as a lot as wanted simply to seek out of us who would hear. For some time, I critically entertained turning into a Microsoft “technical evangelist” or another type of developer advocacy.
I particularly cherished the F# group, hosted an F# podcast for some time, and ended up talking on the subject at fairly a couple of person teams, together with a couple of conferences. Throughout one in all my F# talks, I ended up assembly my now-wife, Olya – discuss a nerdy “meet cute.”
All that to say, my profession has at all times introduced me pleasure, and I’ve had extra “software program vitality,” bleeding till late hours within the night. “Software program nerd” was an enormous a part of my self-identity.
My dad died, and I burnt out
On the finish of 2018, my dad handed away, considerably instantly, considerably anticipated, positively tragically.
I used to be misplaced – I spent the following yr choosing up the items of a life, promoting his stuff, and scraping by at work (thanks, Locai, for supporting me throughout that point).
With that loss of life, my worldview of software program felt bizarre, as if 40% of my ‘software program mind’ had simply been deleted. The eagerness was gone, the work was slowed, I ended giving talks, and usually wasn’t positive if I even cared about software program. Possibly that sounds dramatic, however on the time it felt like a really actual wrestle and concern to me.
Or, perhaps I simply wanted a couple of years to cope with grief and logistics.
I first regarded into Darklang in Nov 2020
The Darklang workforce had just announced that they had been porting their backend from OCaml to F#, and as a fan of each, that basically caught my consideration – are they constructing a cloud-native “F#,” in F#?
Naturally, I posted it to my then-work Slack channel and began digging in.

I ended up taking part in with it for a bit, finding out its source, and imagining what it may be. For the primary time in a couple of years, some tech actually caught my consideration.
A number of months later, I requested Paul (the founder) if he’d be as much as file an episode of WTF#, which we recorded, however I by no means ended up publishing. (I felt like I did a nasty job within the interview, and could not salvage the recording…)
I continued to make use of Darklang the place I may, principally for passion initiatives, together with a couple of one-off makes use of at work.

Finally, although, my pleasure light a bit. As I felt a lot of Darklang’s limitations, it grew to become only a instrument I might use the place its ache factors weren’t too noticeable – after studying the place these had been.
I joined the Darklang workforce ~2 years in the past
Three years into that post-trauma melancholy, a yr after that preliminary Darklang nerd-out, I obtained an e-mail from Arc. It is a job board I had signed up for years prior, and this randomly confirmed up in my inbox:


This was a neat shock. On the time, I used to be nonetheless feeling fairly burnt out at work – earlier than my dad’s loss of life, I had set a tempo for myself, of how a lot software program I can produce. And since his loss of life, I felt so a lot slower at every part, like I could not examine to that ‘previous productiveness.’ So, a job hop was tempting – perhaps a change of surroundings would assist.
In any case, the job appeared actually fascinating. Cloud stuff, F# kinda language, written in F#/ReScript, absolutely distant, fairly async, Paul appeared cool, and I believed within the product.
So, I pinged Paul, utilized, and began porting Darklang’s HTTP Client functions from OCaml to F#, as an interview venture. A bit later, I formally left my job to work on Darklang.
It has been enjoyable
It has been a bit over 2 years since I joined Darklang full-time, and I’ve discovered quite a bit.
Engaged on dev instruments has allowed me to nerd out quite a bit
There are various issues I’ve discovered engaged on Darklang that I’ve had no expertise with earlier than: ReScript, OCaml, interpreters, parsers, WASM and Blazor, Figma, language server innards, writing VS Code extensions, a bunch of terminal/CLI stuff, GCP, terraform, and so forth.
I get to nerd out about software program day by day. Not simply software program – a programming language and setting, like those I’ve cherished earlier than, and I can level it within the instructions I choose.
Possibly I am feeling what each geek has felt after they wrote a programming language. However I feel there’s one thing particular right here.
In any case, I feel I’ve discovered extra about software program prior to now ~2 years than within the earlier a number of jobs.
As a software program nerd, I am actually excited by the product
I actively resent most issues between code and software program. I simply need to mannequin issues in code and stroll away, with out ready for compilations, dancing with git, or sitting round hoping CI does not fail.
Darklang solves for these issues and extra – no matter Darklang (the corporate)’s success, I plan to be a super-user of the product long-term, utilizing it for web sites, APIs, CLIs, and managing my life.
I like working within the open
All of our code and communications are within the open, in Discord and on GitHub.
I really feel like this gives a reasonably neat public strain. Even when nobody is wanting, I am going to really feel responsible if I take dangerous shortcuts in code, and this has led to me being extra disciplined than I would normally be.
As a pleasant bonus, if/when I’ve to search for a job subsequent, I can level to all of my Darklang PRs to offer a perspective on the work I can get finished.
As of two months in the past, I have been operating Darklang
At this level, the Darklang workforce consists of Paul (the founder), myself (Stachu), and Feriel. As of the beginning of the yr, Paul has stepped away to give attention to Tech for Palestine. Whereas targeted on TFP, he continues to behave as an advisor for Darklang as a lot as he has the capability for. Since that time, I’ve taken over relating to the day-to-day operations of Darklang, and steering the ship.
A number of days after Paul and I mentioned that transition, I set a couple of objectives to steer in the direction of, with a “two months in” checkpoint (that is now!) in thoughts.

I am fairly proud of the progress we have made on all of these objectives:
- “Self-updating, downloadable exe on main platforms”
We have now shipped our CLI runtime’s “exe,” and it really works and self-updates effectively! That mentioned, we nonetheless should work by one subject associated to Mac help, and we have to briefly circle again to help Home windows. - “Weblog posts out” (…)
As of at present, I might depend that as successful! - “Notion -> Github and usually tidy product org”
We used to have greater than 200 unorganized GitHub points, and a large number of many paperwork in Notion. Tremendous unapproachable to anybody outdoors of our workforce. Now we’re at ~50 Issues, all of that are comparatively clear and approachable, and I am nonetheless slowly trimming down the mess in Notion. - “First rate expertise enhancing native
.darkish
scripts”
To this point the editor (VS Code extension) is fairly minimal, supporting syntax highlighting, primary diagnostics, and code execution. I would not say it is a “respectable” expertise but, but it surely needs to be in a couple of weeks. - “READMEs and such present an affordable on-ramp to contrib on darklang-next”
Till a month in the past, we hadn’t actually up to date our READMEs in any respect prior to now yr. I’ve made some good progress right here lately, however there’s nonetheless work to be finished to be extra accessible to contributors.
Most of my expertise has been strictly as a software program engineer, with out a lot of a voice when it comes to product route. Now, instantly, I’ve to optimize for one thing a bit totally different – I’ve to zoom out a bit, specializing in the entire product, its roadmap, and our customers. I have been having fun with it – in any case, spending the previous 2 months organizing work towards releasing these weblog posts has been enjoyable.
This is a peek into the manic expertise of me making an attempt to make sense of the previous yr’s progress, to put in writing these two posts:
It has been a bit powerful to stability all of the product work towards dev work, but it surely’s nonetheless fairly contemporary and suppose I am going to get right into a rhythm finally.
Wildly dreaming of Darklang’s future
This is what I need out of Darklang. It typically does not align with Darklang (the corporate)’s objectives, and it has been a enjoyable and irritating factor, making an attempt to withstand my needs in favor of Darklang’s success and sustainability.
The status update paired with this publish higher represents the near-term priories we’ll perform, however I have been itching for a spot to dream about Darklang extra wildly. Please do not interpret this as any kind of formal roadmap.
First off, let’s assume that every one the baseline expertise for writing code in Darklang is accomplished and stabilized, reaching a degree the place I can port all of my scripts and cloud apps to it. There’s an excessive amount of to cowl there, and I’ve addressed a lot of it within the different publish, so let’s give attention to the extra adventurous prospects.
I will save a bunch of $ and complications by porting my ‘static’ websites to Darklang
I’ve a couple of ‘static’ web sites that I am paying practically $700/yr for. They are not making me cash, and I am probably not actively engaged on any of them. I obtained bold in the future, labored on some facet venture, hosted it, deserted it, and now I’ve a bunch of stuff to cope with. And repeat, yearly or two.
Particularly, I am bored with paying for Ghost, Hearth, and AWS.
In a month or so, I will save myself a whole lot of complications and cash by porting the related websites to Darklang. I’ve a couple of issues with the famous instruments:
- they don’t seem to be notably enjoyable/good to make use of – in the event that they had been, perhaps that’d compensate for the opposite factors.
- they’re managed outdoors of my regular dev world, and every of them require me studying one other new factor. Since I solely entry every instrument as soon as each few months, I find yourself having to be taught the factor once more every time.
- I am unable to customise them practically as a lot as I need – in the end, I need complete management of how my web sites feel and look.
Principally, the prices are too excessive for me to justify. $661/yr for a weblog (Ghost – $228/2yr), a podcast (hearth – $19/mo), and one other easy static web site (hosted on AWS – $26.6/mo, for causes). It is laborious to justify these prices – I barely replace the websites, and I doubt any of them are getting a lot site visitors (I ought to test). I guess I am not alone, although – absolutely different devs have facet initiatives that simply sit, accumulating mud and recurring charges.
I might prefer to help a broad panorama of enhancing environments
To this point, we have simply been constructing a VS Code extension that helps enhancing Darklang code. This extension is powered by an LSP-compliant language server, written in Darklang.
Sooner or later, I might prefer to help further LSP-compliant editors, akin to Vim and Zed.
Moreover, our VS Code extension ought to finally be usable wholly inside your browser. Think about the next: if you wish to edit immediately within the cloud, your expertise is easy – head to a vscode.dev-like website at a URL like darklang.io/editor, log in, edit your code, and also you’re finished – your cloud or CLI app is modified, and your workforce can decide up the place you left off, instantly. (this needs to be roughly equal to updating one thing in Darklang-classic at present – no installs, simply log in and code)
Lastly, it might be good to finally convey again a structured editor, like Fluid we had in Darklang-classic. When it labored, it was very nice. This project and this post make me suppose it would not be that laborious to arrange, as soon as our language’s grammar stabilizes a bit.
I need to write stunning, trendy CLI apps in Darklang
I lately got a terminal emulator working on my reMarkable e-ink tablet, and instantly I need to reside within the terminal as a lot as doable.

So, I have been diving deeper into the terminal world – studying extra core Linux stuff, working towards tmux, and daring to enter Vim. I am imagining a future the place I write and run Darklang code on this little eInk pill, wherever I’m going, residing my life in CLIs.
Not solely do I need to write Darklang code on my reMarkable, I additionally need to create stunning terminal-based UIs, in Darklang, to be run on my rM. Up to now few months, I have been impressed by initiatives akin to Charm and gui.cs, which offer roughly what I am on the lookout for. I feel we will do that in Darklang in some unspecified time in the future.
Get again into AI, and see the place it matches inside Darklang
Circling again to some extra urgent, practical work – over the previous few months, Darklang has been approaching a degree the place we will begin integrating AI the place it is sensible. Again in Feb-June 2023, we did a couple of experiments for a way AI and Darklang would possibly match collectively. I am wanting ahead to slowly revisiting these concepts as Darklang stabilizes.
First, there’s the apparent – use AI to put in writing Darklang code, as Copilot and Cursor have proven to be very highly effective. Resulting from Darklang’s options being so interconnected, we’re positioned to offer a lot of helpful structured data within the context window, moreover permitting our customers to enhance what knowledge is included.
Individually, we need to empower our customers to leverage AI of their Darklang applications, utilizing prompts, brokers, and related AI counterparts.
Extra broadly, we’re wanting on the entire AI panorama, together with options offered by langchain. A lot of this could match effectively inside Darklang, given our tight suggestions loop and the meta-level entry of customers’ code that we avail.
I might prefer to kind quite a bit much less, powered by AI and voice-based controls
A number of months in the past, I stumbled upon Serenade, a instrument that permits builders to code with their voice. Whereas I discovered the expertise a bit restricted for now, I feel there’s a whole lot of potential for voice-controlled pc utilization, for code-writing and past.
I additionally noticed this talk about Cursorless, which is in an identical house however feels extra like verbal Vim instructions, with totally different modes that you simply swap between, in speech.
I feel these merchandise are an awesome begin to what might be fully hands-free software program improvement, powered partly by AI. In a really perfect world, I think about attaching a lapel microphone to my jacket, placing bluetooth earbuds in, and strolling round speaking to an AI-powered counterpart that is enhancing code with me, working by all of it. Often I am going to stroll over to a display to kind a couple of characters, or get visible clarification on what the counterpart is speaking about.
Miscellaneous Concepts
The concepts above would possibly take a bit to get to, however I am assured we may accomplish all of them given sufficient time, and I’ve some reasonably-solid concepts of how we get there. Another concepts are a bit fuzzier – I am going to shut out this part with some free pondering.
A number of months in the past, I learn Geoffrey Litt’s writings (1, 2) on “malleable software program” – software program that you would be able to change, based mostly in your wants, as a person. I feel there’s a whole lot of room for this as AI evolves, particularly inside Darklang, given its cohesive nature and tight suggestions / dev loop. This skill to edit the top program may apply very effectively to CLIs, in addition to the language server that powers the enhancing expertise.
I have been moving into dwelling automation a bit these days – I guess a Darklang server operating on my native community may present a really safe and tidy setup on this house.
Lastly, essentially the most bold, absurdist imaginative and prescient: by combining the beforehand talked about potential futures of Darklang, I want to flip this web site (stachu.web) into some kind of a highly-customized cross-platform working system, constructed with Darklang, to handle my life and supply a public web site. I’ve used software program to empower myself in lots of facets of my life – weight coaching, meal prep, journaling, and so forth. Centrally managing this all inside “one factor” that I can absolutely customise and entry all over the place is a few kind of dream, and I feel it is inside attain. I think about these ambitions considerably align with Geoffrey Litt’s ideas on malleable software and “bring your own client,” in addition to maybe James’ mysterious CLI project. They positively align with this sentiment: “The web was once ✨ enjoyable✨. I bear in mind visiting my buddy’s web sites. They had been ugly and quirky and … had been a labor of affection and a medium of self-expression.” The imaginative and prescient here’s a bit fuzzy, however I will be working in the direction of it, step-by-step.
Broadly talking, my purpose is to make use of Darklang for as a lot of my improvement as turns into affordable. I predict that the majority of my code will probably be written in Darklang in a yr, anyway.
Observe Alongside!
In the event you’re considering following progress on Darklang,
- be a part of the Darklang community Discord!
- subscribe to the email newsletters, or comply with Darklang on GitHub, Twitter, Mastodon, YouTube, Reddit, or Twitch
- comply with me on GitHub, Twitter, or YouTube
- subscribe to my future posts, under
- ping me at hi there @ this area – I might love to talk about Darklang, incl. on any podcast