Let me share some of my "adventures" this past year. It may not give you concrete ideas, but perhaps it will trigger others.
One small tool I use everyday is an application to read from a Markdown file containing my activities and to summarize how I spend my time. (Perhaps not the best time card tool, but it meets my needs and allows me to "play" with different implementations.)
At the beginning of the year, I had implemented this tool using ClojureScript running on `node`. It worked, and I learned, but then I also wanted to try out a Clojure implementation. This implementation did not require many code changes, but involved different tooling and libraries because it ran on the JVM. And the start up time seemed much longer than even my Ruby and Python implementations. So I wanted to try using ClojureCLR.
A long, long time ago, I ran ClojureCLR using a plugin or Visual Studio; however, this was no longer available (and my preferred tools are the JetBrains tools).
I eventually found `lein-clr`. This was not such a terrible tool, but required, as you pointed out, running Java to perform tasks on Windows, and, if I remember correctly, it was not at all obvious how to build a stand-alone executable. Additionally, I could not access anything from the NuGet ecosystem. Finally, because the tool has not been updated since 2015, I had to discover some "adjustments" to make everything work.
I continued searching and eventually found a GitHub project called `camp` (
https://github.com/cbilson/Camp). This project, even though it was old (again, last changed in 2015), appeared to have the goals and implementation that "fit" into the Windows development ecosystem. Unfortunately, its age "bit me" with discovering "adjustments" to make it work with the latest (1.8.x) release of ClojureCLR. Worst of all, and I will grant that I am not really a NuGet expert (just working from Visual Studio and Rider spoils one terribly), I discovered that some change occurred accessing NuGet so that I was unable to access the latest NuGet libraries and so was "stuck" with "pure Clojure." Finally, I recently had space problems with my older laptop. To address these issues, I removed all binary files from my "personal projects" directory. This action freed space on my disk, but I "lost" all my knowledge of how to recreate an executable using Camp. I am sure I can get it back, but this will require probably finding another free weekend (Ha!).
I contrast this experience with recent experience with Elixir. Although overkill, I again used this task summary project as the vehicle to learn Elixir. As you can imagine, creating an executable pretty much just worked. (I recall the need to discover one "adjustment" to build an executable that differed from the "Programming Elixir >= 1.6" book.) Granted, Elixir has all packages in
hex.pm; that is, a single ecosystem, but one aspect of development that the Elixir community has gotten right is creating an ecosystem to do the tasks that developers need to do.
My hope would be that, just like I can conditionally compile code targeting ClojureScript and Clojure, I would be able to use the `deps-and-cli` tooling to both leverage the newer Clojure documentation, but also to access the rich ecosystem available from NuGet (and perhaps Packet) to compile native executables using "native" (NuGet) packages to access Windows libraries targeting .NET.
Hope this provides some specifics both of the pain (probably even more well-known to you) and the vision.
Thanks, again, for all your hard work.
P.S. Probably a well-worn question, but how can I help?