Go (lenguaje de programación)

[11]​[12]​ Go es un lenguaje de programación compilado, concurrente, imperativo, estructurado y orientado a objetos que de momento está disponible para diferentes tipos de sistemas Unix-like, incluidos Linux, FreeBSD, Mac OS X y Plan 9 (puesto que parte del compilador está basado en un trabajo previo sobre el sistema operativo Inferno).

Aunque empezó a ser desarrollado en septiembre de 2007 por Robert Griesemer, Rob Pike y Ken Thompson.

[21]​ Los creadores del lenguaje han dado varios motivos para que esto sea así.

Otros lenguajes modernos como Rust también han prescindido de las excepciones por las mismas razones.

Según los creadores, aunque la idea detrás de la declaración de tipos en C es buena, los tipos y las expresiones gramaticales no se mezclan demasiado bien y el resultado puede ser confuso.

Go sin embargo, separa la expresión y la sintaxis de tipo, lo cual simplifica las cosas.

En Go el uso del carácter punto y coma “;“ al final de una instrucción es opcional.

Además, optimizando el compilador y con el hardware actual, un bucle que utiliza los índices de un array puede ser tan eficaz como un bucle que utiliza aritmética de punteros.

En Go, el concepto de “interfaz“ es similar al usado en Java: cualquier objeto (value) que cumpla el contrato especificado por una interfaz (sin necesidad de una declaración explícita) obtiene ese tipo.