RSS
Логотип
Баннер в шапке 1
Баннер в шапке 2

Go (Golang)

Product
Developers: Google
Date of the premiere of the system: 2009
Last Release Date: 2022/05/10
Technology: Application Development Tools

Content

The main articles are:

Go (often also golang) is a compiled multithreaded programming language developed internally by Google.

2023: Ways to debug code in Golang

Golang's language is still relatively new, and some of its nuances are not yet known. This can lead to problems writing code. Dmitry Vasyanin, chief software engineer, reviewed various ways to debug the service on Go before launching it to help create a reliable and uninterrupted application for users. Read more in the article.

2022: Go 1.18 Release

On March 16, 2022, it became known that the release of the Go 1.18 programming language was presented, which is being developed by Google with the participation of the community as a hybrid solution that combines high performance of compiled languages ​ ​ with such advantages of scripting languages ​ ​ as ease of writing code, speed of development and error protection. The project code is distributed under the BSD license.

The syntax of Go is based on the usual elements of the language Xi with separate borrowings from the language. Python The language is quite concise, but at the same time the code is easy to read and perceive. Go code is compiled into separate binary executables, files executed natively, without use (virtual machine profiling, debugging and other problem detection subsystems at the execution stage are integrated as runtime components), which allows you to achieve performance comparable to C programs.

The project is initially developed with an eye to multithreaded programming and efficient operation on multi-core systems, including providing operator-level tools for organizing parallel computing and interaction between parallel methods. The language also provides built-in protection against exceeding the allowed areas of allocated memory blocks and provides the ability to use the garbage collector.

Version 1.18 adds support for generalized functions and types (generics), with which the developer can define and use functions designed to work with several types at once. It is also possible to use interfaces to create combined types covering several types of data. Generic support is implemented without violating backward compatibility with existing code.

Other improvements:

  • The utilities for fuzzing code testing are integrated into the standard toolkit. During fuzzing testing, a stream of all kinds of random combinations of input data is generated and possible failures are recorded during their processing. If a sequence causes a crash or does not correspond to the expected reaction, then this behavior with a high probability indicates an error or vulnerability.
  • Added support for multi-module workspaces that allow you to execute commands for several modules at once, which allows you to simultaneously collect and run code in several modules.
  • Significant performance optimization has been carried out for systems based on Apple M1, ARM64 and PowerPC64 processors. The option to use registers instead of a stack to pass arguments to functions and return a result is enabled. Improved inline deployment of cycles by the compiler. The type check in the compiler has been completely redone. In some tests, compared to the previous release, there is an increase in code performance by 20%, but the compilation itself began to run about 15% longer.
  • Runtime increased the efficiency of returning freed memory to the operating system and improved the work of the garbage collector, the behavior of which has become more predictable.
  • New net/netip and debug/buildinfo packages have been added to the standard library. Support for TLS 1.0 and 1.1 is disabled by default in client code. The crypto/x509 module stopped processing certificates with a signature based on the SHA-1 hash.
  • The requirements for the environment in Linux are raised, for work it is now necessary to have a Linux kernel of at least version 2.6.32. In the next release, similar changes are expected for FreeBSD (support for the FreeBSD 11.x branch will be discontinued) and at least FreeBSD 12.2 will be required to work.[1]

2013

In August 2013, it became known that Google is continuing to work on creating a programming language called Golang, or Go, which, according to some experts, could completely replace Java.

The Java language was created 20 years ago at Sun Microsystems, which was subsequently absorbed by Oracle, and has since gained the widest adoption, especially in the field of industrial information technology. However, since Oracle gained full control over Sun and all its developments in 2010, conflict has become the norm in the Java development community. In particular, Oracle is criticized for being too slow to update Java development tools.

Interestingly, almost immediately after the advent of the Google Android operating system (OS), Oracle CEO Larry Ellison said that some copies of the Java language were used when creating this OS. So far, no one except Google is seriously considering the prospects for a new language. True, there is one exception: Internet startup Iron.io became the first company to decide to use the language in its large projects.

Iron.io is developing a cloud-based messaging service for Go-based mobile app developers. The project started in 2011 and has since acquired a number of influential clients, including Career Builder and The Motley Fool. The founders of the startup say that using Go gives them additional advantages over other common languages, such as Ruby and, in particular, Java.

The co-founder of the startup Travis Reeder said that the new programming language gives an advantage in performance, memory use, it also provides simplicity and high code quality.

In his opinion, further promotion of Go to the cloud market could gradually displace Oracle and Java from this sector, as well as lead to the emergence of innovative technologies around the new language, including libraries, frameworks, platforms and services.

2012: First official release

Google officially announced in March 2012 the first official release of its open source Go programming language.

The open programming language Go was first announced by Google in November 2009. Go is an experimental language that should combine the high performance and security of C++ with the speed of dynamic programming languages ​ ​ such as Python. The Go project includes a programming language, a set of compilers and special libraries that allow you to include a number of built-in functions in Go programs.

"In November 2009, Google announced its open language project Go. Since then, more than 200 third-party professionals have made thousands of fixes and additions to the language code and documentation, and contributed to its testing. An open community has become one of the most important components of Go's success. Today we are very pleased to announce that the Go project has reached the first stable version - Go version 1, "the Internet giant said in an official statement
.

According to them, the release of Go 1 was the result of months of work on specification refinements, improving the implementation of the programming language, improving its versatility and portability, and setting up a standard library. According to the developers, Go 1 has rich opportunities for future growth. Programs written in this language now must work reliably for many years.

Go 1 is available as binary packages for Windows, Linux, Mac OS X, FreeBSD and other platforms. The first official release has a number of fixes and improvements compared to working versions. So, a special utility go fix has appeared in it, the function of which is to automate the reduction of old source codes to the current language standard. Now developers, when using the Go language, can refuse to use Makefile files and assembly scripts - all the necessary information is extracted directly from the source code of the program.

According to representatives of the Go creator community, a new version of the Google App Engine SDK, designed to create applications for the App Engine, was also released simultaneously with Go 1, which has been redesigned to support the new capabilities of Go 1. [2]]

2009: Presentation of the Go programming language

On November 10, 2009, Google introduced a new programming language - Go (Golang). Go is called one of the simplest programming languages ​ ​ and this is its advantage. The code is understandable to any developer, so it is not difficult to monitor the execution of commands and make changes. The simpler and clearer the code, the more difficult it is to make a mistake in it.

Programming languages

Links

Official Product Website

Notes

  1. Go 1.18 Programming Language Release
  2. [Has Google released the first version of its programming language http://www.cnews.ru/news/top/index.shtml? 2012/03/29/483532