Go, a linguagem do Google…
Pessoalmente não gosto de novas linguagens de programação. Não gosto de ter muitas opções. Por mim existiriam dias linguagens uma para quem gosta de blocos begin/end e outra pra quem gosta de { }.
package main
import "fmt"
func main() {
fmt.Printf("Hello, 世界\n")
}
No entanto estou longe de ditar regras no mundo da computação. Ontem o Google, empresa que pretende dominar o mundo, apresentou uma nova linguagem. Go. Assisti à apresentação de uma hora do Go no youtube na noite passada e deixarei aqui minhas primeiras impressões.
Go é uma linguagem experimental que quebra alguns paradigmas. Portanto não planeje a migração do seu sistema para qualquer momento em um futuro próximo. Go é uma linguagem que utiliza-se de uma forte tipagem, então nada de somar laranjas com limões para obter uma variável limonada.
Consegue-se sentir forte influencia de Pascal na sintese da linguagem. Há tempos não atribuia valores a uma variável utilizando :=
Quando digo que Go quebra alguns conceitos é porque ela não é bem uma linguagem orientada à objetos. Go utiliza-se de tipos assim como a estrutura type do pascal. A diferença é que esses tipos podem conter métodos. Em uma analogia simplória à orientação à objetos um tipo seria uma classe.
//tipo em Pascal
type pessoa = record
nome : string[40];
email : string;
end;
type pessoa struct {
nome string,
email string }
func (p *pessoa) getNome() string { return p.nome }
//onde
p.getNome();
ou
qualquerObjectoDoTipoPessoa.getNome() é válido
Além disso não há herança, associações entre objetos são feitas através de interfaces.
type minhaInterface interface {
get() int;
set(i int);
}
Assim como Java Go utiliza-se de Garbage Collection, não sendo responsabilidade do programador limpar restos de objetos alocados em memória. Go é uma linguagem concorrente, feita para suportar a execução de diversos blocos de código simultaneamente. Suas “Thread” são chamadas de gorotines.
Caso tenha algo a somar nesse post sinta-se livre para comentar.
Tags: desenvolvimento, Google



