t i c a CADÊ O PARADIGMA? Qual o paradigma da linguagem Go? Isso é uma boa pergunta? Vamos ver um jeito melhor de entender linguagens a fundo. Luciano Ramalho @ramalhoorg
✔ ∗ ✔ ✔ ✔ Tipos de 1ª classe ✔ ✔ Iteradores ∗ ✔ ✔ ∗ Modelo de variáveis referência valor* valor e referência referência valor** Tipagem dinâmica estática estática dinâmica estática Tipos estruturais nominais nominais estruturais estruturais ALGUMAS CARACTERÍSTICAS X LINGUAGENS 35 Funções como objetos “Classes” como objetos
Go Funções de 1ª classe ✔ ∗ ✔ ✔ ✔ Tipos de 1ª classe ✔ ✔ Iteradores ∗ ✔ ✔ ∗ Modelo de variáveis referência valor* valor e referência referência valor** Tipagem dinâmica estática estática dinâmica estática Tipos estruturais nominais nominais estruturais estruturais
Go Funções de 1ª classe ✔ ∗ ✔ ✔ ✔ Tipos de 1ª classe ✔ ✔ Iteradores ∗ ✔ ✔ ∗ Modelo de variáveis referência valor* valor e referência referência valor** Tipagem dinâmica estática estática dinâmica estática Tipos estruturais nominais nominais estruturais estruturais
Go Funções de 1ª classe ✔ ∗ ✔ ✔ ✔ Tipos de 1ª classe ✔ ✔ Iteradores ∗ ✔ ✔ ∗ Modelo de variáveis referência valor* valor e referência referência valor** Tipagem dinâmica estática estática dinâmica estática Tipos estruturais nominais nominais estruturais estruturais
Go Funções de 1ª classe ✔ ∗ ✔ ✔ ✔ Tipos de 1ª classe ✔ ✔ Iteradores ∗ ✔ ✔ ∗ Modelo de variáveis referência valor* valor e referência referência valor* e referência Tipagem dinâmica estática estática dinâmica estática Tipos estruturais nominais nominais estruturais estruturais
melhor as características da linguagem Saber escolher formas alternativas de implementação Fazer bom uso de padrões de projeto Depurar bugs complicados Imitar características úteis em linguagens onde elas faltam 65 Inspirado por Programming Language Pragmatics Michael L. Scott *