Go Language: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 7: Line 7:
* [[Go_Language_Modularization|Go Language | Modularization]]
* [[Go_Language_Modularization|Go Language | Modularization]]
* [[Go_Language_Object_Oriented_Programming|Go Language | Object Oriented Programming]]
* [[Go_Language_Object_Oriented_Programming|Go Language | Object Oriented Programming]]
* [[Go_Language_Concurrency|Go Language | Concurrency]]


=Overview=
=Overview=

Revision as of 22:50, 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

TO DEPLETE and MERGE into THIS DOCUMENT

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