ıllı Internet y Tecnologías de la Información (2018)

internet, Hosting, dominios, seo, antivirus, banco de imágenes, páginas web, tiendas online

[Enciclopedia Online Gratuita] Diccionario de Internet y Tecnologías de la Información y la Comunicación (TIC):

ıllı Go (lenguaje de programación) wiki: info, historia y vídeos

videos internet

salud  Go (lenguaje de programación) 


Go es un lenguaje de programaciónconcurrente y compilado inspirado en la sintaxis de C. Ha sido desarrollado por Google, y sus diseñadores iniciales son Robert Griesemer, Rob Pike y Ken Thompson. Hoy día está libre en formato binario para los sistemas operativosWindows, GNU/Linux, FreeBSD y Mac OS X, pudiendo asimismo ser instalado en estos y en otros sistemas con el código fuente. Go es un lenguaje de programación compilado, concurrente, imperativo, estructurado, orientado a objetos —de una forma bastante especial— y con colector de basura que por el momento está soportado en diferentes géneros de sistemas UNIX, incluidos Linux, FreeBSD y Mac OS X. Asimismo está libre en Plan nueve, pues una parte del compilador está basado en un trabajo anterior sobre el sistema operativo Inferno. Las arquitecturas soportadas son i386, amd64 y ARM.

GoLogo GoDesarrollador(es)Google
golang.orgInformación generalExtensiones comunes.goParadigmacompiladoconcurrente, imperativo, estructuradoApareció en2009Diseñado porRobert Griesemer, Rob Pike y Ken ThompsonÚltima versión estable1.10 (dieciseis de febrero de dos mil dieciocho (cuatro meses y dieciseis días))Sistema de tiposfuerte, estáticoImplementacionesgc (8g, 6g, 5g), gccgoInfluido porC, Modula-dos, Pascal, Oberon, LimboSistema operativoGNU/Linux, Mac OS X, Windows, otrosLicenciaBSD

El día de la publicación del lenguaje Go, Francis McCabe, desarrollador del lenguaje de programación Go! (previamente llamado Go), pidió que se le cambiase el nombre al lenguaje de Google para eludir confusiones con su lenguaje. McCabe creó Go! en el año 2003; no obstante, todavía no ha registrado el nombre. Go es un nuevo lenguaje de programación para sistemas lanzado por Google en el mes de noviembre de dos mil nueve. Si bien comenzó a ser desarrollado en el mes de septiembre de dos mil siete por Robert Griesemer, Rob Pike y Ken Thompson.



  • Go emplea una sintaxis semejante a C, con lo que los programadores que hayan utilizado dicho lenguaje se sienten muy cómodos con él.
  • Go utiliza tipado estático (statically typed) y es tan eficaz como C.
  • Go tiene muchas de las peculiaridades y sencillez de lenguajes activos como Python
  • Aún siendo un lenguaje desarrollado para la programación de sistemas, provee de un colector de basura, reflexión y otras capacidades de alto nivel que lo transforman en un lenguaje muy potente.
  • Go acepta el paradigma de programación orientada a objetos, mas en contraste a los lenguajes de programación más populares no dispone de herencia de tipos y tampoco de palabras clave que indiquen meridianamente que aguanta este paradigma. Otro detalle que puede resultar confuso es que la definición de un tipo ("clase") se efectúa a través de declaraciones separadas (interfaces, structs, embedded values). Go deja el empleo de delegación (mediante embedded values) y polimorfismo (a través de interfaces).

Go, del mismo modo que C y C++, es un lenguaje compilado con ciertas peculiaridades especiales.


Es un lenguaje concurrente que aguanta canales de comunicación basados en el lenguaje CSP de Sir Converses Antony Richard Hoare, autor del algoritmo de ordenación QuickSort y ganador del Turing en mil novecientos ochenta. La concurrencia en Go es diferente a los criterios de programación basados en bloqueos como pthreads.


Los lenguajes más usados como C++, Java o bien C# son más pesados y grandes. La sencillez es la característica primordial de Go, su sintaxis es clara y sucinta. Al paso que C es lamentablemente insigne por la dificultad de la sintaxis de sus declaraciones, Go emplea inferencia tácita de tipos pudiéndose así eludir la declaración explícita de variables. La declaración de variables es bien simple y recomendable, y difiere de la de C.


Go acepta la tipificación activa de datos asimismo famosa como duck Typing presente en multitud de lenguajes activos como por poner un ejemplo JavaScript, Ruby o bien Python. Un struct puede incorporar una interfaz de manera automática, lo que es una característica potente y novedosa.


No son ni hilos, ni co-rutinas ni procesos. La comunicación entre goroutines se efectúa mediante una característica del lenguaje llamada canales —basada en CSP—, que es más segura y simple de utilizar que los sistemas predominantes basados en bloqueos de pthreads o bien peculiaridades modernas de Java


Go no tiene salvedades. Los autores del lenguaje dan múltiples motivos a fin de que esto sea de esta forma. Uno de ellos es que incorporar una capa de salvedades agrega una dificultad superflua al lenguaje y al ambiente de ejecución. Por definición deberían ser inusuales mas al final se terminan utilizando como controladores del flujo de la aplicación y dejan de tener nada de inusual. Conforme los autores, las salvedades deben ser verdaderamente inusuales y el empleo que se le da mayoritariamente no justifica su existencia.


Durante muchos años, los desarrolladores han debido escoger entre lenguajes de programación de tipado estático compilados, por lo general, bastante complejos mas que proveen grandes peculiaridades relacionadas con la optimización y el desempeño y lenguajes de tipado activo interpretados con peculiaridades de considerablemente más alto nivel que hacían su aprendizaje, empleo y sintaxis más fácil y en consecuencia entretenido programar en ellos, eso si, sacrificando desempeño y control.


Go mezcla lo mejor de los dos mundos y nos aporta una sintaxis fácil, clara y entretenida al lado de la potencia que nos ofrece un lenguaje con fuerza tipado y compilado incorporando además de esto peculiaridades de alto nivel que facilitan el empleo del lenguaje por los desarrolladores.


Aunque su sintaxis es afín, Go difiere mucho de C. Véanse ciertos ejemplos.


Declaraciones al revés


En Go las declaraciones se efectúan del revés desde la perspectiva de C (o bien C++ o bien Java). La idea primordial en C es que se declara una variable como una expresión que indica su tipo. Conforme los autores, si bien la idea tras la declaración de tipos en C es buena, los modelos y las expresiones gramaticales no se mezclan demasiado bien y el resultado puede ser confuso.Go no obstante, aparta la expresión y la sintaxis de tipo, lo que facilita las cosas (el prefijo * para los punteros es la salvedad que confirma la regla). Una declaración habitual en C sería:

int* i, j;

Declara que i es un puntero, mas no j. En Go:

var i, j *int

Se declaran las 2 variables como punteros. Es más claro y natural.


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


Aritmética de punteros


Go no tiene aritmética de punteros. Conforme los autores, la razón es la seguridad. Sin aritmética de punteros es posible crear un lenguaje en el que no se puede conseguir una dirección ilegal que sea utilizada de forma incorrecta. La carencia de aritmética de punteros facilita la implementación del colector de basura. Además de esto, optimando el compilador y con el hardware actual, un bucle que usa los índices de un array puede ser tan eficiente como un bucle que usa aritmética de punteros.


En Go, el empleo de ++ y -- para acrecentar y decrementar el valor de una variable es una sentencia y no una expresión. Además de esto, solo puede usarse en su versión sufija puesto que conforme los autores, la versión prefija pierde su sentido en la ausencia de aritmética de punteros.


Para ciertos autores, la herencia o bien las clases no son conceptos esenciales para el paradigma de POO, sino un medio de implementación. Existen desde hace ya tiempo lenguajes orientados a objetos que no aceptan clases, sino se fundamentan en prototipos, como Javascript o bien Self. Conforme declaraciones de Alan Kay, autor de Smalltalk, lo esencial del paradigma es el paso de mensajes.


Go tiene tipos y métodos, y deja un estilo de programación orientado a objetos, mas no acepta edificar jerarquías, esto es, no acepta la herencia, que para otros autores sí es un mecanismo esencial de la POO. En Go, el término de “interfaz“ es afín al utilizado en Java: cualquier objeto (value) que cumpla el contrato detallado por una interfaz (sin precisar una declaración explícita) consigue ese tipo. Asimismo existen formas de embeber tipos en otros tipos para conseguir algo equivalente a las subclases. Los métodos de Go son más generales que los de C++ o bien Java. Pueden ser definidos para cualquier género de datos; no solo para los registros.


  ELIGE TU TEMA DE INTERÉS: 


autoayuda.es   Internet y Tecnologias 

Está aquí: Inicio > [ INTERNET ] > ıllı Go (lenguaje de programación) wiki: info, historia y vídeos

Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Ver políticas