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.
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
- MERCADO LIBRE
- GITHUB
No hay comentarios:
Publicar un comentario