One problem that I noticed, which may become a serious issue in the future, is that a lot of libraries add abstractions via macros. Macros don't always compose or debug well. I had some experiences getting errors in my macros that had extremely confusing debug messages, often pointing to files that didn't exist. Hopefully there will be a trend of moving back to plain old functions. Nom for instance has converted its combinators into regular functions, which I like a lot.
I'd love love love for there to be a language that gets in between Rust and TypeScript. It'd have the strictness over mutability like Rust, but the GC of JS/TS. It wouldn't have 3+ string types. It'd have enum variants and pattern matching but maybe not macros. Gleam is pretty close!
Hey man big fan! Honestly it’s just having it run in the browser, which I understand isn’t a goal of Gleam. If Gleam had a webassembly target (and maybe a little easier mutability :p), I’d definitely love to use it in my web apps.
Web assembly and running in the browser are both long term goals of Gleam! Right now the focus is on Erlang, but once we have a good enough experience there one thing I'm going to explore is different compilation targets so that Gleam can be applied to a wider range of problem spaces and constraint sets.
> I'd love love love for there to be a language that gets in between Rust and TypeScript.
I am really really keen on developing something like this, along with an optional linear type system. I think this would be a cool project for my thesis but also I have a lot on my plate already.
I really really wanted ReasonML to work but they’ve been dragging their feet on good async primitives and nicer interop. It’s also very frustrating and confusing to deal with the inconsistencies of OCaml, Bucklescript and Reason/ReScript.
I don’t mean to criticize too harshly; it’s a great ecosystem that I really want to use. It’s just not at the point where using it seems like the pragmatic, effective decision
One problem that I noticed, which may become a serious issue in the future, is that a lot of libraries add abstractions via macros. Macros don't always compose or debug well. I had some experiences getting errors in my macros that had extremely confusing debug messages, often pointing to files that didn't exist. Hopefully there will be a trend of moving back to plain old functions. Nom for instance has converted its combinators into regular functions, which I like a lot.
I'd love love love for there to be a language that gets in between Rust and TypeScript. It'd have the strictness over mutability like Rust, but the GC of JS/TS. It wouldn't have 3+ string types. It'd have enum variants and pattern matching but maybe not macros. Gleam is pretty close!