Remix.run Logo
tschellenbach 17 hours ago

come to the land of no drama, no changes and always productive Go :)

__turbobrew__ 15 hours ago | parent | next [-]

I can tell you that the website for a very large company with billions in revenue has gone down several times due to nil pointer errors in golang.

I love golang and it is my language of choice but the type system still lets you shoot your foot off sometimes.

pdimitar 16 hours ago | parent | prev | next [-]

I have written no less than 20 hobby mini-projects with Go but it's hardly an alternative to Rust. They serve fairly different purposes. Sure you can write almost any project X with either language but most of the time Go or Rust would be a bad fit for project X and a near-perfect fit for project Y.

stackedinserter 16 hours ago | parent | next [-]

What kind of projects that you can realistically be involved in, fit Rust but not Go?

pdimitar 16 hours ago | parent [-]

Highly loaded network backbones come to mind. At one point almost every GC language starts to struggle.

I've written Rust services in financial companies and it maintained stable memory footprint and near-nonexistent higher P95 latency... for months without restarts.

throwaway2037 14 hours ago | parent [-]

Your second paragraph: I expect that this must be a microscopic part of their total source code footprint. Is the software used for (equity/futures/options) exchange connectivity? (Oh no, please don't tell me "crypto".) I cannot think of anything else that would warrant the investment in the 2020s.

pdimitar 4 hours ago | parent [-]

Depends what you mean by microscopic. If the entire project is a traffic forwarder, proxy, firewall-like, dispatcher / router etc. then that's the heart of the project and having the performance benefits of Rust there is absolutely crucial.

It was not only crypto. We're also talking telecom nodes and there are a lot of different protocols and needs around them (I was surprised how many, and some telecoms are finally waking up to the 21st century and started utilizing proper containerization and virtual networks to enforce compartmentalization / isolation / security).

On the broader topic: nowadays I default to Golang due to its better productivity and shorter dev iteration cycles, for what it's worth. However, there are projects where picking Golang over Rust would be irresponsible. Not the majority of all projects out there, absolutely, but there is an important subset that cannot be ignored.

PERSONAL NOTE: Sadly most of us will never work on those, and I am trying hard lately to change that for myself. Sick of web dev, I started hating it so much that I can do it extremely efficiently and almost with my eyes closed but I still can't forever ignore my needs; we are creative creatures and forcing ourselves to be assembly line workers only leads to spiritual and mental health death.

galleywest200 16 hours ago | parent | prev [-]

I was thinking about this earlier today. I decided, albeit probably in a manner way too naiive... use Go if you want to write an app and use Rust if you want to write a program.

pdimitar 16 hours ago | parent [-]

I don't have your context so I'm not sure what you mean but in general, it's rather easy to write a web backend with Go, yes. And Rust is a very good fit for many types of servers.

tail_exchange 17 hours ago | parent | prev | next [-]

I love Go, but they are not really interchangeable. If you do systems programming and you need a very low-level language, Go is not a good alternative. Though if we are talking about more high-level applications like web servers, then I totally agree.

TylerE 16 hours ago | parent [-]

I could argue that at least 90% of software does t need a very low level language.

goku12 14 hours ago | parent [-]

That 90% is moot if you're trying to replace C++. Rust is a better fit than Go. Granted that Go iteration times are better. But Rust is by no means just a low level language. The abstractions in Rust are fantastic. They feel very ergonomic and high level. I think the real problem with Rust is that many people can't come to terms with the borrow checker. It's whole another skill set to know what the BC is trying to achieve, how to solve BC errors and the alternatives available when you can't. Once you know that though, Rust feels very productive - even extremely helpful in resolving problems in advance.

TylerE 13 hours ago | parent [-]

Believe it or not it’s possible, even desirable, to use an appropriate solution to the problem at hand, rather than treating everything as a nail just because you’re find if your hammer.

goku12 12 hours ago | parent [-]

That argument is selectively and rather condescendingly applied to Rust far too often. In this particular context (both the parent comment and the article), that criticism should apply more to Go than to Rust. Besides, I don't understand the argument of asking everyone to learn a dozen different languages for an 'appropriate solution at hand' when the differences between them don't justify such effort. I don't dislike Go. But it's disingenuous to argue that Rust shouldn't be used where Go can be.

arccy 4 hours ago | parent [-]

perhaps it's applied to rust more often because rust evangelists are... louder.

neonsunset 15 hours ago | parent | prev [-]

Besides few areas, Go is a backwards language. I'd rather use F# or Kotlin. And for performance with GC escape hatch it's borderline impossible to beat C#.