Why Go and Not Rust?

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • IOC-golang

    一款服务于 Go 开发者的依赖注入框架,方便搭建任何 Go 应用。 A Golang depenedency injection framework, helps developers to build any go application.

  • It looks like IoC frameworks do exist for Go (https://github.com/alibaba/IOC-golang for example). I'm sure the True Gosman would not use this but it exists nonetheless. It looks like there are some heretics in the community - how shall we exile these vile peoples?

  • kubectl

    Issue tracker and mirror of kubectl code

  • > context.Background() is typically only used when one doesn’t care about the result. If you did care about the result, you should be passing the parent context to preserve the circuit breaker timeout in case the operation takes too long.

    Not necessarily. You would use context.Background in a test situation. It's also commonly used for short-lived applications like a CLI invocation. You can see kubectl uses context.Background quite a lot: https://github.com/kubernetes/kubectl/search?q=context.backg...

    > I think the level of pain you experience from mutable references in Rust depends on if you’re coming from an OOP or FP background. I have a FP background and so the patterns I use to build code already greatly restrict mutation. You can usually change code that updates data immutably (creating a new copy of it) with mutable code in rust because the control flow of your program already involves passing that new version back to the caller which also satisfies the borrow checker in most situations.

    There has to be a better solution to needlessly copying data.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • FrameworkBenchmarks

    Source for the TechEmpower Framework Benchmarks project

  • I don't think I have ever seen a benchmark that concludes this. I think the best conclusion is that Go, C# and Java perform roughly the same - which makes sense since they are basically all the same thing. As you say, you could write a Go version which would be equally fast.

    Here is another showing Go under-performing both Java and C# by a bit. Benchmarks may not be perfect but better than conjecture.

    https://www.techempower.com/benchmarks/#section=data-r21

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts