Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Go não é apenas uma linguagem para o Google

Go não é apenas uma linguagem para o Google

Marco Paulo Ollivier

November 23, 2019
Tweet

More Decks by Marco Paulo Ollivier

Other Decks in Technology

Transcript

  1. Análise de Sistemas Software Engineer Instrutor @ DIO Co-organizador @

    GopheRio Palestrante Ciência de dados e Big Data
  2. Tudo começou por Go não ter suporte a Generics… e

    é verdade =( Go não é apenas uma linguagem de programação para o Google @marcopollivier Em resumo… Além de.. - Ausência de um gerenciador de dependências - Ausência de uma estrutura de manipulação de erros - Ausência de operadores condicionais ternários - Etc…
  3. - Go é um C arrumado - Go serve apenas

    para construir CLIs - Go deve ser complexo de usar - Etc… Go não é apenas uma linguagem de programação para o Google @marcopollivier E outras coisas que se escuta por aí…
  4. "Go é uma linguagem de programação de código aberto que

    facilita a criação de softwares simples, confiáveis e eficientes” Go não é apenas uma linguagem de programação para o Google Definição oficial https://golang.org/ @marcopollivier
  5. Linha do tempo - Criação Criada em 2007 por Robert

    Griesemer, Rob Pike e Ken Thompson, com os seguintes objetivos: - Ser expressiva; - Eficiente tanto para compilar quanto para executar - Eficaz para escrever programas confiáveis e robustos Go nasceu por conta da complexidade de códigos de soluções do Google Go não é apenas uma linguagem de programação para o Google @marcopollivier Fonte: Livro A Linguagem de Programação Go
  6. Linha do tempo - Lançamento Go não é apenas uma

    linguagem de programação para o Google @marcopollivier Lançada em 2009 tendo em si: - A linguagem propriamente dita; - Ferramentas e biblioteca padrão - Uma proposta cultural de simplicidade radical Fonte: Livro A Linguagem de Programação Go
  7. Linha do tempo - Go 1 (Março 2012) - Go

    1.1 (Maio 2013) (…) - Go 1.10 (Fevereiro 2018) - Go 1.11 (Agosto 2018) - Go 1.12 (Fevereiro 2019) - Go 1.13 (Setembro 2019 - Versão estável mais recente) Go não é apenas uma linguagem de programação para o Google @marcopollivier Fonte: https://golang.org/doc/devel/release.html
  8. Go não é apenas um C com vidro elétrico Existe

    influência da herança do C, mas Go vai além... "(Go) ... apresenta e adapta boas ideias de várias outras linguagens, ao mesmo tempo que evita funcionalidades que resultam em complexidade e em códigos não confiáveis." - Recursos novos e eficientes de concorrência - Gerenciamento de memória automático (Garbage Collector) Go não é apenas uma linguagem de programação para o Google @marcopollivier Fonte: Livro A Linguagem de Programação Go
  9. Mas herdou muita coisa legal (C para o século XXI)

    - Sintaxe de suas expressões - Instruções de controle de fluxo - Tipos básicos de dados - Passagem de parâmetro por valor - Ponteiros - Geração de código de máquina eficiente Go não é apenas uma linguagem de programação para o Google @marcopollivier
  10. Outras heranças - Modula-2 e Oberon-2: conceito de pacotes -

    CSP (linguagem acadêmica): fundamentos de concorrência Go não é apenas uma linguagem de programação para o Google @marcopollivier Fonte: Livro A Linguagem de Programação Go
  11. Go não é apenas para CLIs Go é muito bom

    para criação de CLIs, mas também é bom para… - Backend - Computer Vision - Machine Learning - IoT - Etc Go não é apenas uma linguagem de programação para o Google @marcopollivier Fonte: https://go.dev/
  12. Go não é apenas para CLIs Go não é apenas

    uma linguagem de programação para o Google @marcopollivier
  13. Hello, IoT Fonte: https://gobot.io/ Este código se conectará ao Arduino

    e vai piscar um Led a cada segundo Go não é apenas uma linguagem de programação para o Google @marcopollivier
  14. Cases de sucesso - Docker - Kubernetes - Runner Gitlab

    CI - Traefik - … Go não é apenas uma linguagem de programação para o Google @marcopollivier
  15. Cases de sucesso Fonte: https://go.dev/ Go não é apenas uma

    linguagem de programação para o Google @marcopollivier
  16. Go não é só uma linguagem para o Google -

    Go nasceu por conta da complexidade de códigos de soluções do Google - Convenhamos que não é só o Google que tem problemas com complexidade de soluções - Então… Go não é só uma linguagem para o Google Go não é apenas uma linguagem de programação para o Google @marcopollivier
  17. Go não é só uma linguagem para o Google -

    A linguagem escalou e a comunidade ganhou força - Gerenciamento de dependência - Generics - Tratamento de erros Go não é apenas uma linguagem de programação para o Google @marcopollivier
  18. Pontos fracos - Manipulação de erros - Generics Go não

    é apenas uma linguagem de programação para o Google @marcopollivier
  19. Pontos fracos - Valores default para parâmetros - Herança -

    Exceções - Anotações - Sobrecarga de operadores - Construtores e destrutores - Ser uma linguagem nova (????) Go não é apenas uma linguagem de programação para o Google @marcopollivier Ausência de recursos quando comparados com outras linguagens No meu ponto de vista, são “pontos fracos” questionáveis
  20. Pontos fortes - velocidade de desenvolvimento Go não é apenas

    uma linguagem de programação para o Google @marcopollivier
  21. Pontos fortes - Uma standard lib bem completa Go não

    é apenas uma linguagem de programação para o Google @marcopollivier
  22. Pontos fortes - Facilidade para trabalhar com concorrência (Goroutines) Go

    não é apenas uma linguagem de programação para o Google @marcopollivier
  23. Pontos fortes - Escreva testes com muita facilidade Go não

    é apenas uma linguagem de programação para o Google @marcopollivier
  24. Outros pontos fortes - Tipagem forte e estática - Inferência

    de tipo - Rápida - Simples - Até mesmo divertida Go não é apenas uma linguagem de programação para o Google @marcopollivier - Garbage Collector - Um sistema de pacotes - Funções de primeira classe - Escopo léxico - Strings imutáveis - Multiparadigma - O.O - Procedural - Funcional
  25. Pontos fortes - Suporte aos usuários - play.golang.org - Documentação

    Go não é apenas uma linguagem de programação para o Google @marcopollivier Acesse: https://go.dev
  26. Pontos fortes - Lugares para praticar Go não é apenas

    uma linguagem de programação para o Google @marcopollivier Acesse: https://go-tour-br.appspot.com/welcome/1
  27. Pontos fortes - Material disponível Go não é apenas uma

    linguagem de programação para o Google @marcopollivier Acesse: https://gobyexample.com/
  28. Ponto forte… o Gopher Go não é apenas uma linguagem

    de programação para o Google @marcopollivier
  29. Alex Garzão Soft. Engineer @ Zenvia “… mais de uma

    pessoa que me abordou (…) tem a imagem do Go ser só para projetos complexos.” “… um dia um colega veio me perguntar se dava para usar Go para fazer uma API simples (…) ele achava que seria muito complexo fazer isso em Go (…) e eu mostrei a ele que não." Go não é apenas uma linguagem de programação para o Google @marcopollivier
  30. Com a palavra: Ryan Dahl, criador do Node.JS "[...] I

    think Node is not the best system to build a massive server web. I would use Go for that. And honestly, that’s the reason why I left Node. It was the realization that: oh, actually, this is not the best server-side system ever." -- "[...] eu acho que o Node não é o melhor sistema para construir um servidor web massivo. Eu usaria o Go para isso. E honestamente, essa é a razão pela qual eu deixei o Node. Foi a percepção de que: oh, na verdade, não é o melhor sistema do lado do servidor. " Fonte: https://edneypitta.com/on-node-go-concurrency/ Go não é apenas uma linguagem de programação para o Google @marcopollivier
  31. Comunidades no Brasil Go não é apenas uma linguagem de

    programação para o Google @marcopollivier
  32. E o futuro… Error handling Go não é apenas uma

    linguagem de programação para o Google @marcopollivier
  33. E o futuro… Generics Go não é apenas uma linguagem

    de programação para o Google @marcopollivier
  34. Leia mais sobre os assuntos abordados Go não é apenas

    uma linguagem de programação para o Google @marcopollivier - https://www.reddit.com/r/golang/comments/brlpqy/go_is_googles_language_not_the_communitys/?sort=old - https://utcc.utoronto.ca/~cks/space/blog/programming/GoIsGooglesLanguage - https://old.reddit.com/r/golang/comments/bqiyyb/generics_in_go/ - https://blog.mandic.com.br/artigos/porque-a-linguagem-go-e-a-mais-popular-de-todos-os-tempos/ - https://hackernoon.com/should-i-go-the-pros-and-cons-of-using-go-programming-language-8c1daf711e46 - https://edneypitta.com/on-node-go-concurrency/