Aviva Directory » Computers & Internet » Programming » Golang

The focus of this category is on Golang, more commonly known as Go, which was designed at Google in 2007, particularly for the purpose of improving programming productivity on multicore, networked machines and large codebases.

Although the designers were motivated by a shared dislike for the C++ programming language, Go is most often described as a C-like language. Go inherited its expression syntax, control-flow statements, basic data types, call-by-value parameter passing, pointers, and its emphasis, from C, on programs that compile to efficient machine code and cooperate with the abstractions of current operating systems.

There were other influences, however. Pascal, Alef, and Oberon were significant and, to a lesser extent, APL, BCPL, CSP, Limbo, Modula-2, Occam, Smalltalk, and Squeak. Among the goals of the design team was to produce a language that had the static typing and run-time efficiency of C++, and the usability and readability of Python or JavaScript.

In developing the language, a decision was made to deliberately omit features common in other languages, such as inheritance, generic programming, assertions, pointer arithmetic, implicit type conversions, and both tagged and untagged unions. Go added only those features that the three principle designers (Robert Griesemer, Rob Pike, Ken Thompson) agreed upon. Of course, some of these decisions may be changed in future releases. For example, the designers were open to generic programming, and the language's built-in functions are type-generic. Designed in 2007, Go was publicly announced in 2009, and version 1.0 was released in 2012. Widely used at Google, the language is earning broad appeal.

Go enforces strict coding rules in that influence the style of Go programs, including those that are simply recommendations in other languages. Much of this is built into the language. Surface details, like indentation and spacing, are automatically standardized. There are also rules about package usage. A programmer cannot include a package just because it might be needed. When a package is included, but not used, an error will result. Strict coding rules serve to avoid errors and to reduce code bloat.

Among the advantages of Go is that the standardized code is easy to read and understand. The compiler returns practical warnings and helpful error messages, specifying where the errors can be found. The code is portable, particularly among Unix-type machines. The language uses static linking by default, so binary files can be easily transferred to other machines using the same operating system. Go supports Unicode, so there is no need for extra code for printing characters from multiple human languages.

With Go, there is no need for a GUI for developing, debugging, and testing applications. They can be used from the command line. Go can be used as a scripting language, as it does not have a preprocessor. It does high-speed compilation and can be used to build web applications. It can be used as a scripting language.

The Go library offers several packages, all of which are tested and debugged in advance of their inclusion.

However, there is no direct support for object-oriented programming, and C is still faster for systems programming, largely because Unix is written in C.

On the day of the release of the language, the developer of the unrelated Go! programming language requested a change in the name of Google's product to avoid confusion with the language that he had spent a decade developing, and which had been released in 2003, more than five years prior to the release of Google's language. Google declined to do so.

Websites whose topics relate to the Google's Go language, which may also be known as Golang, are appropriate for this category, along with any editors or other tools designed for use with the Go language, user groups, forums, or tutorials. Those relating to Go! (note the exclamation mark) should be listed in its own category or, if there are not enough sites, directly under the Programming category.



Recommended Resources

Search for Golang on Google or Bing