in

No me gustaNo me gusta

Go: El lenguaje de programación de Google

Google Chrome OS: El sistema operativo de Google

Basic, Cobol, Logo, C, C++, Phyton y otros cien lenguajes de programación se ponen de pie para saludar a un nuevo compañero. Google, una empresa que parece tener una nueva idea o proyecto cada día, acaba de poner a disposición de lo usuarios un nuevo lenguaje de programación llamado Go. Se trata de un lenguaje moderno, de código abierto, que combina la potencia, desempeño y seguridad de los lenguajes compilados como C++,  con la versatilidad de otros más dinámicos como Python.

Google no deja de sorprendernos. Mientras esperamos el lanzamiento de su sistema operativo, nos enteramos que ha puesto a punto y liberado un nuevo lenguaje de programación. Al igual que sus otros productos, el nuevo Go es libre y gratuito. Los voceros de la compañía aseguran que programar aplicaciones con este lenguaje será “productivo, rápido y divertido”.

El nuevo lenguaje, todavía en fase beta –algo a lo que la empresa nos tiene acostumbrados– toma lo mejor de lenguajes más antiguos como Python o C++ y lo combina para lograr una nueva herramienta que promete revolucionar la forma en que escribimos los programas de ordenador. En Google dicen que este producto tiene como objetivo resolver algunos de los problemas que presentan los lenguajes de programación actuales, como el uso eficiente y sencillo de los microprocesadores multi núcleo o la generación de ejecutables enormes y pesados.

En Google apuestan por Go. Mientras que lo continúan desarrollando le van encontrando nuevos usos. Al respecto, el vocero de la empresa dice que “mientras seguimos mejorándolo también estamos haciendo experimentos. Go se perfila como un firme candidato para nuestro entorno de servidores”, lo que da una idea de la confianza que han depositado en este lenguaje. Parece que además de plantarle cara a Microsoft con productos como Google Docs (competidor de MS Office), Gmail (enemigo declarado de Hotmail) y el nuevo sistema operativo, han decidido pegarle a la empresa de Bill Gates donde más le duele: los lenguajes de programación.

Reportar

¿Qué te pareció?

Escrito por Ariel Palazzesi

48 Comments

Leave a Reply
  1. C# versión 2010 en fase release candidate se encuentra ya disponible y contiene tipos dinámicos, nada de estáticos como dice el artículo, sin comentar aparte los tipos genéricos, métodos anónimos, Expresiones lambda, etc, etc, y muchos otras características,que para no aburrir no las voy a nombrar. En el caso de los lenguajes de programación la ventaja de Microsoft y Java es años luz, y lo que es más importante, ya no se trata de sólo el lenguaje, sino del entorno, Visual Studio es sencillamente tremendo, las librerías contenidas, UML incluido, ASP.NET, etc, además de muchos entornos empresariales. Personalmente lo de Google en este momento lo veo como un lenguaje de programación de juguete, claro que dicha compañía tiene dinero de sobra para gastar y gastar, pero como digo la ventaja es sencillamente enorme, Este no es un tema como lo del explorador, u otros de fácil competencia, se habla de palabras mayores, y más teniendo en cuenta las futuras versiones previstas de Microsoft que se cimientan sobre una base sólida, "Go" sólo es una beta . Viendo la página http://golang.org/doc/go_tutorial.html tampoco parece que traiga nada nuevo en sí, los que nos ganamos el pan programando (entre los que me incluyo) la apetencia es nula por otro cambio más, aunque parece que el código es fácil de aprender (es más de lo mismo). Por cierto que en C# hay la versión express de libre bajada, al igual que el Eclipse

    • Practicamente concuerdo en todo con tu visión. La verdad estoy un poco cansado que Google se corte por su lado en vez de intentar mejorar cosas ya existentes.

    • pues a mi me gusta probar de todo, y hasta que lo pruebe no dare declaraciones, porque decir que "es más de lo mismo" es asegurar que ya lo probaste y encontraste todo repetido de los demás lenguajes..
      Lo que si, es que mientras los lenguajes de Microsoft sigan siendo solo para plataformas windows, Java (aunque multiplataforma) tenga que instalar toda una maquina que re- interprete el codigo, seguire programando en C, C++, o en Phyton.

      y aunque sea lenguaje de programación de Google, me mantendre con ese toque de escepticismo, porque igual y no es divertido…

      y pese a que es fácil programar en Basic y en C#, sostengo mi postura que lenguajes como esos hacen daño al mundo del software, ya que no tienen esa característica multi-plataforma que tanto se necesita en estos días, y aparte de eso, hacen que el programador cree una adicción a librerías cerradas, (lease Visual C++)

    • Concuerdo con lo que mencionas en el comentario, pero hay recordar que esto tiene prácticamente nada de haber salido a la calle, es lógico que en este nivel no haya ni siquiera soporte por la mayoría IDE libres que se encuentran disponibles, vamos el lenguaje no tiene IDE propio (por lo que vi en el sitio), pero esto no quiere decir que esto no vaya a cambiar siendo Google, realmente la existencia de este lenguaje y su implementación sobre Linux nos habla de lo que tiene planeado Google con su sistema operativo, es posible que veamos los cambios y la posible adopción dentro de los próximos dos o tres años (si no es que más), en lo que la gente se interesa y hace aplicaciones, recuerda lo que ha estado pasando con Python y su lento pero interesante crecimiento que tiene.

    • Por lo que he leído en el sitio, no trae nada interesante. Si consideras C# como un C++ mutilado, esto es mas o menos lo que queda después de homicidio un en primer grado con alevosía y ensañamiento.

      Básicamente: Nada de herencia, constructores ni destructores (horror de horrores), solo interfaces, colector de basura para los vagos e ineptos, cadenas constantes para acordarnos de los progenitores del CEO de google (ahh, no veia nada como esto desde los tiempos del venerable C), reglas idiotas con excepciones de cuando pasar parámetros por valor y cuando por referencia (al diablo la eficiencia), nada de conversión implícita de tipos, nada de sobrecarga de funciones ni operadores, nada de declarar métodos o variables constantes o volátiles y para rematar escogieron el nombre de un juego de mesa popular, no fuera a ser que se confundan.

      No se trata de que no querramos mas cambios, de hecho hace falta que terminen de aprobar C++0x de una puñetera vez, pero maldita la falta que hace un nuevo lenguaje de programación, especialmente uno tan incompleto que aparentemente no tiene un vacío que llenar se mire por donde se mire.

      Mas adelante cuando salga una versión estable revisare nuevamente el lenguaje, pero la impresión preliminar es que necesita mas código para hacer lo mismo que hacen otros y que tiene pinta de convertirse en una pesadilla debido a los sutiles cambios de gramática respecto a otros primos lejanos como c++ o c#.

    • c# es un chiste solo por que copio algo de haskell y python se sienten tener un lenguaje moderno si esas caracteristicas tienen mas de 10 años de implementarse y si quieres bibliotecas y demas usa groovy,scala o clojure que se ejecutan sobre jvm(la jvm es una maravilla desde 1.6 pero java no la puede usar al 100) scala y clojure son verdaderos lenguajes concurencias c# no

  2. para victor es cierto que visual studio tiene entorno visual pero hay aplicaciones gnu como gambas o otra aplicacion kbasaic es de entorno visual tambien lo puedes utilizar en gnu/linux mac o windows solo hay que buscar aplicaciones muy buenas de programacion que las hay por hay otra cer osa visual studio sera muy completo todo lo que quieras pero a la hora de hacer un programa a medida a un particular o a una empresa no hace falta utilizar vusial syudio pero bueno si te quieres gastar una paston en una suite que lo puedes tener mas o menos lo mismo pero gratis es cuestion de gusto

  3. Aprendiendo Python 2.XX y 3.XX. A menos que tenga alguna ventaja sobre los lenguajes que conozco pues no sé, como que para qué, en realidad lenguajes hay muchísimos, es cuestión de gustos y de acomodarse a uno u otro.

      • Que antipático con java, pobrecito, a mi me gusta ^^. Tiene lo suyo. Aunque no entremos en teoría de lenguajes. Solo quiero decir que probablemente los días de java como lenguaje esten contados. Me parece que java quedará "feature freeze" después de la versión 7, y lo que se seguirá evolucionando son los apis y la jvm, y lenguaje para generar el bytecode ser scala. Ya que la mayoría de la comunidad java se está pasando a Scala. Excelente lenguaje, se los recomiendo (para el fanática de c#, este lenguaje SI tiene cosas que c# no ^^).

      • Yo se programar en C/C++ y en Python, no se mucho de java, pero todos los soft de PC que vi escritos en java, se comen la memoria y ademas no se, se siente medio lento!

        Goolge es uno de los que apoya mucho a python (el creador de python trabaja para google) y lo utiliza muchizimo.

        Ojala que Go tenga todo el rendimiento de C/C++ y una sintaxis natural como python.

        Esperemos a ver que pasa!!

        Saludos

  4. La verdad no me sorprende de Google, esta empresa siempre apostó mucho por lenguajes como Python, No como otras que se creen el cuento de .NET, les soy sincero soy ferviente detractor de este lenguaje y quizás un tanto de Java también. Hace un tiempo en una conferencia en Argentina presencié una charla donde se mostraban aspectos técnicos de Go , solo espero que sea tan prometedor como lo recuerdo de aquella vez.

  5. O sea, que lo que ha salido es el nombre y la idea de un lenguaje de programación de Google. Seguramente a algunos se les habrán caído los pantalones cuando se enteraron. Lástima que de momento no haya una versión para Windows.

      • Yo vi bien el video, y la demostración estaba corriendo bajo OSX. (lo que hablo el tipo, no se, no soy muy bueno con el ingles oral ;))

        Acá te dejo los Ports que hay del lenguaje http://golang.org/doc/install.html

        Y te prescribo una linea:

        "Go compilers support two operating systems (Linux, Mac OS X) and three instruction sets. The versions for Linux and Mac are equally capable except that the ARM port does not run on OS X (yet)."

        Así que por ahora, no esta para win!!!!

        Saludos.

  6. Google web search, adsense, adwords, books, docs, scholar, blogspot, earth, wave, chrome, android, OS, news, translate, maps, navigation, music, gmail, sketchup, shopping, images, notebook, page creator, alert, trends, base, code search, labs, and now go?!! Ala gran!!! Que mas?!!! Google dominara el mundo hahaha… 😀

  7. Pues me parece una inversion que a primera vista es innecesaria, ya que google podria invertir en python, que es un buen lenguaje de programacion, solo le falta brindar mas desempeño. (Aunque la idea del rendimeinto comparado a C, y la facilidad de Python, da muchas esperanzas de que funcione muy bien). Otro punto que le falta, si quiere competir con los grandes lenguajes de programacion, es un soporte para interfaces de usuario, algo muy basico hoy en dia.

  8. Lo que deberían haber hecho es un dialecto de Lisp y revivir uno de los mejores lenguajes que hay de alto nivel. Go parece más de lo mismo, siempre se basan en otros lenguajes, no hay imaginación ni filosofía propia, no me ha gustado esto de Google.

    C# sí, es un lenguaje compilado, el código fuente no se interpreta, se compila, al igual que C++.

  9. primero decir que C# es un lenguaje semi interpretado, prueba de ello que se necesita .net framework para que tire, ademas de que C# se pasa CLI (Common Language Infrastructure) para despues ser interpretado por la maquina virtual de .net (Y si no os lo creeis haced un programa en C# y el mismo en C++ sin usar el compilador de visual, comprobareis que el tiempo y gasto de memoria es el doble en C#).

    Por otro lado pienso que el lenguaje ideal tendria que tener lo siguiente:

    -Ser de tipo compilado, nada interpretado (generando binarios para cada plataforma).
    -Usar gestores de GUI multiplataforma y optimizados (como GTK o QT, SWT y no como swing)
    -Tener una sintaxis como java/C#, eliminando los punteros
    -Tener un ide por detras al estilo visual studio pero multiplataforma

    Tan sencillo como eso pero ninguno de los cerebritos que diseñan lenguajes de programacion lo hace.

    • Eso es un lenguaje de programación para vagos, que lo quiere todo hecho. Un buen lenguaje de programación debe permitir al programador verificar todo lo que hace su código, en el caso de Visual * el 80% del trabajo (tirando a poco) lo hacen las librerías.

      El lenguaje ideal (para mi):
      – Sería cómodo de escribir (C, C++, Lisp…)
      – Tendría una librería de bajo nivel (como C) y de alto nivel (como C++) para abarcar muchos tipos de programas
      – Tener el paradigma de la metaprogramación (como Lisp)
      – Permitir acceso a bajo nivel por el mismo lenguaje (como C con los punteros) y acceso a componentes específicos de la plataforma (como los registros en x86)
      – Permitir POO

      El IDE no importa, no depende del lenguaje, lo que sí importa es el compilador, debe de ser bueno y permitir múltiples opciones, como compilar para una plataforma o niveles de optimización. Un buen compilador debe incluso ser capaz a compilar no sólo a binario, si no a otros lenguajes, como ensamblador (como GCC).

      El lenguaje ideal sería de medio nivel, por tener características de alto nivel (como la librería y la metaprogramación) y de bajo nivel (como los punteros). La librería de alto nivel tendría recolector de basura (cada clase gestiona su memoria para que el programador no se preocupe de eso), la de bajo nivel no tendría esto (ya es para programas más serios).

      C# es compilado, porque se compila. ¿Que es interpretado? A bajo nivel todo es interpretado entonces 🙂

      • Un lenguaje interpretado no es ni mas ni menos que un script. Este script necesta de un "interprete de comandos" (un programa que ejecuta tu código directamente, no se compila, se ejecuta en tiempo real) (ejemplo: python)

        Un seminterpretado seria, que tu programa de "seudocompila" pero necesita de un interprete de comandos o una maquina virtual que pueda ejecutar esta subcompilación.
        (ejemplo: java con su maquina virtual)

        Saludos.

  10. Ergo, cuando interpretas un programa haces lo mismo que el procesador, lees unas instrucciones y dependiendo de ellas haces una cosa o otra. Por lo que el lenguaje máquina es interpretado. Y realmente un lenguaje no es ni compilado ni interpretado, porque C se puede interpretar y compilar, todos los lenguajes igual. Es muy abstracto, por lo que suelo evitar decir este tipo de datos.

    Saludos.

    • Hola Sorancio, un procesador NO interpreta lenguaje ensamblador directamente (escribís el código y lo ejecutas), necesitas una etapa previa que es el compilado del código para formar un binario (ya se un binario esta compuesto por código asm y existen disassemblers para poder visualizarlos). Lo que lee el micro es código binario

      Y en realidad lo que se refiere a interpretado, es que aparece un soft intermediario entre el micro (ya se que tiene que pasar por el SO antes, pero asi lo resumo 🙂 ) y tu código para poder ejecutarlo, este intermediario es el interprete de comandos, y tu ejecutable se combierte en el mismo código fuente (escribís código y lo ejecutas sin compilar).

      Podes ir a la Wiki si tenes dudas.

      Saludos.

      • Creo que estás confundido, no he hablado de código ensamblador en ningún momento. El lenguaje máquina (o código maquina) es interpretado por el procesador, por lo que se podría poner en la categoría de lenguajes interpretados. Y sí, se podría interpretar que la CPU es como un software. Todo lenguaje de programación puede ser compilado y interpretado (simplemente creando un programa que lo haga), por lo que esta "habilidad" no depende del lenguaje, si no de la utilidad que le vean y los programas que lo manipulen que existan.

        Espero haberme explicado mejor ahora.

      • Acá dejo un link de la wiki http://es.wikipedia.org/wiki/Lenguaje_de_programación_interpretado

        En realidad si se piensa todo muy abstractamente, si, todo lenguaje necesita un interprete, si no, no habría lenguaje o habría lenguaje pero sin nadie que lo entienda. Y también cualquier lenguaje, en teoría, puede ser interpretado o compilado, pero si este lenguaje se oriento para uno u otro lado en la práctica, y se quiere llevar al extremo contrario, se tendría que armar algo aparte, diferente y muy poco práctico para para lo que el lenguaje no fue pensado.

        La cpu la podrías considerar como un interprete, pero por hardward. (y todo a bajo nivel o sea estas en la capa física) y aparte este código máquina y sus instrucciones son especificas para cada micro.

        Una de las características que considero en un lenguaje interpretado, es que vos te abstraes de la arquitectura en la que estas trabajando. El interprete va a estar compilado para cada arquitectura (pero ese no es tu problema, se encarga otro), pero tu código se va a poder ejecutar sin ninguna modificación extra.

        Por ejemplo si yo armo un script bash para linux, lo voy a poder ejecutar en mi PC x86, X64_86, en una aplicación arm empotrada, etc, porque lo interpreta el bash de linux. Lo mismo pasa en python, javascript, etc.

        En resumen un interprete agrega una capa mas de abstracción.

        Saludos

  11. James Gosling James Gosling y como no James Gosling.
    Y kien es ese tio? pues Gosling es reconocido como el creador del lenguaje de programación Java. Realizó el diseño original y la implementación del compilador original y la máquina virtual
    ultima hora: James Gosling, el creador de Java, abandona Oracle como dice el desde que oracle compro sun microsystem mato a sun y a java…..
    otra cosa sobre lenguajes por que no echais un vistazo al lenguaje de programacion D sisi D
    o encontrareis en la web http://www.digitalmars.com/d/ nada mas ke eso ke lo disfruten….

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

El algoritmo de las hormigas en la guerra

Dragon Ball: Raging Blast