Golang

Resenha de livro A linguagem de programação Go

Resenha de livro A linguagem de programação Go
The Go Programming Language, de Alan A. UMA. Donovan e Brian Kernighan, é revisado neste post. Brian Kernighan é conhecido como o co-autor de The C Programming Language, e esse livro se separou como um texto padrão para gerações de engenheiros. Go tem sido freqüentemente referido como o 21st Century C e The Go Programming Language pode muito bem ser o texto de referência padrão para isso.

O início

O livro começa forte com um Tutorial capítulo que apresenta um programa simples “Hello, World” e também mostra algumas das vantagens de usar Go. O minimalismo está fadado a atrair os programadores que estão fartos de bibliotecas inchadas. Você não pode declarar uma variável e não usá-la no resto do seu programa Go. Você não pode importar uma biblioteca e não usá-la em seu código. Simplesmente não compilará. Você não precisa discutir sobre o formato do seu código. Por exemplo, a antiga batalha entre:

func main ()

//E
função principal ()

É resolvido pelo compilador que aceita apenas o primeiro e não o último. Outras nuances são resolvidas por ferramentas como o gofmt, que pega seu arquivo de origem Go e o formata de maneira padronizada. Portanto, todos os programas Go seguem a mesma convenção, o que, por sua vez, melhora a legibilidade do código.

O primeiro capítulo enfatiza esses argumentos de venda e faz um trabalho realmente bom em dar aos leitores uma amostra do que Go realmente significa: uma linguagem de propósito geral projetada para gerar binários estáticos com o mínimo de inchaço possível.

Brevidade

Os programadores experientes estão cansados ​​de aprender sobre os mesmos conceitos, como loops for, instruções if-else, etc. repetidamente para diferentes linguagens. O primeiro capítulo esconde todas essas informações tediosas, encorajando os usuários a escrever programas Unix-y simples (como era o caso com a linguagem de programação C).

Uma desvantagem disso introdução rápida é o fato de que novos leitores ficarão completamente confusos com a sintaxe. Os programas começam rapidamente a usar os operadores de ponto e vários conceitos de programação orientada a objetos após dois ou três exemplos no primeiro capítulo. Isso é importante para manter a velocidade e a brevidade da experiência geral de leitura e é uma escolha muito consciente por parte dos escritores.

O livro também pressupõe que os leitores estejam familiarizados com pelo menos uma linguagem de programação, antes de escolherem este livro. Pode ser Python, JavaScript, Java, C ou qualquer outra linguagem de uso geral.

Site complementar

O livro vem com um site complementar. Você pode importar diretamente os programas fornecidos no livro a partir deste site e executá-los sem precisar digitar (ou copiar e colar de seu aplicativo Kindle). Você pode até conferir o primeiro capítulo (que, aliás, é o meu favorito) gratuitamente neste site e decidir se este livro é para você ou não.

Os autores prestaram atenção às dores de um programador tentando aprender uma nova linguagem. As distrações são reduzidas ao mínimo com o link de cada programa da web mencionado na parte superior dele. Assim, você pode buscar o código, executá-lo, ajustá-lo e desenvolvê-lo, se quiser.

Uma lista abrangente de erratas também é mantida neste site, e você pode consultá-la se achar que algo está errado.

Negócio sério

Se você está esperando um guia simples para scripts causais, este não é o livro para você. A razão é que muito terreno é coberto primeiro e, em seguida, os detalhes são preenchidos à medida que avançamos para os capítulos posteriores.

Este livro é para pessoas que querem entender as construções, os detalhes essenciais de como Go funciona. Você estará criando GIFs, escrevendo servidores web e plotando conjuntos de Mandelbrot e muito mais, mas nada disso faria qualquer sentido a menos que você tenha prestado atenção aos pontos mais delicados feitos nos capítulos anteriores (com o Capítulo 1 sendo uma espécie de exceção, como é uma visão geral do idioma).

A maior parte do resto do livro se concentra em vários detalhes relacionados à sintaxe sobre Go, incluindo loops de controle de coisas, variáveis, funções, métodos, rotinas de Go e muito mais. Tudo isso é ilustrado fazendo o leitor passar por programas úteis e não por cenários idealistas inventados.

Mesmo se você quiser pular a maioria dos capítulos do meio do livro, eu sugiro fortemente que vasculhe o capítulo 5 para uma compreensão de Pânico, tratamento de erros e funções anônimas. No entanto, eu sugiro fortemente que você leia todos os capítulos sequencialmente antes de chegarmos à joia da coroa de Go - Simultaneidade.

Ênfase na simultaneidade

A linguagem Go foi projetada do zero com a simultaneidade em mente. A maioria dos processadores modernos são multicore e multithread, mas os programadores desprezam as complicações que enfrentam ao escrever programas para rodar em tal arquitetura. Com a computação em nuvem caminhando para sistemas distribuídos, o código simultâneo em breve será o único código com bom desempenho por aí.

O capítulo sobre simultaneidade foi escrito para tirar o medo do design simultâneo de nossas mentes. É complicado sim, mas não desesperador. O livro faz um ótimo trabalho de transmitir como Go pode ajudá-lo a desenvolver a mentalidade correta a partir deste.

Conclusão

A experiência de Kernighan desde os primeiros dias do UNIX ainda é muito, muito viável na era moderna de desktops em nuvem, GPUs, IOT, nuvem e tudo o que virá a seguir. Ele e Donovan fizeram um ótimo trabalho ao transmitir essa sabedoria de design de aplicativo e filosofia UNIX usando uma linguagem simples e moderna com desempenho em mente e não hesito em recomendar este livro a qualquer um, desde um estudante do ensino médio a um engenheiro de software sênior com décadas de experiência.

Como usar o Xdotool para estimular cliques do mouse e pressionamentos de tecla no Linux
Xdotool é uma ferramenta de linha de comando gratuita e de código aberto para simular cliques do mouse e pressionamentos de tecla. Este artigo irá cob...
Os 5 principais produtos ergonômicos de mouse de computador para Linux
O uso prolongado do computador causa dor no pulso ou nos dedos? Você está sofrendo de rigidez nas articulações e constantemente precisa apertar as mão...
Como alterar as configurações do mouse e touchpad usando Xinput no Linux
A maioria das distribuições Linux vem com a biblioteca “libinput” por padrão para lidar com eventos de entrada em um sistema. Ele pode processar event...