Red de conocimiento informático - Aprendizaje de programación - La puerta a Go está abierta, vamos

La puerta a Go está abierta, vamos

Go se ha convertido rápidamente en un lenguaje de programación de sistemas muy popular y exitoso en los últimos 10 años.

Antes de Go, C, C, Java y C# eran grandes nombres en el mundo de la programación. Go es todavía un bebé hasta el día de hoy, pero está aquí para ti.

Abre un nuevo mundo para el software de código abierto. Un lenguaje tan perfecto llegó en el momento justo para marcar el comienzo de una nueva era de la informática. Todo este software conocido está escrito en Go:

Cloud Native no abandonará Go, ni tampoco la Cloud Native Computing Foundation (Fundación CNCF). Esto es sólo el comienzo. Go también se ha apoderado de otras partes del software de código abierto, sin mencionar la infraestructura interna de las grandes empresas.

De hecho, esta es la razón por la que la gente tiende a utilizar Go para construir sistemas de producción y sistemas a gran escala en proyectos de código abierto (u otros proyectos).

Todos empezaron a probar el lenguaje Go en el patio de juegos de Go (Nota del traductor: un sitio web de edición en línea de Golang). Sólo necesita abrir un sitio web, escribir un código y ejecutarlo. No se requiere instalación, puedes comenzar a escribir código en cualquier lugar, lo cual es una buena experiencia.

Luego descarga una cadena de herramientas (Nota del traductor: cadena de herramientas, generalmente se refiere a herramientas de compilación): un archivo binario go. Puede obtener un software de producción ejecutando el comando go build. No es necesario aprender la cadena de herramientas GCC, lenguaje C, Linux, objetos compartidos, JVM u otras tecnologías relacionadas.

No importa lo que estés desarrollando, sólo necesitas centrarte en el negocio del desarrollo, no en las herramientas que necesitas. Go ya ha resuelto las herramientas correspondientes para ti.

En épocas anteriores, después de compilar el código, no se podía simplemente ejecutarlo porque dependía de otros componentes del sistema: como objetos compartidos, JVM, etc.

go build generará un archivo binario ejecutable. Envíalo a tu servidor. Funciona porque se ha compilado todo lo que necesita. Este sencillo ejemplo demuestra su poder. La buena noticia es que su proceso de implementación será mucho más sencillo que antes. -- Simplemente transfiera el binario a su servidor. Incluso puedes construir sobre diferentes sistemas con un puñado de variables de entorno. Esta característica es muy adecuada para CLI (Nota del traductor: herramientas de línea de comandos). Estos son algunos de los casos más exitosos:

La nube no es algo nuevo, es un estándar. La virtualización y los contenedores se ejecutan y finalizan sin ninguna notificación, los flujos de datos van y vienen de manera poco confiable y los RPC se envían y reintentan con frecuencia.

Lo que el software actual necesita es ejecutarse de manera eficiente y correcta, y necesita operar todos estos eventos en paralelo. La arquitectura distribuida tolerante a fallos también es un estándar en la actualidad.

Ahora obtienes una operación básica integrada que es fácil de entender. Las rutinas y los canales tienen sentido porque imitan lo real.

Solo necesitas agregar la palabra clave go antes de una función y se ejecutará simultáneamente. Puede comprender fácilmente estas características de concurrencia y concentrarse en el desarrollo de su negocio. ¿Ves una tendencia?

Go es un sistema distribuido potente y sin bloqueos porque fundamentalmente simplifica las operaciones concurrentes.

Es por eso que estamos viendo software que es más flexible, más rápido y eficiente en cuanto a CPU. Con Go, puedes desarrollar cosas que encuentres en materiales de investigación.

Acerca de Go y la programación del sistema GC (Nota del traductor: se refiere al mecanismo de recolección de basura) suele ser un tema controvertido.

En C/C tienes control total sobre la memoria. Depende de usted decidir cuándo y cómo asignar y liberar memoria. La JVM reemplaza su control a través del recolector de basura.

En general, GC es muy conveniente, pero siempre hay algunas personas en el mundo que no quieren usarlo. Es difícil.

Administrar la memoria manualmente es difícil, y aún más cuando se hace concurrencia. Antes de Go, teníamos desafíos contradictorios: necesitábamos un marco que no perdiera memoria ni rompiera programas, pero los programadores tenían que entender esto.

El resultado final es que hay millones de bibliotecas que hacen concesiones de diferentes maneras, lo que obliga a su programa a ejecutarse de una manera única.

Desde la perspectiva de Go:

Go es un lenguaje de programación de sistemas que incluye GC. Esto no cambiará.

De hecho, GC se ha disparado en Go. Estos son los casos extremos de la recolección de basura de Go y pueden surgir algunos problemas. Pero hay muchas opiniones para que funcione mejor y el valor predeterminado es 90.

Si encuentra una situación 10, puede realizar un nuevo ajuste que sea incluso más simple que el ajuste de la recolección de basura de JVM.

La biblioteca estándar Go es una de las mejores bibliotecas comerciales. No es grande pero cubre 80 funciones comunes y no es complicado pero puede hacer cosas complejas por usted.

Los paquetes populares de Go son en su mayoría de alta calidad y deben construirse sobre una biblioteca estándar de alta calidad. Más importante que la biblioteca estándar es comprender la mente del código, lo que fomenta el uso de interfaces y convenciones. Por ejemplo:

Estos paquetes generalmente coinciden en estas u otras convenciones, por lo que funcionan juntos sin problemas. Tienen el mismo concepto, escriben y reutilizan.

Como se mencionó al principio del artículo, el lenguaje Go perfecto llega en el momento justo.

Ya he explicado las razones. Podemos abrir una gran cantidad de software potente de código abierto y ver que Go simplifica muchas cosas.

Espero que Go continúe convirtiéndose en el estándar en otras áreas: servicios front-end (que reemplazan a Rails/Node.js), CLI (que reemplazan muchos lenguajes de secuencias de comandos) y tal vez GUI y aplicaciones móviles.

Mientras Go celebra su décimo aniversario, ha aumentado rápidamente. ¿Pero su tendencia se expandirá 10 veces en los próximos 10 años?

Una vez más, Go se convertirá en el lenguaje de programación estándar en varias áreas importantes de la ingeniería de software.