Course: Learning GO

A collection of go basic fundamentals, syntax and concepts.

Table of contents

Lesson: Fundamentals

GO

  • multi purpose

Characteristics

  • Strong static type system
  • C-Inspired syntax
  • Compiled
  • Multi-paradigm
  • Garbage-collected
  • Fast
  • Single binary compilation

Timeline

  • 2007: start of the project
  • 2009: Publically announced
  • 2012: Go 1.0 released
  • 2023: Go 1.20 released

Go 2.0 will be a different language, developed using the experiences of GO 1.x

Values and Philosophy

  • Simplicity
  • Language that know the existance of network requests and concurrency execution
  • Library-free experience for: strings, network, compression, file management, testing
  • Cross-platform
  • Backwards Compatibility
  • Powerful Command Line Interface

Tools

  • GO
  • VS code
  • Go plugins for VS code

Multi-platform

  • It can generate executable binary files for different platforms and operating systems.
  • It can compile to WebAssembly(WASM)
  • It can transpile to Frontend JavaScript(GopherJS)

Common Use Cases

  • Web services
  • Web applications
  • DevOps
  • Desktop UI
  • Machine Learning

Language Types

Developers write code in Then ship

Interpreted languages -> Source Code (JS)
Intermediate Compiled Languages -> Bytecode (Java)
Compiled languages -> Machine Code (GO)