3 ms·
> the very least--the overwhelming positivity (by HN standards -- even considering the typical Rust bias As someone who has the "Rust bias", I feel like it's a
by saghm 3y ago
> the very least--the overwhelming positivity (by HN standards -- even considering the typical Rust bias
As someone who has the "Rust bias", I feel like it's a bit of an open secret that a _lot_ of Rust developers don't actually need the extreme low-level performance that it offers and use it more because of the quality of life things (including some of the features in Borgo, but also tooling like cargo, rustdoc, etc.). I've said for a while that a language that focused on this sort of "developer experience" but used a GC to be a bit more flexible would probably be enough for a large portion of Rust developers, and pretty much everyone Rust developer I've talked to agrees with this (even if they aren't in the portion that would use this).
It's also pretty common for me to see people asking why someone would use a low-level, C++ language for something like web development, and I think the explanation is pretty similar; people like a lot of what Rust has to offer besides the low-level C++-like semantics, but there isn't something higher-level that offers enough of those features yet. Probably the language that would come closest to this is OCaml, but stuff like the documentation and "multiple preludes" are exactly the kind of thing that add friction to getting up and running, which is something Rust has invested a lot of time into reducing.
- tubthumper8 3y ago> I've said for a while that a language that focused on this sort of "developer experience" but used a GC to be a bit more flexible would probably be enough for a large portion of Rust developers Why then would Go not fit? It prioritizes developer experience (documentation, automatic formatting, etc.) with a GC
- shpongled 3y agoLack of sum types and not much support for a functional programming style. I am totally uninterested in any modern programming languages (e.g. post 1980s) that only allows me to express AND (product types, e.g. records, tuples) but not OR (sum types)
- tubthumper8 3y agoOh I agree on those but it seemed the person I was replying to was primarily interested in developer experience (tooling, documentation, etc.), not language features. So I was curious about what was missing from the Go developer experience because that's one thing that's generally regarded as a strength
- saghm 3y agoThose are only examples of things that I think would be necessary; I didn't intend for them to be treated as comprehensive. There are a decent number of things in Go that make me feel like my day-to-day experience of working in it is not a priority compared to a design goal of simplicity for its own sake. For example, when debugging code I often will comment and uncomment portions of it as I run it repeatedly to try to narrow down exactly where something unexpected is happening, and having unused variables be a hard error makes this tedious. Is it possible to work around this by manually "using" the variables I comment out in a way that does nothing? Of course. Would it be more "proper" to use a debugger rather than doing something hackish on my own? Possibly! But is this an actual thing that I expect a large number of other developers also do in pretty much every other language without issue? I strongly suspect the answer is yes. Things like this might be small, but they add up, and at the end of the day, the frustrations that I encounter when writing Rust are smaller and less frequent than the ones I've had writing Go. Obviously stuff like this is subjective, and there's no way to make a language that satisfies everyone. I think there's empirical evidence that there's an audience for a language that fits the niche I describe that Go doesn't fill though.
- tubthumper8 3y agoYeah, and the common/un-comment workflow isn't just for debugging but also for trying new things out to see what works. You're right that judging on the engagement of this post and others in the past there must be a big appetite for a language somewhat like Go but with fundamental differences. It's really quite interesting how Go seems to be so polarizing, they really nailed some things and really missed on others.
- deergomoo 3y ago> but there isn't something higher-level that offers enough of those features yet I think Swift would tick most of those boxes, it’s a shame it hasn’t really picked up outside Apple-land. It can be a horribly complex language, but day-to-day it’s very nice to write.
- damnever 3y agoSwift doesn't have explicit namespaces, which is a real inconvenience.
- saghm 3y agoYeah, I think would be a good potential candidate if it had a full commitment to support on Linux and Windows, but unless that happens at some point, I don't think I'd consider it over Rust for anything other than Apple-specific development, which isn't something I do
- willhslade 3y agoIs this .Net?