Go Language: Difference between revisions
Line 9: | Line 9: | ||
=Overview= | =Overview= | ||
Go Language Specification document defines Go as a general-purpose compiled language designed with systems programming in mind. It is [[#Type|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 Language Specification document defines Go as a general-purpose compiled language designed with systems programming in mind. It is [[#Type|statically and strongly typed]] and garbage-collected and has explicit support for concurrent programming. Programs are constructed from [[Go_Language_Modularization#Packages|packages]], whose properties allow efficient management of [[Go_Language_Modularization#Dependencies|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. | Go declarations can be read "naturally" from left to right, which makes it easy to read. | ||
These are several reasons to use Go: | 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 | |||
=<span id='Variable'><span>Variables= | =<span id='Variable'><span>Variables= |
Revision as of 22:50, 14 August 2023
External
- The Go Programming Language Specification https://go.dev/ref/spec
- go.dev Documentation https://go.dev/doc/#learning
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:
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:
- Go Concepts - Standard Library
- Go Concepts - Lexical Structure
- Go Concepts - Functions
- Go Concepts - Error Handling
- Go Concepts - Concurrency
- Go Concepts - Memory Model
- Go Concepts - Templates
- Go Concepts - Compiler
- Go Concepts - Limitations