ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Go es un lenguaje de programación concurrente y compilado


Enviado por   •  29 de Octubre de 2013  •  1.498 Palabras (6 Páginas)  •  212 Visitas

Página 1 de 6

Go es un lenguaje de programación concurrente 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. Actualmente sólo está disponible para los sistemas operativos Windows, GNU/Linux y Mac OS X.[2] [3]

Índice [ocultar]

1 Nombre

2 Características

3 Excepciones

4 Innovación

5 Diferencias principales con C

5.1 Declaraciones al revés

5.2 Semicolon

5.3 Aritmética de punteros

5.4 ++ y —

6 ¿Es Go un lenguaje orientado a objetos?

7 Ejemplos

8 Referencias

9 Enlaces externos

Nombre[editar · editar código]El día de la publicación del lenguaje Go, Francis McCabe, desarrollador del lenguaje de programación Go! (anteriormente llamado Go), solicitó que se le cambiase el nombre al lenguaje de Google para evitar confusiones con su lenguaje.[4] McCabe creó Go! en el año 2003; sin embargo, aún no ha registrado el nombre.[5] Go es un nuevo lenguaje de programación para sistemas lanzado por Google en noviembre del 2009. Aunque empezó a ser desarrollado en septiembre del 2007 por Robert Griesemer, Rob Pike y Ken Thompson.

Go es un lenguaje de programación compilado, concurrente, imperativo, estructurado, no orientado a objetos —de una manera bastante especial— y con recolector de basura que de momento está soportado en diferentes tipos de sistemas UNIX, incluidos Linux, FreeBSD y Mac OS X. También está disponible en Plan 9 puesto que parte del compilador está basado en un trabajo previo sobre el sistema operativo Inferno. Las arquitecturas soportadas son i386, amd64 y ARM[1]. Existe un port no oficial a Microsoft Windows pero es bastante inestable. Actualmente se está trabajando para llevarlo al sistema operativo de Microsoft...

Características[editar · editar código]Go usa una sintaxis parecida a C por lo que los programadores que hayan usado dicho lenguaje se sienten muy cómodos con él.

Go usa tipado estático (estatically typed) y es tan eficiente como C.

Go tiene muchas de las características y facilidad de lenguajes dinámicos como Python

Aún siendo un lenguaje diseñado para la programación de sistemas, provee de un recolector de basura, reflexión y otras capacidades de alto nivel que lo convierten en un lenguaje muy potente.

Go no está orientado a objetos porque no existe jerarquía de tipos pero implementa interfaces.

Go, al igual que C y C++, es un lenguaje compilado con algunas características peculiares.

Es un lenguaje concurrente que soporta canales de comunicación basados en el lenguaje CSP de Sir Charles Antony Richard Hoare, creador del algoritmo de ordenación QuickSort y ganador del Turing en 1980. La concurrencia en Go es diferente a los criterios de programación basados en bloqueos como pthreads.

Como la mayoría de los lenguajes modernos, Go implementa un recolector de basura.

Los lenguajes más utilizados como C++, Java o C# son más pesados y voluminosos. La sencillez es la característica principal de Go, su sintaxis es clara y concisa. Mientras que C es tristemente célebre por la complejidad de la sintaxis de sus declaraciones, Go utiliza inferencia implícita de tipos pudiéndose de esta manera evitar la declaración explícita de variables. La declaración de variables es simple y conveniente, y difiere de la de C.

Go admite la tipificación dinámica de datos también conocida como duck Typing presente en multitud de lenguajes dinámicos como por ejemplo JavaScript, Ruby o Python. Un struct puede implementar una interfaz de forma automática, lo cual es una característica potente y novedosa.

No son ni threads, ni co-rutinas ni procesos. La comunicación entre goroutines se realiza a través de una característica del lenguaje llamada canales —basada en CSP—, que es más segura y fácil de usar que los sistemas predominantes basados en bloqueos de pthreads o características modernas de Java

Excepciones[editar · editar código]Go no tiene excepciones. Los creadores del lenguaje dan varios motivos para que esto sea así. Uno de ellos es que añadir una capa de excepciones añade una complejidad innecesaria al lenguaje y al entorno de ejecución. Por definición deberían de ser excepcionales pero al final se acaban usando como controladores del flujo de la aplicación y dejan de tener nada de excepcional. Según los creadores, las excepciones tienen que ser realmente excepcionales y el uso que se le da mayoritariamente no justifica su existencia.

Innovación[editar · editar código]Durante muchos años, los desarrolladores hemos tenido que elegir entre lenguajes de programación de tipado estático compilados, por regla general, bastante complejos pero que proveen grandes características relacionadas con la optimización y el rendimiento y lenguajes de tipado dinámico interpretados con características de mucho más alto nivel que hacían su aprendizaje, uso y sintaxis más sencilla y por tanto divertido programar en ellos, eso si, sacrificando rendimiento y control.

Go mezcla lo mejor de ambos mundos y nos aporta una sintaxis sencilla, clara y divertida junto a la potencia que nos ofrece un lenguaje fuertemente tipado y compilado incorporando además características de alto nivel que facilitan el uso del lenguaje por los desarrolladores.

Diferencias principales con C[editar · editar código]Aunque su sintaxis es similar, Go difiere mucho de C, veamos algunos ejemplos.

Declaraciones al revés[editar · editar código]En Go las declaraciones se realizan al revés desde la perspectiva de C (o C++ o Java). La idea principal en C es que se declara una variable como una expresión que denota su tipo. 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 (el prefijo * para los punteros es la excepción que confirma la regla). Una declaración típica en C sería:

...

Descargar como (para miembros actualizados)  txt (10 Kb)  
Leer 5 páginas más »
Disponible sólo en Clubensayos.com