Practical nil panic detection for Go

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

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.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • nilaway

    Static analysis tool to detect potential nil panics in Go code

  • We'd be interested in the general characteristics of the most common ones you are seeing. If you have a chance to file a couple issues (and haven't done so yet): https://github.com/uber-go/nilaway/issues

    We definitely have gotten some useful reports there already since the blog post!

    We are aware of a number of sources of false positives and actively trying to drive them down (prioritizing the patterns that are common in our codebase, but very much interested in making the tool useful to others too!).

    Some sources of false positives are fundamental (any non-trivial type system will forbid some programs which are otherwise safe in ways that can't be proven statically), others need complex in-development features for the tool to understand (e.g. contacts, such as "foo(...) returns nil iff its third argument is nil"), and some are just a matter of adding a library model or similar small change and we just haven't run into it ourselves.

  • go

    The Go programming language

  • You are wrong regardless: there is no such dogma. There are numerous ongoing proposals discussing how to accomplish this. You're welcome to contribute. It took me a minute to find these proposals, as examples:

    https://github.com/golang/go/issues/57644

    https://github.com/golang/go/issues/19412

    I interpret your comments as propagating FUD in bad faith.

  • 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
  • symbolicator

    Native Symbolication as a Service

  • - it entirely removes a class of discussion of "opinion" on style. Tabs or spaces? Import ordering? Alignment? Doesn't matter, use go fmt. It's built into the toolchain, everyone has it. Might it be slightly more optimal to do X? Sure, but there's no discussion here.

    - it hits that sweet spot between python and C - compilation is wicked fast, little to no app startup time, and runtime is closer to C than it is to python.

    - interfaces are great and allow for extensions of library types.

    - it's readable, not overly terse. Compared to rust, e.g. [0], anyone who has any programming experience can probably figure out most of the syntax.

    We've got a few internal services and things in Go,vanr we use them for onboarding. Most of my team have had PR's merged with bugfixes on their first day of work, even with no previous go experience. It lets us care about business logic from the get go.

    [0] https://github.com/getsentry/symbolicator/blob/master/crates...

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

  • Our experience upgrading from go v1.17 to v1.18 for generics

    2 projects | /r/golang | 20 Jul 2022
  • Go: the future encoding/json/v2 module

    2 projects | dev.to | 2 May 2024
  • Evolving the Go Standard Library with math/rand/v2

    2 projects | news.ycombinator.com | 1 May 2024
  • Microsoft Maintains Go Fork for FIPS 140-2 Support

    5 projects | news.ycombinator.com | 30 Apr 2024
  • How to use Retrieval Augmented Generation (RAG) for Go applications

    3 projects | dev.to | 28 Apr 2024