notes blog about

2021-11-22

Modern applications

Should be fully modern. Adding modern components alongside of legacy systems introduces significantly higher (operational and security) risk and complexity. Instead of simplifying you triple the complexity => multiple systems, languages and integrations. Rewrite in Go has fewer risks from long term perspective.

Must adapt to business needs => service oriented APIs that are

Why should I be using Golang

Simplicity

Everything should be made as simple as possible, but not simpler. – Albert Einstein

Learnability and usage

Large and mature ecosystem

Security

Realatively new, built with safety and security in mind (this is not true of languages that are 20+ year old - it made sense in the pre Internet era).

70% of serious security bugs related to memory safety. Go has automating memory management (GC with low latency). Memory-safe by default. Type-safe polymorphism.

Right (latest) encryptions and protocols.

Minimal dependecies. “Efforts to target popular code registries like Node Package Manager (NPM) JavaScript registry, PyPI, and RubyGems have become commonplace and a new frontier for an array of attacks.” – https://thehackernews.com/2021/11/11-malicious-pypi-python-libraries.html

Tamper-evident dependency chain.

Single binary.

Supports distroless containers.

Performance

Cloud native language

You can build performant and secure APIs using just Go standard library (including production ready web server).

Go’s application structure mirrors architecture of services-oriented systems. One pattern at every level.

Composition over inheritance.

Sources/more