What “sucks” about Golang?

This page summarizes the projects mentioned and recommended in the original post on /r/golang

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

    The Go programming language

    Currently it is encoded as null. This is a source of bugs in many non-theoretical cases (eg consumers of JSON APIs). There are many issues on Google about others falling into this pitfall so it is at least not uncommon. https://github.com/golang/go/issues/27589

  • Puts Debuggerer

    Ruby library for improved puts debugging, automatically displaying bonus useful information such as source line number and source code.

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

  • serde

    Serialization framework for Rust

    Rust's serde framework is great. Here's the example for json. And it supports 21 formats other than JSON.

  • optional

    Optional is a library of optional Go types (by markphelps)

    A quick google search finds this library - it mentions returning optionalT which to me implies it uses generics, but I can’t confirm it does as I haven’t learnt Go yet and don’t know the syntax!

  • ioccc-obfuscated-c-contest

    IOCCC International Obfuscated C code contest entries

    I honestly, truly, don't get why a lot of programmers get stuck on this "less code" and confusing obtuse syntax that some languages offer as features. Reminds me of the Obfuscated C contest from way back (which I guess is still ongoing here: https://www.ioccc.org/). I much prefer Go's simple straight forward, less complex code. No trickery or magic, just easy to read code. I'm not saying your example code uses any said magic, just that is a common refrain I hear a lot on the golang reddit (verbosity of Go, particularly around error handling, and how using this or that trick would result in less lines of code).

  • option-go

    A generic optional type library for golang like the rust option enum

    Here's one that uses generics, here's a more elaborate one.

  • go-optional

    A library that provides Go Generics friendly "optional" features.

    Here's one that uses generics, here's a more elaborate one.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

  • go-octokit

    Discontinued Simple Go wrapper for the GitHub API

    It’s archived for posterity. https://github.com/octokit/go-octokit

  • Clippy

    A bunch of lints to catch common mistakes and improve your Rust code. Book: https://doc.rust-lang.org/clippy/

    I wish Google would invest more in go vet so it could do many of the things for which we currently rely on hobby-level tools that are rarely matured and often abandoned. ESLint, Clippy, and even clang-tidy show how much more comprehensive and mature lint suites can be, despite Go being easier to analyze than those languages.

  • ESLint

    Find and fix problems in your JavaScript code.

    I wish Google would invest more in go vet so it could do many of the things for which we currently rely on hobby-level tools that are rarely matured and often abandoned. ESLint, Clippy, and even clang-tidy show how much more comprehensive and mature lint suites can be, despite Go being easier to analyze than those languages.

  • exhaustive

    Check exhaustiveness of switch statements of enum-like constants.

    there’s a linter for exhaustive matching: https://github.com/nishanths/exhaustive

  • gobetter

    GO Better - code generator for struct required fields

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