40%
Obs: Esse tutorial encontra-se em desenvolvimento... e a linguagem também rsrs. Vou esperar um tempo para continuá-lo porque grandes mudanças ainda estão ocorrendo (do tipo num dia existir uma função e no outro não mais). So... patience, young Jedi.
Acompanhe o tema também no Twitter
Objetivo do tutorial
O presente tutorial tem por objetivo divulgar [na língua portuguesa] a linguagem de programação Go recentemente (2010) lançada e por objetivo paralelo pessoal estudá-la mais a fundo. Não se trata de uma tradução estrita da página oficial (Golang.org), mas sim minha aproximação conceitual e prática da mesma.
Informações técnicas
Go é uma linguagem de programação de sistema, compilada [para linguagem de máquina, não bytecode], imperativa, com suporte a orientação a objetos, processos concorrentes, multicore, garbage-collected desenvolvida em Google Inc e publicada em código aberto. É segura quanto ao tipo e quanto à memória, é rápida [tanto para compilar quanto executar] e conceitualmente madura, concisa e elegante.
Ler mais:
Observações técnicas (02/2010)
- Espera-se que em breve Go seja suportado pelo GCC (lista de compiladores padrão Unix e Linux) o que significará um enorme passo para sua disseminação e integração no mercado.
- O amadurecimento de Go avança rápido, porém a linguagem está em estágio de desenvolvimento e, portanto, seu uso para grandes projetos deve ser escrupuloso.
Por que Go?
Conforme o site oficial, a ideia era fazer uma linguagem rápida como C ou C++, segura e fácil de programar como uma linguagem dinâmica (Ruby, Python etc) além de possuir suporte para recursos contemporâneos como processos concorrentes, multicore etc. A meu ver, dizendo de forma simples, o mundo carecia urgentemente de uma linguagem fácil, elegante, poderosa e segura. Os conceitos já habitavam a comunidade informática e eram "tangencialmente" suportados nas linguagens já existentes, mas só agora se materializaram juntos numa impressionante ferramenta desenhada justamente para eles.
Veja um exemplo simples de código Go:
Olá mundo
hello.go
package main
import fmt "fmt" // Pacote (package) implementando I/O formatado.
func main() {
fmt.Printf("Olá mundo; ou Hello, world; ou Καλημέρα κόσμε; ou こんにちは 世界\n")
}
Repare que Go suporta caracteres especiais (suporte utf-8)
Go é da família C-like, porém com algumas convenções radicalmente alteradas (como a posposição do tipo na declaração de uma variável e a composição em vez de hierarquia na orientação a objeto).
Recomendações
Se deixe conduzir pelo tutorial em vez de procurar encaixar imediatamente a linguagem em suas necessidades práticas ou juízos de valor. Esqueça-se um pouco do que aprendeu até agora e abra os olhos curiosos para os "novos conceitos" que serão apresentados, potencializando, assim, sua curva de aprendizagem.
Conhece o ditado "If all you have is a hammer, everything looks like a nail"? [se tudo que você tem é um martelo, tudo se parece com um prego] Entendo que talvez você tenha dedicado bons anos a outra linguagem e esteja apenas procurando motivos para acreditar e essa nova ferramenta, como muitas outras, não irá vingar resumindo-se numa perda de tempo e energia e que você pode ficar em paz com o que já tem. Mas sinceramente creio que nesse caso seria uma postura equivocada.
Go é a ferramenta certa para uma necessidade real e urgente, sendo que parece não haver alternativa equiparável para mesmo fim. O site oficial dá mais explicações nesse sentido, as quais omitirei aqui por não se tratar da finalidade do presente tutorial. O time de desenvolvimento de Go é formado por pessoal profundamente qualificado e que, assim como você pensou primeiro na possibilidade de melhorar o que já existia, mas acabou concluindo que é preciso uma ferramenta nova para as novas necessidades.