I haven't used either (yet). But as someone who wants to move away from JSON as a configuration format, ron doesn't, for me, offer much of a value proposition. And it's too tied to serde IMHO.
I also like KDL's optional type annotations (yes, I'm crazy that way.).
May I suggest you try to learn how to use the rust toolchain directly first?
The error message looks informative to me. What part of this line did you not get?
either src/lib.rs, src/main.rs, a [lib] section, or [[bin]] section must be present
I think you're tying yourself too close to VSCode. Reading this Cargo guide is a minimal requirement. And you should learn how to use cargo (the command), at least for basic operations. This is not hard. If anything, it's much simpler than those bloated and opaque editor/IDE setups.
I don't know, and I don't want to get personal. But that's usually a sign of someone who doesn't even code (at non-trivial levels at least), and thinks programming languages are like sport clubs, developers are like players contracted to play for one and only one club, and every person in the internet gantry need to, for some reason, pick one club (and one club only) to be a fanboy of. Some people even center their whole personality around such fanboyism, and maybe even venture into fanaticism.
So each X vs Y language discussion in the mind of such a person is a pre-game or a pre-season discussion, where the game or season is an imaginary competition such people fully concoct in their minds, a competition that X or Y will eventually and decidedly "win".
Maybe that was an exaggeration on my part. Some junior developers probably fall into these traps too, although one might expect, or maybe hope, that their view wouldn't be that detached from reality.
I'm hoping to finally finish and send out a delayed new release for one of my older and mature CLI tools this weekend. It's written in C btw 😄
I hope that someone in the 40 comments i don't have time to read right now has pointed out that the premise of OP is flawed for the simple reason that Rust hit v1.0 in 2015, while Zig is still nowhere near that milestone in 2024.
So we are not even talking about the same "future" period from the start.
So, no need to get to the second false premise in OP, which is limiting a "future" period to one successful dominating language only. Nor is there a need to go beyond these premises and discuss actual language details/features.
Not only that. We don't just "inject" raw strings with the syn/quote duality. Stringified or not, the token tree will be parse-checked into the expected syn type before being used in generated code.
So the distinction is both wrong and irrelevant. This is what I meant by wrong on multiple levels/layers 😉
Maybe a good idea for a post. But the amount of reaches required makes this icky.
Pretending people write:
rust
let Ok(x) = read_input() else { return Err(Error) };
instead of
rust
let x = read_input().map_err(|_| ...)?;
Pretending people write:
rust
const x: &str = "...";
instead of
rust
const X: &str = "...";
Pretending there exist people who have such knowledge of rust macros hygiene, ident namespaces, etc, but somehow don't know about how macro code expands (the "shock" about the compile error).
Maybe there is a reason after all why almost no one (maybe no one, period) was ever in that situation.
Bringing vimperator/pentadactyl back! That would be the dream.
Anyway, last time I tested it (~3 weeks ago), servo was not very usable still with the few websites I tried. Hopefully it gets, at least partway, there in a few months.
make new() give you a fully valid and usable struct value.
or use a builder (you can call it something else like Partial/Incomplete/whatever) struct so you can't accidentally do anything without a fully initialized value.
Maybe you should also use substructs that hold some of the info.
The best "support" you can get is support from upstreams directly (I'm involved in both sides of that equation). But upstreams will often only "support" you when you 1. run the latest stable version 2. the upstream source code wasn't patched willy-nilly by the packager (your distro).
So the best desktop linux experience comes with using rolling distro that gives you such packages, with Arch being the most prominent example.
The acquired knowledge that argues stability and tells you otherwise is a meme.
I haven't used either (yet). But as someone who wants to move away from JSON as a configuration format,
rondoesn't, for me, offer much of a value proposition. And it's too tied to serde IMHO.I also like KDL's optional type annotations (yes, I'm crazy that way.).