What “sucks” about Golang?

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

Our great sponsors
  • SonarLint - Clean code begins in your IDE with SonarLint
  • ONLYOFFICE ONLYOFFICE Docs — document collaboration in your environment
  • InfluxDB - Access the most powerful time series database as a service
  • CodiumAI - TestGPT | Generating meaningful tests for busy devs
  • 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.

  • SonarLint

    Clean code begins in your IDE with SonarLint. Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.

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

  • ONLYOFFICE

    ONLYOFFICE Docs — document collaboration in your environment. Powerful document editing and collaboration in your app or environment. Ultimate security, API and 30+ ready connectors, SaaS or on-premises

  • go-octokit

    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