O documento introduz a linguagem de programação Go, desenvolvida pela Google em 2007. Go tem sintaxe semelhante a C mas sem classes, herança ou exceções. Possui tipos de dados simples como strings e inteiros, além de estruturas de dados como slices, maps e channels para programação concorrente. Go oferece desempenho, fácil manutenção de código e é multiplataforma.
1. GO
Introdução ao Software de Código Aberto
Ano Lectivo: 2017/2018
Professor: Carlos Costa
Trabalho realizado por:
Diogo Neto Conceição - 80427
2. GO
● Liguagem open source criada em 2007 para
satizfazer as necessidades da google:
– Desepenho
– Escalabilidade
– Facilidade de manutenção
3. GO
● Novos paradigmas da computação atual
● Trabalho em grupo focado na velociadade
● Criação de linguagem
– Facilmente interpretada como python e javascript
– Eficiencia e segurança de C e C++
4. GO
● Sintaxe parecida com C
● Não tem classes
● Não tem heranças
● Não tem overload de métodos
● Não tem excepções (try/catch)
● Tem funcões multi-retorno
5. GO
● Tipos de dados
– Simples (string, int, bool, float64)
– Definidos pelo usuário (struct e interface)
– Compostos
● array (vetor de tamanho fixo)
● slice (vetor de tamanho dinamico
● map (estrutura de dados para armazenar chaves e valores)
● channel ( condição com a qual podemos enviar e receber
valores com o operador ‘<-’)
6. GO
● Programação concorrente/paralela nativa
● Desempenho baseado em C, é altamente
otimizado.
● Multiplataforma: Linux, Windows, Mac OS,
FreeBSD e mobile
● Facilmente escalável
● Garbage Collector Nativo
● Open Source
7. GO
● Custos
– Desenvimento : linguagem de fácil uso e
documentação bem definida
– Compilação: garbage-collected diminui o custo de
compilação
– Execução: alta performance
– Manutenção: estruturas simples de construir e ler
permitem uma fácil adaptação ao código
8. GO
Vantagens
● Desempenho
● Fácil manutenção
Desvantagens
● Parsing de JSON lento
● Má gestão de dependências
Ameaças
● Linguagens alternativas
como Java, Scala,
Clojure, Python, Erlang,
C#, F#, Ocaml Haskell.
Oportunidades
● Opensource facilita a
contante manutenção
● Multi-plataforma
possibilita a utilização em
todos os sistemas e
dispositivos móveis
10. GO
//HelloWorld
package main //programa que está no pacote main
import “fmt” //importa pacote fmt (entrada e saída)
func main(){ //função principal do programa
fmt.Printf(“Hello World!”) //String que será apresentada
}
11. GO
Exemplos ciclo for:
i := 1
for i <= 3 {
fmt.Println(i)
i = i + 1
}
for j := 7; j <= 9; j++ {
fmt.Println(j)
}
for n := 0; n <= 5; n++ {
if n%2 == 0 {
continue
}
fmt.Println(n)
}
12. GO
Exemplo concorrencia:
packace main
import “fmt”
func calculaUmValor(c chan
float 64){
c ← 2,45435/432,3234
}
Func usaGoRotine() float64{
canal ← make(chan float64)
go calculaUmValor(canal)
return ← canal
}
func main(){
valor := usarGoRotine()
fmt.Printf(“Resultado: %v”,
valior)