20/03/2010

Sobre el lenguaje de programación Go e introducción en el lenguaje de programación de Google

Go (lenguaje de programación de Google) : Go es un lenguaje de programación concurrente y compilado inspirado en la sintaxis de C.

Es de código abierto y se basa en la familia de programación de C pero con elementos de Python y la familia de Pascal, Modula y Oberon.  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 GNU/Linux y Mac OS X.

Ejemplos:

El clásico programa Hola mundo en Go es similiar a como se haría en C++. Con este mítico ejemplo podemos apreciar que en cuanto a sintaxis son muy similares:

package main

import "fmt"

func main()
{
fmt.Printf("Hola, mundo\n")
}
La notación de los comentarios es exactamente la misma que la de C++:

/* ...
...
... */

// ...


 Fuente/bibliografía: http://es.wikipedia.org/wiki/Go_%28lenguaje_de_programaci%C3%B3n%29

Semicolons Punto y coma:

Ha podido notar que nuestro programa no tiene ningún punto y coma. En el código de Go, el único lugar donde normalmente se verá un punto y coma, aparecerá separando las cláusulas de for bucles y cosas por el estilo, por tanto, no son necesarias después de cada declaración.

De hecho, lo que pasa es que el lenguaje formal usa punto y coma, tanto como en C o Java, pero se insertan automáticamente al final de cada línea que se parezca al final de una instrucción. No es necesario que la escriba usted mismo.

Para obtener detalles sobre cómo se hace esto, se puede ver la especificación del lenguaje, pero en la práctica todo lo que necesita saber es que nunca necesita poner un punto y coma al final de la línea. Puede colocarlos si desea escribir varias instrucciones por línea. Como ayuda adicional, también puede dejar de lado un punto y coma inmediatamente antes de una llave de cierre.
Este enfoque tiene un fin para la limpieza de un futuro, punto y coma, de código libre. La única sorpresa es que es importante poner la llave de apertura de una construcción como la declaración de un if en la misma línea que el if si no, hay situaciones que no pueden compilar o puede dar un resultado equivocado. Así se fuerza hasta cierto punto el estilo del lenguaje.

Compilar :

Go es un lenguaje compilado. Por el momento hay dos compiladores. Gccgo es un compilador de Go que utiliza la parte de atrás del CCG. Hay también un conjunto de compiladores con diferentes (y extraños) nombres para cada arquitectura: 6g para la de 64-bit x86, 8g de 32-bit x86, y más.
Estos compiladores se ejecutan mucho más rápido, pero generan un rendimiento menos eficiente que el código gccgo. En el momento de este escrito (finales de 2009),  también tienen un plazo de tiempo más robusto de sistema, aunque gccgo está alcanzandolo.

He aquí cómo compilar y ejecutar nuestro programa. Con 6g por ejemplo:

$ 6g helloworld.go # compile; object goes into helloworld.6
$ 6l helloworld.6 # link; output goes into 6.out
$ 6.out
Hello, world; or Καλημέρα κόσμε; or こんにちは 世界
$
Con gccgo se ve un poco más tradicional:
$ gccgo helloworld.go
$ a.out
Hello, world; or Καλημέρα κόσμε; or こんにちは 世界
$
Fuente/bibliografía: http://www.vertutoriales.com/index.php/iniciacion-como-empezar-con-go-el-nuevo-lenguaje-de-google/

Analisis de los Lenguajes que estan “compactados” en GO.

C :
Se trata de un lenguaje débilmente tipificado de medio nivel pero con muchas características de bajo nivel. Dispone de las estructuras típicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel. Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar código en ensamblador con código C o acceder directamente a memoria o dispositivos periféricos.

Python :

Es un lenguaje de programación multiparadigma. Esto significa que más que forzar a los programadores a adoptar un estilo particular de programación, permite varios estilos: programación orientada a objetos, programación estructurada y programación funcional. Otros muchos paradigmas más están soportados mediante el uso de extensiones. Python usa tipo de dato dinámico y reference counting para el manejo de memoria. Una característica importante de Python es la resolución dinámica de nombres, lo que enlaza un método y un nombre de variable durante la ejecución del programa (también llamado ligadura dinámica de métodos).
Python permite dividir el programa en módulos reutilizables desde otros programas Python. Viene con una gran colección de módulos estándar que se pueden utilizar como base de los programas. También hay módulos incluidos que proporcionan E/S de ficheros, llamadas al sistema, sockets y hasta interfaces a GUI (interfaz gráfica con el usuario) como Tk, GTK, Qt entre otros.

Pascal :

Pascal se caracteriza por ser un lenguaje de programación estructurado fuertemente tipificado. Esto implica que:
1.    El código esta dividido en porciones fácilmente legibles llamadas funciones o procedimientos. De esta forma Pascal facilita la utilización de la programación estructurada en oposición al antiguo estilo de programación monolítica.
2.    El tipo de dato de todas las variables debe ser declarado previamente para que su uso quede habilitado.
Modula-3
Es un lenguaje de programación imperativo, estructurado y modular, concebido como el sucesor de Modula-2.
Las principales características del lenguaje son su simplicidad y la seguridad, además de conservar la potencia de los lenguajes de programación de sistemas.

Oberon :

Oberon puede considerarse una evolución de Modula-2 con un soporte completo de orientación a objetos. De este lenguaje y de sus antecesores hereda buena parte de la sintaxis y de la filosofía. Su creador siempre ha intentado simplificar los lenguajes sin que por ello se pierda en potencia. También está diseñado con la seguridad en mente: tiene chequeos de rango en arrays, recolector de basura y es fuertemente tipado. Sin embargo, por su intento de simplicidad carece de enumeraciones y enteros restringidos en rango, los cuales pueden implementarse como objetos.
La sintaxis de orientación a objetos de Oberon no se parece a la de otros lenguajes más populares como C++ o Java, pero sí guarda similitud con la de Ada 95.
Oberon es también el nombre de un sistema operativo, escrito en este lenguaje y para este lenguaje. Oberon se ha portado a otros sistemas (incluyendo a Windows y sistemas Unix) e incluso se puede compilar en código de bytes para la máquina virtual de Java. También existe un proyecto para crear un compilador para la plataforma .NET.

Temas relacionados.

Un lenguaje de programación es fuertemente tipado si no se permiten violaciones de los tipos de datos, es decir, dado una variable de un tipo concreto, no se puede usar como si fuera una variable de otro tipo distinto a menos que se haga una conversión. No hay una única definición de este término. Un lenguaje que no es fuertemente tipado se dice que no está tipado.

Ada :

Es un lenguaje de programación orientado a objetos y fuertemente tipado de forma estática que fue diseñado por Jean Ichbiah de CII Honeywell Bull por encargo del Departamento de Defensa de los Estados Unidos. Es un lenguaje multipropósito, orientado a objetos y concurrente, pudiendo llegar desde la facilidad de Pascal hasta la flexibilidad de C++..
Fue diseñado con la seguridad en mente y con una filosofía orientada a la reducción de errores comunes y difíciles de descubrir. Para ello se basa en un tipado muy fuerte y en chequeos en tiempo de ejecución (desactivables en beneficio del rendimiento). La sincronización de tareas se realiza mediante la primitiva rendezvous.
Ada se usa principalmente en entornos en los que se necesita una gran seguridad y fiabilidad como la defensa, la aeronáutica (Boeing o Airbus), la gestión del tráfico aéreo (como Indra en España) y la industria aeroespacial entre otros.
Recopilación: Fabián

Fuente/bibliografía: http://www.eaprende.com/blog/2009/11/11/el-nuevo-lenguaje-de-programacion-go-de-google/


Me parece interesante postear esto ya que GO ha sido  uno de los lenguajes de programación con mas crecimiento ( màs info al respecto http://www.desarrolloweb.com/de_interes/ranking-lenguajes-programacion-marzo-2010-3136.html )

 Sitios de referencia, fuentes de información, bibliografía:

0 comentarios:

Publicar un comentario en la entrada

Related Posts with Thumbnails

Páginas vistas en total