¿Cuándo sería Go una mejor opción sobre Java o C ++?

Creo que la principal ventaja de Go sobre C ++ y Java es su compatibilidad con la concurrencia de mensajes como parte del lenguaje: goroutines, canales, select. Estas son buenas abstracciones que creo que son más fáciles de usar que los hilos / bifurcación y sus primitivas de sincronización típicas.

Go es un gran lenguaje para implementar algo que normalmente se vería afectado por su falta de concurrencia. No puede vencer a C ++ en términos de rendimiento bruto, pero podría argumentar que algunos programas de C ++ no aprovechan al máximo la concurrencia porque son más complicados para razonar. O bien, podría lograr el mismo nivel de concurrencia en Go con menos código.

En términos de Go vs. Java, una cosa acerca de Go es que se compila en código nativo. El tiempo de ejecución de Go está vinculado, por lo que los binarios son grandes, ¡pero al menos los tienes! Otro objetivo de Go es ser un poco más sucinto que Java.

Los autores de Go discuten muchas otras razones en Go at Google: Diseño de idiomas en el servicio de ingeniería de software.

Goroutines y canales proporcionan el mejor soporte que he visto para hacer uso de la concurrencia.

Compárese con Ruby, en teoría, ruby ​​1.9 viene con hilos reales, pero aún así están limitados por el Global Interpreter Lock, muy similar a Python. Hablando brevemente, Ruby (y Python) simplemente no pueden lidiar con aplicaciones concurrentes reales.

En comparación con Java, que creo que es el principal competidor de Go en esta área, las rutinas y canales de Go son mucho más fáciles de trabajar que los hilos y bloqueos de Java, simplemente no hay absolutamente ninguna comparación.

Ir prácticamente destruye la competencia en esta área.

Construir sistemas usando nuevos lenguajes es un riesgo. Go es de código abierto, lo cual es bueno, pero si Go pasa de moda, dentro de unos años podría verse atrapado con una inversión sustancial en un sistema construido en un lenguaje que casi nadie sabe cómo mantener.

Ya me he topado con este problema: piense en COBOL, o A + (lenguaje de programación), o en lenguajes aún más oscuros como Application Master, todos ellos idiomas que alguna vez fueron populares en su época. Mientras tanto, C ++ y Java siguen encendiéndose.

No he encontrado la concurrencia de Java difícil de hacer. Fue construido para la concurrencia. Java también tiene un paquete de simultaneidad que hace que todas esas viejas quejas desaparezcan. Java 101: concurrencia de Java sin el dolor, parte 1

Quizás en diez años. Puede haber casos en los que técnicamente es la mejor solución, pero en este momento si le importa su aplicación y desea que las personas la mantengan por usted, entonces realmente solo tiene dos opciones. Las personas que están de moda ahora mismo estarán en el próximo gran momento cuando suceda, yo soy una de esas personas. Go es un lenguaje prometedor, pero a menos que desee reescribir, entonces adhiérase a algo probado y probado.

Cuando estás aprendiendo a programar servidores (backends en la nube). Un novato total puede conectar un backend Go usando paquetes estándar en un día, o dos como máximo. Intente hacerlo con C ++ … Es posible que pueda hacerlo con Java. Tal vez.

Go Go Go 🙂 WeTransfer alternativa a QuicTransfer Envíe sus archivos de gran tamaño

Simple y fácil de usar sin registro subir y compartir archivos. Usamos el protocolo Quic, por lo que amamos el navegador Google Chrome 🙂

enviar archivos grandes enviar archivos grandes por correo electrónico enviar archivos grandes enviar archivos grandes gratis enviar archivos grandes transferir archivos grandes