← Back to context

Comment by lpil

1 month ago

Multiple of such tools exist and have done for years. Serde isn’t a Rust-core project, and similarly the Gleam alternatives are not Gleam-core.

Rust has macros that make serde very convenient, which Gleam doesn't have.

Could you point to a solution that provides serde level of convenience?

Edit: The difference with generating code (like with Gleam) and having macros generate the code from a few tags is quite big. Small tweaks are immediately obvious in serde in Rust, but they drown in the noise in the complete serialization code like with the Gleam tools.

  • > Rust has macros that make serde very convenient, which Gleam doesn't have.

    To be fair, Rust's proc macros are only locally optimal:

    While they're great to use, they're only okay to program.

    Your proc-macro needs to live in another crate, and writing proc macros is difficult.

    Compare this to dependently typed languages og Zig's comptime: It should be easier to make derive(Serialize, Deserialize) as compile-time features inside the host language.

    When Gleam doesn't have Rust's derivation, it leaves for a future where this is solved even better.