Lenguaje de programación Go (Introducción)

Introducción

Go es un lenguaje de programación procedimental. Fue desarrollado en 2007 por Robert Griesemer, Rob Pike y Ken Thompson en Google, pero se lanzó en 2009 como un lenguaje de programación de código abierto. Los programas se ensamblan mediante el uso de paquetes, para una gestión eficiente de las dependencias. Este lenguaje también admite patrones de adopción de entornos similares a los lenguajes dinámicos. Por ejemplo, inferencia de tipo (y := 0 es una declaración válida de una variable y de tipo float).

 Comenzando con la programación Go

Hay varios IDE en línea, como The Go Playground, repl.it, etc., que se pueden usar para ejecutar programas Go sin instalar. 

Para instalar Go en nuestras propias PC o Laptop, necesitamos los siguientes dos software: Editor de texto y Compilador 
Editor de texto: El editor de texto le brinda una plataforma donde escribe su código fuente. La siguiente es la lista de editores de texto:  

  • Bloc de notas de Windows
  • Comando de edición del sistema operativo
  • Breve
  • épsilon
  • vm o vi
  • Emacs
  • Código VS

Encontrar un compilador de Go: la distribución de Go viene como un archivo binario instalable para FreeBSD (versión 8 y superior), Linux, Mac OS X (Snow Leopard y superior) y sistemas operativos Windows con 32 bits (386) y 64 bits (amd64). ) arquitecturas de procesador  x86 .
Para obtener más instrucciones sobre la instalación. Visite Para instalar la distribución GO  

Note: Extension of source code file of go language must be .go

Escribiendo el primer programa en Go:  

Go

package main 
  
import "fmt"
 
func main() {
 
     // prints geeksforgeeks
     fmt.Println("Hello, geeksforgeeks")
}

Producción:  

Hello, geeksforgeeks

Explicación de la sintaxis del programa Go: 

  • Línea 1: Contiene el paquete principal del programa, que tiene el contenido general del programa. Es el punto inicial para ejecutar el programa, por lo que es obligatorio escribir.
  • Línea 2: contiene import «fmt» , es un comando de preprocesador que le dice al compilador que incluya los archivos que se encuentran en el paquete.
  • Línea 3: función principal , es inicio de ejecución del programa.
  • Línea 4: fmt.Println() es una función de biblioteca estándar para imprimir algo como una salida en la pantalla. En esto, el paquete fmt ha transmitido el método Println que se usa para mostrar la salida.
  • Comentario: los comentarios se usan para explicar el código y se usan de manera similar a Java , C o C++ . Los compiladores ignoran las entradas de comentarios y no las ejecutan. Los comentarios pueden ser de una sola línea o de varias líneas.

Comentario de una sola línea: 

Sintaxis: 

// single line comment

Comentario de varias líneas: 

Sintaxis: 

/* multiline comment */

El siguiente es otro ejemplo:  

Go

package main
import "fmt"
 
func main() {
   fmt.Println("1 + 1 =", 1 + 1)
}

Producción:  

1 + 1 = 2

Explicación del programa anterior: 
En este programa anterior, la misma línea de paquete, la misma línea de importación, la misma declaración de función y usa la misma función Println que hemos usado en el programa 1st GO . Esta vez en lugar de imprimir la string “Hola, geeksforgeeks” imprimimos la string 1 + 1 = seguido del resultado de la expresión 1 + 1. Esta expresión se compone de tres partes: el literal numérico 1 (que es de tipo int ), el operador + (que representa la suma) y otro literal numérico 1. 

¿Por qué este “idioma Go”?

Porque el lenguaje Go es un esfuerzo por combinar la facilidad de programación de un lenguaje interpretado y tipificado dinámicamente con la eficiencia y seguridad de un lenguaje compilado y tipificado estáticamente. También pretende ser moderno, con soporte para computación en red y multinúcleo. 

¿Qué excluye en Go que está presente en otros idiomas? 

  • Go intenta reducir la cantidad de tecleo en ambos sentidos de la palabra. A lo largo de su diseño, los desarrolladores intentaron reducir el desorden y la complejidad.
  • No hay declaraciones de reenvío ni archivos de encabezado; todo se declara exactamente una vez.
  • La tartamudez se reduce mediante la derivación de tipo simple utilizando la construcción := declare-and-initialize.
  • No existe una jerarquía de tipos: los tipos simplemente son , no tienen que anunciar sus relaciones.

Limitaciones de hardware

Hemos observado que en una década, la configuración de hardware y procesamiento está cambiando a un ritmo muy lento. En 2004, P4 tenía una velocidad de reloj de 3,0 GHz y ahora, en 2018, Macbook pro tiene una velocidad de reloj de aproximadamente (2,3 Ghz frente a 2,66 Ghz). Para agilizar la funcionalidad usamos más procesadores, pero al usar más procesador el costo también aumenta. Y debido a esto, usamos procesadores limitados y, al usar un procesador limitado, tenemos un lenguaje de programación pesado cuyos subprocesos consumen más memoria y ralentizan el rendimiento de nuestro sistema. Por lo tanto, para superar este problema, Golang se ha diseñado de tal manera que, en lugar de utilizar subprocesos, utiliza Goroutine, que es similar a los subprocesos pero consume menos memoria. 
Al igual que los subprocesos, consume 1 MB, mientras que Goroutine consume 2 KB de memoria, por lo tanto, al mismo tiempo, podemos activar millones de goroutine. 
Entonces, el punto discutido anteriormente hace que golang sea un lenguaje fuerte que maneja concurrencia como C++ y Java. 

Ventajas y desventajas del lenguaje Go

ventajas:  

  1. Flexible: es conciso, simple y fácil de leer.
  2. Concurrencia: permite que múltiples procesos se ejecuten de manera simultánea y efectiva.
  3. Resultado rápido: su tiempo de compilación es muy rápido.
  4. Biblioteca: proporciona una rica biblioteca estándar.
  5. Recolección de basura: es una característica clave de go. Go sobresale al brindar mucho control sobre la asignación de memoria y ha reducido drásticamente la latencia en las versiones más recientes del recolector de elementos no utilizados.
  6. Valida para la interfaz y el tipo de incrustación.

Desventajas:  

  1. No tiene soporte para genéricos, incluso si hay muchas discusiones al respecto.
  2. Los paquetes distribuidos con este lenguaje de programación son bastante útiles, pero Go no está tan orientado a objetos en el sentido convencional.
  3. No hay algunas bibliotecas, especialmente un kit de herramientas de interfaz de usuario.

Algunas aplicaciones populares desarrolladas en Go Language

  • Docker: un conjunto de herramientas para implementar contenedores de Linux
  • Openshift: una plataforma de computación en la nube como servicio de Red Hat.
  • Kubernetes: el futuro de los procesos de implementación automatizados sin problemas
  • Dropbox: migró algunos de sus componentes críticos de Python a Go.
  • Netflix: para dos parte de su arquitectura de servidor.
  • InfluxDB: es una base de datos de series temporales de código abierto desarrollada por InfluxData.
  • Golang: El idioma en sí fue escrito en Go.

Compañías sabias del país que actualmente usan Go Language. 

Características del lenguaje go 

  • Diseño del lenguaje: los diseñadores del lenguaje hicieron un propósito consciente de mantener el lenguaje simple y fácil de entender. Todos los detalles se encuentran en unas pocas páginas y se tomaron algunas decisiones de diseño interesantes a través del soporte Orientado a Objetos en el lenguaje. Hacia esto, el lenguaje es obstinado y recomienda una forma idiomática de lograr las cosas. Prefiere la Composición sobre la Herencia. En Go Language, «Haz más con menos» es el mantra.
  • Gestión de paquetes: Go fusiona el flujo de trabajo de los desarrolladores modernos que trabajan con proyectos de código abierto y lo incluye en la forma en que gestiona los paquetes externos. Se proporciona soporte directamente en las herramientas para obtener paquetes externos y publicar sus propios paquetes en un conjunto de comandos sencillos.
  • Potente biblioteca estándar: Go tiene una potente biblioteca estándar, que se distribuye como paquetes.
  • Escritura estática: Go es un lenguaje escrito estático. Por lo tanto, en este compilador no solo trabaja para compilar el código con éxito, sino que también garantiza las conversiones de tipos y la compatibilidad. Debido a esta función, evite todos los problemas que enfrentamos en los lenguajes de escritura dinámica.
  • Compatibilidad con pruebas: Go nos proporciona las funciones de prueba unitaria por sí mismo, es decir, un mecanismo simple para escribir su prueba unitaria en paralelo con su código debido a esto, puede comprender la cobertura de su código mediante sus propias pruebas. Y eso se puede usar fácilmente para generar la documentación de su código como ejemplo.
  • Independiente de la plataforma: el lenguaje Go es como el lenguaje Java, ya que admite la independencia de la plataforma. Debido a su diseño modular y modularidad, es decir, el código se compila y se convierte en forma binaria que es lo más pequeña posible y, por lo tanto, no requiere dependencia. Su código se puede compilar en cualquier plataforma o cualquier servidor y aplicación en la que trabaje.

Publicación traducida automáticamente

Artículo escrito por anita yadav y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *