dub: JSON, SDL, YAML, TOML, what color should we paint it ?

Bradley Chatha sealabjaster at gmail.com
Tue Feb 28 15:22:41 UTC 2023


On Tuesday, 28 February 2023 at 14:29:28 UTC, Mathias LANG wrote:
> Obviously such a change would not happen overnight, and would 
> need broad support from the community. Opinions ?

IMO JSON just needs to go. It has no purpose being used in dub 
for anything user-facing.

I do like SDL however it's a bit of a "dead end" language, so is 
definitely worth trying to move away from going forward.

TOML makes my eyes bleed and I don't understand at all how anyone 
likes it.

YAML is decent to mentally parse, but writing it can be a bit 
frustrating, especially if you don't have a schema setup in your 
code editor.

Considering dub is also a build system and not just a package 
manager, I wonder if we could take a note out of other build 
managers and use something stronger than basic config language. 
e.g. Meson has their own language; Bazel uses Starlark, CMake has 
abomination. If not instead embracing dub as a package manager, 
and another existing tool as a build system.

My personal pipe dream is that we'd use CUE: https://cuelang.org/ 
- however disregarding the relative complexity of a native D 
implementation, the language itself is still unstable (no v1 
release). I can dream though ;D

Another example are the likes of XMake that use Lua, though I am 
always skeptical about using a full language for build systems. 
(Side node: I've had ideas in the past that you could use 
something like Lua to define jobs/stages that could then be used 
from a declarative/config language to then describe the build.)

Considering the likes of rdmd existing, you could technically 
even just use D itself...

So ultimately is the discussion more "Which language should we 
use" or instead "What exactly do we want dub to do and be capable 
of?"


More information about the Digitalmars-d mailing list