Golang: Motivações, Criadores e Vantagens. (Parte 1)
Qual o momento da história e qual as motivações diz muito sobre o que esperar da linguagem de programação. Ninguém cria uma linguagem de programação só porque estava sem nada pra fazer. Entender o que motivou os criadores do Go a desenvolverem essa linguagem é o primeiro passo importante.
Por que Golang?
Estudando alguns comentários na internet sobre a linguagem, o que mais encontro é as seguinte afirmações.
Golang, ou só Go, é uma linguagem de programação open source feita pra deixar a vida dos programadores mais produtiva. Ela é conhecida por ser expressiva, concisa, limpa e eficiente. Foi criada pra aproveitar ao máximo os recursos de multicore e rede, misturando rapidez na compilação com um garbage collector eficiente. Apesar de ser estaticamente tipada e compilada, ela tem uma pegada que lembra linguagens dinamicamente tipadas e interpretadas. E o melhor: os programas em Go viram um único arquivo binário, o que facilita muito na hora de fazer o deploy.
Origem e Criadores
Golang nasceu no Google, criada por três engenheiros de software:
- Rob Pike: Um dos caras por trás do UNIX e do padrão UTF-8.
- Robert Griesemer: Trabalhou no motor JavaScript V8.
- Ken Thompson: Outro criador do UNIX e do padrão UTF-8.
O projeto começou lá em setembro de 2007, e a primeira versão estável (1.0) saiu em 2012. A partir da versão 1.5, o compilador de Go foi reescrito na própria linguagem, mostrando o quanto ela já era madura. Desde a versão 1.0, a retrocompatibilidade é garantida, o que dá uma baita segurança pros desenvolvedores.
Motivação
A ideia de criar o Go veio das limitações das linguagens mais usadas no Google, como Python, Java e C++:
- Python: É versátil, mas é lenta pra aplicações grandes.
- C/C++: São poderosas, mas complicadas e com tempos de compilação demorados.
- Java: A verbosidade e a complexidade tornam o desenvolvimento mais lento.
Além disso, essas linguagens não foram feitas pra lidar com multithreading e concorrência de forma nativa, algo essencial nos sistemas modernos. Golang veio pra resolver esses problemas, trazendo:
- Simplicidade: Uma sintaxe limpa e fácil de aprender, com uma curva de aprendizado tranquila.
- Ferramentas nativas: Frameworks de teste e ferramentas de profiling já integrados.
- Detecção de condições de corrida: Recursos pra identificar problemas de concorrência.
- Deploy simplificado: Compilação em um único binário, o que facilita muito a distribuição.
A promessa é boa. Mas sou daqueles que só acredita vendo. Então vamos ver.