He estado codificando en Java y Android desde hace mucho tiempo, acabo de enterarme de goLang, ¿es tan bueno goLang que pueda reemplazar a Java? Si es así, ¿por qué?

Java tiene una gran base de bibliotecas que han surgido en las últimas 2 décadas. Es difícil ser mejor que. Dicho esto, elegiré Go over Java cualquier día de la semana.

En cuanto a las preferencias personales, creo que la sintaxis más simple y los formatos de documentación son mejores. Odio la complejidad y Go ha tomado el enfoque más simple en ambos. La sintaxis se puede describir en un recorrido rápido y la definición del idioma no es tan larga para Go. El Javadoc automático actúa como si tuviera que obtener el máximo recuento de píxeles en cada página, blech. Combine eso con las rutas com.whatever.something.must.go.here.eventually.software y se vuelve tan denso que me pregunto cuánta productividad ha robado a lo largo de los años. Doble blech.

Al ser más técnicos, toman diferentes enfoques. Hay casos en los que cada uno ofrece ventajas y cada uno no. No puedo cubrirlos a todos, pero aquí hay algunos que se me ocurren cuando tomo mis decisiones. Dado eso, debes asumir algún sesgo.

Para la portabilidad, la JVM se trata de tener un entorno de tiempo de ejecución común que pueda ejecutar su archivo jar. A veces tienes que hacer frascos “Uber” que son enormes y tienen la cocina hundida en ellos, pero funciona. Go adopta el enfoque de que puede hacer que un ejecutable esté “súper” vinculado a su sistema. Seis de una manera, media docena de la otra. Me gusta el modelo Go porque no tengo que instalar la máquina virtual en tiempo de ejecución.

Administración de memoria, no son tan diferentes, pero Go parece ser más capaz de manejar una memoria grande. También proporciona mecanismos para bajar al nivel inferior sin saltar a través de JN [Vocal]. Siempre he visto que la JVM no funciona bien, ya que el tamaño del montón aumenta más allá de un puñado de GB. Ir parece hacerlo mejor, pero las pausas siguen ahí. Sé que ambos están mejorando las cosas, pero para espacios problemáticos que requieren 30-60 GB de RAM, no estoy seguro de cuán feliz estaría con Go, y no quiero saltar a través de los aros en llamas que requiere Java. Es curioso, realmente encuentro que Python / Cython es realmente bastante agradable en este espacio.

La concurrencia es la última gran. Java está diseñado con el hilo clásico como modelo básico. Llegaron lo suficientemente tarde al juego como para haberlo hecho mejor, pero así fue como las masas hicieron las cosas y Java siguió. Algunos de los lenguajes de JVM funcionan mucho mejor (me encanta Clojure), pero al mirar debajo de las cubiertas hay limitaciones para probar diferentes modelos que requieren fontanería. Solo mire lo que Clojure tiene que hacer para hacer posible la programación funcional pura porque la JVM no puede hacer algo tan simple como el TCO.

Go también dobló el modelo de hilo en sí mismo, pero ofrece un modelo CSP como alternativa. El modelo CSP es uno que prefiero por varias razones. Puedes conectarte en línea y buscar las discusiones sobre por qué esta es una excelente manera de hacer las cosas por ti mismo.

Finalmente, Go tiene un rendimiento decente, al igual que Java. Hay áreas donde ambos sufren, por lo que si buscas velocidad bruta, tampoco es el mejor lugar para pasar el tiempo. Java GC necesita mejorar, al igual que Go’s. El JVM JIT no siempre ofrece un gran rendimiento. Go tiene algunas verrugas debajo de las cubiertas que pueden ralentizarlo (¿por qué los canales tardan tanto?). En general, puede pasar tiempo y optimizar en cada entorno o puede ir a otro idioma. Me encanta la idea de a dónde va Julia. LuaJIT me ha quitado los calcetines en la velocidad bruta (aunque el modelo de memoria no está diseñado para grandes problemas sin al menos a través de pequeños aros). Finalmente, todavía programo en C y obtengo un rendimiento de nivel de sistema que es difícil de recrear.

Ir no es el objetivo correcto para hacer todo, y tampoco lo es Java. En el entorno de Android, tenía un ecosistema completo en Java y uno parcial en Go. Elija sabiamente y estará bien.

Java es un lenguaje rico y multifuncional, sin mencionar que es la popularidad número 1 en el mundo. Entonces, responda su pregunta de inmediato: no reemplazará a Java en el corto plazo.

Sin embargo, esto no significa que no pueda cambiar a Go si lo encuentra más cómodo. Hay algunos aspectos en los que Go realmente supera a Java (según mi opinión y experiencia).

Con Go, no te enfrentas a un problema de buena versión anterior

Con las versiones de Java siempre son un problema. Digamos que le gustaría ejecutar JAR 1.8 pero tiene JVM 1.6, es un gran problema. Con Go, tiene binarios universales, siempre listos para ejecutarse.

Ir es mucho más fácil

Hay muchas cosas buenas sobre Java, pero la simplicidad no es una de ellas. Es un lenguaje rico y multifuncional que también hace que sea un poco difícil de aprender y dominar. Ir es mucho más fácil de esta manera. El número de funciones es limitado, en comparación con la posibilidad de Java, pero la simplicidad del lenguaje gana mucho de eso. Java es un lenguaje complejo, mientras que la principal ventaja de Go es la simplicidad. En términos de simplicidad, es como Python pero más simple.

Go tiene una rica biblioteca incorporada

Con Java, siempre tiene toneladas de marcos y herramientas adicionales para instalar. En Java, tiene una rica biblioteca integrada que puede usar de inmediato.

Go ciertamente tiene ciertas ventajas sobre Java, pero no son intercambiables en todos los proyectos. A veces puede cambiar fácilmente de Java a Go, a veces no es la mejor opción. Le sugiero que lea nuestro libro electrónico Desarrollo de Google. Simple. Escalable Simultáneamente para comprender los lados positivos y negativos de Go y sus diferencias con otros idiomas.

En todas las áreas que conozco:

  • Desarrollo de aplicaciones móviles (Android para ser exactos): Java sigue siendo la única opción, Google dijo que Golang apoyará el desarrollo de Android, veamos cómo funciona.
  • Desarrollo de servicios backend: Java es una elección justa. Golang es mejor por:
  • Sintaxis más simple, líneas de origen mucho menores
  • Apoyo concurrente más elegante
  • Desarrollo de sitios web (alquiler de páginas web): Java es mejor por sus cadenas de herramientas maduras y sus terceras bibliotecas. Usar Golang es una forma factible, pero puedes luchar a cierta distancia
  • Procesamiento de grandes datos: Java es excelente, tiene muchos frameworks de uso amplio como Hadoop / Spark. Golang es muy competitivo, muchos marcos crecen y brillan.
  • Entonces no, GoLang no puede reemplazar a Java.

    Pero aún así, Golang es potencial y prometedor, es rápido, seguro y divertido. Cualquiera debería llevarlo.

    Hay un proyecto para permitir la creación de aplicaciones iOS y Android solo con Go y también para permitir que el código Go se comunique con el código Android. Todavía es temprano, pero parece prometedor.

    Para responder tu pregunta. Ningún lenguaje de programación reemplazará completamente a otro lenguaje. En la historia de los lenguajes de programación que están en el nivel de popularidad de Java, nada reemplazará realmente a Java. Java existirá por mucho, mucho tiempo. La mayoría de los programadores pueden dejar de desarrollar aplicaciones usando Java, pero con la mayor cantidad de código que existe en Java, está aquí para quedarse.

    Golang es compatible actualmente con iOS y Android. El equipo había mostrado una demostración tanto en iOS como en Android en la versión go 1.5. Sin embargo, el soporte está en la capa nativa que se puede desarrollar como juegos, no en la interfaz de usuario nativa de Android.

    Los Googlers afirman que el objetivo principal de Golang es resolver los problemas de Google. Estaban muy concentrados para reemplazar c ++ que para reemplazar a Java.

    Creo que go tiene la posibilidad de reemplazar a Java, pero no ahora. Porque Java es bastante popular y se está volviendo cada vez más popular, especialmente a partir del desarrollo de Android. Espero que eventualmente lo reemplace porque Golang es mucho más simple y mucho más fácil de entender que Java o C ++. Además, ir siempre será simple y pequeño a medida que salgan nuevos lanzamientos. Sin embargo, Java y C ++ se harán cada vez más grandes después de cada lanzamiento.

    Qué !! “goLang” … nunca he oído hablar de eso. De acuerdo, he oído hablar de eso, pero aún no ha creado ningún bombo publicitario que pueda reemplazar a JAVA.

    JAVA es de código abierto, por lo que es probable que se desarrollen más y más tecnologías a su alrededor, hasta que alguien descubra una sobrecarga que cualquier otro idioma pueda superar.

    Además, en un dominio técnico en constante cambio, no hay certeza de que incluso “ir” pueda hacer ese esfuerzo adicional que Java ha recorrido y continuará. Has trabajado en JAVA y ANDROID, por lo que sabes muy bien que no son idiomas universales para todos los dominios técnicos. El desarrollo de aplicaciones para iOS requiere que tengas conocimiento de diferentes programas. lang.

    Siempre tendrá que adaptarse una vez que se incorpore una nueva tecnología al mercado y qué enfoque se necesitará para desarrollar un software de aplicación. Si el dinero que puede ganar es bueno, entonces nunca puede quedar obsoleto 🙂

    Tú sabes –

    3 mil millones de dispositivos funcionan con Java

    Y he estado observando estas mismas estadísticas de los últimos 4 años years ¡Bromas aparte, Java es el lenguaje de computadora más popular!

    He respondido esta pregunta en un hilo similar:

    La respuesta de Basant Singh a ¿Es Golang el asesino de Java, dado que Golang ahora es mejor que Java para el desarrollo web?

    More Interesting

    Soy un desarrollador Java / J2EE con aproximadamente 2 años de experiencia laboral. Quiero aprender el desarrollo de Android. ¿Debo solicitar certificaciones en línea como udacity?

    Me he encontrado con tres lanzadores de Android que tienen más de 100 millones de descargas que alcanzan esos números en solo unos pocos meses; ¿Cómo es eso posible?

    Mi galaxy nexus S se ha vuelto lento y lento. ¿Qué tengo que hacer?

    He aprendido muy básicos de Android Studio. ¿Cómo debo proceder?

    Tengo un juego de iOS que quiero convertir a Android. ¿Cuáles son algunas de las mejores empresas de desarrollo de Android a las que puedo externalizar mi trabajo?

    Tengo un Xperia z con 4.4.2 y la batería se agota muy rápido. ¿Qué tengo que hacer?

    Mi tableta Android muestra un problema de autenticación al conectarme con mi Wi-Fi. ¿Qué tengo que hacer?

    Mi Nexus 7 (2012) se ha vuelto demasiado lento después de la actualización 5.0. Google dice que no hay forma de resolver esto. ¿Qué puedo hacer ahora?

    Quiero hacer una aplicación de Android pero no sé la codificación, ¿qué debo hacer?

    Soy desarrollador e intento mejorar mi aplicación. Escuché que las pruebas A / B y las pruebas multivariadas son muy útiles para las mejoras. ¿En qué áreas puedo usar estos métodos?

    Estoy aprendiendo C y C ++ y quiero comenzar una empresa. ¿Qué debo aprender, PHP o Android?

    Quiero aprender a desarrollar una aplicación para iOS y Android. ¿Cuál sería el mejor lenguaje de programación para que los novatos aprendan?

    Estoy planeando comprar el Xiaomi Redmi 2. ¿Debo ir por él? ¿Cómo es?

    Mi Android no reproduce videos, ¿qué debo hacer?

    Mi teléfono está rooteado y Snapchat no me permite iniciar sesión, ¿qué puedo hacer para ocultar mi root?