Go Language: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 34: Line 34:
=Concurrency=
=Concurrency=
{{Internal|Go_Language_Concurrency|Concurrency}}
{{Internal|Go_Language_Concurrency|Concurrency}}
=Memory Management and Garbage Collection=
{{Internal|Go_Language_Memory_Management_and_Garbage_Collection|Memory Management and Garbage Collection}}


=TO DEPLETE and MERGE into THIS DOCUMENT=
=TO DEPLETE and MERGE into THIS DOCUMENT=

Revision as of 22:53, 14 August 2023

External

Internal

Overview

Go Language Specification document defines Go as a general-purpose compiled language designed with systems programming in mind. It is statically and strongly typed and garbage-collected and has explicit support for concurrent programming. Programs are constructed from packages, whose properties allow efficient management of dependencies. The existing implementations use a traditional compile/link model to generate executable binaries.

Go declarations can be read "naturally" from left to right, which makes it easy to read.

These are several reasons to use Go:

  • It compiles fast, and it runs fast
  • Concurrency is a fundamental part of the language
  • The standard library has almost everything one needs
  • It is a terse language and "feels" dynamically typed, but it compiles straight into machine code

Variables

Scoping

Type

To deplete Go Concepts - The Type System

Go is a strongly and statically typed language with no implicit conversions. This gives Go a stronger type safety than Java, which as implicit conversions, but the code reads more like Python, which has untyped variables.

Modularization

In Go, programs are constructed from packages. More details:

Go Modularization

Object Oriented Programming

Object Oriented Programming

Concurrency

Concurrency

Memory Management and Garbage Collection

Memory Management and Garbage Collection

TO DEPLETE and MERGE into THIS DOCUMENT

These are documents produced by the previous attempt. Process, merge into this document, and deplete: