sábado, 6 de junio de 2020

LENGUAJE GO


Historia breve. : ¿GO O GOLANG?

Go es un lenguaje de programación concurrente y compilado, desarrollado por los ingenieros de Google. Go vio la luz en el año 2009, esto hace a Go un lenguaje relativamente nuevo, pero que esto no nos engañe, Go es un lenguaje maduro, con el cual se han desarrollado miles de proyectos alrededor del mundo, inclusive, versiones actuales de Go están escritas con el mismo Go. 

Podemos hacer uso de Go si nos encontramos trabajando en Windows, MacOS y en ciertos sistemas GNU/Linux.

 

Características.

 

  • Go es un proyecto open source.
  • Go usa una sintaxis similar a C.
  • Go usa tipado estatico (statically typed) y su rendimiento es comparable al de lenguajes como C y C++ ya que, al igual que estos, el compilador convierte el código de Go a código máquina.
  • Go tiene muchas de las características y facilidad de lenguajes dinámicos como Python.
  • Aun siendo un lenguaje diseñado para la programación de sistemas, provee de un recolector de basura, reflexión y otras capacidades de alto nivel que lo convierten en un lenguaje muy potente.
  • El binario de Go tiene la característica de compilación cruzada de manera nativa.
  • Go admite el paradigma de programación orientada a objetos, pero a diferencia de los lenguajes de programación más populares no dispone de herencia de tipos y tampoco de palabras clave que denoten claramente que soporta este paradigma. Otro detalle que puede resultar confuso es que la definición de un tipo ("clase") se realiza por medio de declaraciones separadas (interfaces, structs, embedded values). Go permite el uso de delegación (a través de embedded values) y polimorfismo (por medio de interfaces).
  • Go utiliza la concurrencia a través de las gorutinas.
  • Go es un lenguaje de programación pensado en aprovechar sistemas con múltiples procesadores.

 

Funcionalidades más importantes.

 

1.      El soporte del módulo en el gocomando ahora está listo para su uso en producción. Alentamos a todos los usuarios a migrar a gomódulos para la gestión de dependencias.

 

2.      Incrustar interfaces con conjuntos de métodos superpuestos

3.      Mejora del rendimiento diferido

4.      Las goroutinas son asincrónicamente preventivas

5.      El asignador de páginas es más eficiente.

6.      Los temporizadores internos son más eficientes.

 Logo.







Aplicabilidad y ejemplos.

 

Sup. Una herramienta tipo Deployer para lanzar comandos remotos a multitud de servidores en paralelo, como hace Ansible, Capistrano, Deployer, y otros, pero más sencillo y rápido.

Capze. Genera una estructura de despliegue tipo Capistrano rápidamente, se integra muy bien con Sup.

Restic. Permite generar backups y backups incrementales rápidamente, más rápido que duplicity.

Duplicacy. Aún mejor que Restic, permite subir el backup a múltples servicios online de disco: S3, Onedrive, Google Drive, Dropbox, FTP, etc...

LNAV. Un visor de logs hypervinaminado, multitud de utilidades como leer directamente de históricos guardados en TGZ sin tener que cambiar de fichero.

Hugo. Un generador de webs estáticas. Para qué necesitas Wordpress si puedes tener algo como esto...

Fast Reverse Proxy. Permite montar un proxy que exponga los puertos de ordenadores dentro de un NAT a una IP pública. Muy rápido y gran utilidad para desarrollar servicios web en modo pruebas.

Minio. Directamente todo un servidor S3 personal en un solo ejecutable. Impresionante.

Caddy. Un servidor web con soporte para HTTP2, certificados, gran rendimiento y fácil configuración en un solo fichero. Lo uso principalmente para no tener que montar un Apache o Nginx en un entorno de desarrollo, el fichero de configuración puede ir en el mismo repo GIT y arrancar el proyecto en segundos arrancando las dependencias al mismo tiempo (servidor MySQL, Redis, o lo que sea).

NATS. Uno de los grandes descubrimientos, gestiona un sistema de paso de mensajes Pub-Sub y gestión de colas de forma instantánea sin grandes requerimientos como pasa con RabbitMQ. Permite montar cluster del servicio de forma sencilla y aguanta cientos de miles de mensajes por segundo.

Aurora. Si buscas un servidor de Beanstalk rápido y sencillo esto es lo que necesitas.

 

Empresas que lo usan y ejemplos aplicaciones desarrolladas.

  • YOUTUBE
  • BLOGGER
  • FACEBOOK
  • GOOGLE
  • MERCADO LIBRE
  • GITHUB

Porcentaje de uso del lenguaje de programación GO.




Ofertas de las páginas de empleo y cuadro comparativo.




..


No hay comentarios:

Publicar un comentario