Why use go over node?

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
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • SaaSHub - Software Alternatives and Reviews
  • validator

    :100:Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving

    This is where it gets spicy: I just don't get at all who ever though this struct-tag based validation library was a good idea https://github.com/go-playground/validator - and yet it's the most mainstream one. Try to implement your own type, you're up to register some global validation tag and repeat it every time you're using that type. I'm grateful https://github.com/go-ozzo/ozzo-validation exists, that's what I use. But it's still way behind the other things I mention, where in general, it's simply not possible to pass around an invalid struct - because it can't be built if it's invalid in the first place.

  • go-app

    A package to build progressive web apps with Go programming language and WebAssembly.

    Node is a pain in the ass to work, Go is not, at least in my experience. https://go-app.dev/ syntax is 1000x better than whatever you can code in Node IMHO.

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

  • htmx

    </> htmx - high power tools for HTML

    Your backend is perfectly capable of generating that DOM itself, it has the tools it needs right next to it, directly available without a round trip (database, authentication, third-party external REST interfaces) and you can couple that with https://htmx.org (or similar) to produce as SPA-y, dynamic-y front-end as you like, with the logic in one place (your backend), in a single programming language (instead of 2, with a crippled transport layer between them).

  • ozzo-validation

    An idiomatic Go (golang) validation package. Supports configurable and extensible validation rules (validators) using normal language constructs instead of error-prone struct tags.

    This is where it gets spicy: I just don't get at all who ever though this struct-tag based validation library was a good idea https://github.com/go-playground/validator - and yet it's the most mainstream one. Try to implement your own type, you're up to register some global validation tag and repeat it every time you're using that type. I'm grateful https://github.com/go-ozzo/ozzo-validation exists, that's what I use. But it's still way behind the other things I mention, where in general, it's simply not possible to pass around an invalid struct - because it can't be built if it's invalid in the first place.

  • go

    The Go programming language

    And one of the biggest proposals to fix it hasn't had any comments in two years...

  • node-worker-threads-vs-goroutines

    an evaluation of go vs node for concurrency.

    that leads to the noticeable performance results once comparing goroutines and node workers https://github.com/danielbh/node-worker-threads-vs-goroutines

  • serverless-graphql

    Serverless GraphQL Examples for AWS AppSync and Apollo

    I know. You're confusing "serverless" as a concept with the serverless framework which is what the original comment referred to

  • InfluxDB

    Build time-series-based applications quickly and at scale.. InfluxDB is the Time Series Platform where developers build real-time applications for analytics, IoT and cloud-native services. Easy to start, it is available in the cloud or on-premises.

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