¿Cuáles son las posibilidades de que Google Go se convierta en un idioma común? [cerrado]

58

¿Quién aquí está aprendiendo Go? ¿Otras compañías están considerando usarlo? ¿Es probable que se utilice ampliamente?

    
pregunta interstar 25.09.2010 - 05:26

12 respuestas

46

Cuando se trata de lenguajes de programación, el viejo adagio, "no es quién eres, es quien sabes" definitivamente es verdad. C y C ++ fueron patrocinados por AT & T, Java fue traído a nosotros por Sun, la familia .NET salió de Microsoft, y todos se hicieron muy populares muy rápidamente. Luego tenemos Objective-C y Python, que estuvieron alrededor por bastante tiempo y permanecieron muy oscuros hasta que fueron descubiertos y promocionados por Apple y Google, respectivamente, y luego, de repente, despegaron. Pero los idiomas sin un patrocinador importante tienden a languidecer en la oscuridad, no importa lo buenos que sean.

Go es patrocinado por Google. No es difícil llegar a la conclusión correcta aquí. Dale cinco años y va a ser enorme.

    
respondido por el Mason Wheeler 25.09.2010 - 05:41
17

En realidad no creo que Go tenga tanto éxito. Una razón por la que no alcanzará a las grandes masas es que se pretende que sea un lenguaje para la programación del sistema.

    
respondido por el Jonas 25.09.2010 - 07:18
16

Hay una necesidad real de un lenguaje de sistemas con características más modernas. C y C ++ están demasiado limitados por el código heredado y la compatibilidad con versiones anteriores para mejorar mucho. Dicho esto, no creo que Go cumpla ese rol en su forma actual. Su diseño es demasiado minimalista. Si bien su modelo de concurrencia es emocionante, trae algunas otras funciones de idiomas de nivel superior al mundo de los sistemas. (La última vez que lo verifiqué, que era cierto hace un tiempo, ni siquiera tenía excepciones). Además, al menos en la medida en que El juego de referencia de lenguaje computacional es una buena medida (es un indicador muy aproximado), no es tan rápido como un lenguaje de sistemas "real".

Creo que el idioma con la mejor oportunidad de llenar el vacío de un lenguaje de sistemas más moderno es D . D es técnicamente mucho más fuerte que Go pero políticamente más débil. No está respaldado por una gran corporación. Lo que realmente necesita es algunas bibliotecas (esto se está abordando rápidamente ahora que la especificación del idioma es estable) y una aplicación asesina.

    
respondido por el dsimcha 21.03.2011 - 16:08
10

Estoy aprendiendo Go y sí, se usa productivamente además de Google y Heroku.

Go es definitivamente un lenguaje agradable para la Programación del Sistema. Código simple como en C, estructuras poderosas como en C ++ y características de seguridad como en Java. Dado que es un idioma muy joven, se han heredado muchas cosas bonitas de otros idiomas:

  • iteración sobre rangos
  • Canales (olvídese mutexes, etc.)
  • sin jerarquía de tipos, solo herencia de interfaz
  • de hecho, Go ni siquiera conoce las clases, pero los "tipos" más flexibles: las interfaces se heredan automáticamente cuando los métodos definidos coinciden
  • menos repetitivo: i := 1 en lugar de int i = 1 , func f(x, y, z int) en lugar de void f(int x, int y, int z) , type Foo struct { a, b int }; bar := Foo{1, 2} en lugar de class Foo { int a; int b; Foo(int a, int b) { this.a = a; this.b = b; } } /* ... */ Foo bar = new Foo(1, 2);
  • excepciones ("pánico") solo para casos realmente excepcionales: en los demás casos, la función propensa a errores puede devolver un parámetro de error adicional que puede ignorar fácilmente

Teniendo en cuenta todas estas cosas agradables y la seguridad y el rendimiento que solo se conocen de los idiomas tipificados estáticamente, a muchas personas de la comunidad dinámica de idiomas les ha gustado Go. En la mayoría de los casos, Go-code no es mucho más largo que el código Ruby, pero en todos los casos es más seguro y está mejor estructurado.

Pero al final, supongo que el argumento matador de Go es la concurrencia. Es un lenguaje tipo C que tiene un potente soporte de concurrencia que solo se conoce a partir de lenguajes funcionales.

    
respondido por el Philip 14.06.2011 - 22:14
5

Diría que esto depende principalmente de las bibliotecas / servicios / software que se crearán en / para / usando Go. Las personas usan algo en tres situaciones (el orden importa): cuando prácticamente no tienen otra opción (Objective-C), cuando su entorno lo usa (FORTRAN), cuando hace su vida más fácil (Ruby).

    
respondido por el mbq 25.09.2010 - 11:35
4

Puede que sea un poco tarde para esto, pero Go se está convirtiendo en un lenguaje popular ahora y probablemente entrará en la corriente principal con Google impulsándolo. Se está promocionando como un lenguaje utilizado para sistemas y productos dentro de Google y se está promoviendo como un idioma para usar con Google App Engine. Hay algunas personas muy inteligentes en el backend de Go que lo construyen y lo mejoran. Hay algunas personas muy inteligentes e imaginativas que trabajan en bibliotecas de terceros para Go.

Go llena un vacío que otros idiomas no han llenado del todo. Para mí, solía intentar llenar ese vacío con Perl y un montón de soluciones y trucos. No creo que sea el lenguaje perfecto para todas las situaciones y todas las personas, pero ciertamente es un candidato para un gran número de situaciones. Por ejemplo, funciona muy bien para aplicaciones web y también funciona bien para aplicaciones de escritorio o basadas en servidor. Hace un trabajo tan fantástico con HTTP y WebSocket (lo que significa que puede omitir Apache o nginx por completo) al mismo tiempo que se ejecuta muy bien en Windows, Linux y OS X para ambos demonios y para las aplicaciones de escritorio habituales. En este momento, la única situación en la que falla es para las aplicaciones de Android, que espero se solucione pronto. Lo uso para aplicaciones de escritorio de Windows, aplicaciones de escritorio de Linux y aplicaciones web basadas en Linux. Se siente bien hacer un trabajo real y no tener que juguetear con soluciones alternativas.

Creo que pasarán varios años antes de que llegue a la corriente principal, pero llegará allí. Creo que se necesita construir más bibliotecas de terceros, como el tipo de número y selección que Perl tiene con CPAN. Llegará allí.

    
respondido por el Emmaly Wilson 27.05.2012 - 05:05
2

¿Qué significa "mainstream" de todos modos? Sin saber eso, siempre es tan difícil responder esta pregunta. Echemos un vistazo a eso.

Hay muchas definiciones posibles. Aquí hay algunos:

Vista de administración:

  • Haz que los clientes te pidan que lo uses
  • Haga que la administración le exija que lo use
  • La administración no lo criticará por usarlo

Vista de desarrolladores:

  • Herramientas de lenguaje comúnmente disponibles (por ejemplo, en distribuciones de Linux)
  • Las herramientas de lenguaje estarán comúnmente disponibles durante 10 años
  • Crea artefactos de software que persistirán y se utilizarán durante al menos 10 años

Vista profesional:

  • Las habilidades específicas del idioma son transferibles a otros trabajos
    • Los reclutadores lo piden

Teniendo en cuenta todo lo anterior, argumentaría que la única respuesta honesta es probablemente "demasiado pronto para decirlo", pero creo que el mejor indicador de cualquier longevidad real es el número de pequeñas empresas que Usa el lenguaje. Las grandes organizaciones están muy bien, incluso pueden ser esenciales para el crecimiento de un lenguaje o sistema de herramientas debido a la escala de inversión que pueden aplicar, pero son más bien propensas a pasar modas (con algunas excepciones). Por el contrario, si una pequeña empresa se ha desarrollado utilizando el lenguaje para ofrecer productos y servicios, es muy probable que deseen contribuir a garantizar que aún puedan hacerlo en el futuro. También forman la base de un mercado laboral fuerte en el área, y también demandan herramientas. Curiosamente, esos son varios indicadores de la corriente principal en mi lista (posiblemente más, dependiendo de los caprichos de la gerencia).

Entonces, ¿cuántas personas fuera de Google están usando Go para su trabajo? No tengo idea. (No lo estoy. Mis necesidades están actualmente cubiertas por una mezcla de Java, C y Tcl. YMMV).

    
respondido por el Donal Fellows 20.03.2011 - 01:23
2

Ya es más popular que algunos idiomas.

Existe la posibilidad de que Go sea el idioma más importante en más de 20 años. Realmente presenta algunos grandes beneficios en términos de conjuntos de datos masivos, que presentan los sitios de redes sociales, computación en la nube, búsqueda y dispositivos móviles.

Los sitios como Facebook, Twitter, Linkedin, YouTube y las redes de publicación de anuncios tienen mucho más uso para Google Go que Ruby On Rails, al menos en algunos contextos.

    
respondido por el mrhassell 10.05.2012 - 07:40
1

Miré a Go cuando me enteré. Como principiante completo, todavía estoy aprendiendo los idiomas para principiantes (en mi caso Java, C #, Python y Scheme), que es mucho para entender, pero si no estuviera absorto en tantos idiomas diferentes, lo habría considerado seriamente.

Me imagino que a mi nivel, no hay nada de malo en aprender lo básico antes de saltar sobre los carros. Aunque, si recuerdo bien, cuando buscaba Go, me sentí muy atraído por Erlang por alguna razón.

    
respondido por el SnowMonkey 20.03.2011 - 00:10
1

Solo he visto Go por esta pregunta, por lo que no puedo comentar si se va a convertir en un lenguaje común, pero una cosa me ha emocionado mucho:

enlace

Primero encontré el concepto de Canales en Occam-pi y debo decir que es uno de los mejores conceptos de programación nunca . Hace que la concurrencia parezca tan fácil donde hacer lo mismo en un lenguaje de tipo C a veces puede ser un dolor.

Por lo que he visto (en los 10 minutos que he mirado), Go parece estar intentando combinar muchos conceptos de programación diferentes, pero eso tiene el riesgo de que sea un Jack de todos los oficios, un maestro de ninguno.

    
respondido por el Richard 21.03.2011 - 15:52
0

Sospecho que el hecho de que se convierta en un tema principal dependerá de si Google lo adopta como un idioma compatible para Appengine y / o GWT.

    
respondido por el Chris Buckett 25.09.2010 - 08:49
0

Deseo que Go se haga popular.

Es potente en sintaxis. (Aprende las ventajas de python, C, Java). Es bueno para CPU multi-core. (La función del canal es mucho mejor que la programación de hilos). El diseño evita la trampa de muchos programadores. (el puntero equivocado, el mismo estilo de codificación de la herramienta gofmt, evita el error de la variable sin inicializar, La primera vez, lo pruebo por primera vez, ya que es python + C, pero con la velocidad cercana a la velocidad de 1/2 C.

Pero, luego de un profundo aprendizaje, encontré que puede ser adecuado para desarrollar tolerancia a fallos y una arquitectura escalable

    
respondido por el Daniel YC Lin 30.04.2011 - 09:35

Lea otras preguntas en las etiquetas