Visite também: Currículo ·  Efetividade BR-Mac

O que é LinuxDownload LinuxApostila LinuxEnviar notícia


Breve introdução à Linguagem de Programação Go

Enviado por MDK (mdkcoreΘgmail·com):

“Uma nova linguagem de programação está disponível sob a licença BSD, a Go, sendo que foi desenvolvida por nada menos nada mais: o Google. Advinda da família das liguagens C, e com elementos de Python, ela nasce para tampar o vão de pouca evolução no campo das linguagens de programação nesta última década, uma vez que os computadores tiveram melhorias gigantes em seu desempenho, porém os ambientes de desenvolvimento continuaram praticamente estagnados.

Abaixo encontra-se uma breve introdução à mesma, desde sua instalação até um simples código de exemplo. Breve introdução à Linguagem de Programação Go” [referência: thecoreme.org]

E o Marcelo Cavalcanti avisa sobre a polêmica do nome da linguagem.


• Publicado por Augusto Campos em 2009-11-13

Comentários dos leitores

Os comentários são responsabilidade de seus autores, e não são analisados ou aprovados pelo BR-Linux. Leia os Termos de uso do BR-Linux.

    Igor Cavalcante (usuário não registrado) em 13/11/2009 às 4:25 pm

    “porém os ambientes de desenvolvimento continuaram praticamente estagnados.”
    Descordo plenamente!

    paulo (usuário não registrado) em 13/11/2009 às 4:41 pm

    descorda é?

    Xitoso (usuário não registrado) em 13/11/2009 às 5:00 pm

    Depende do que ele considera ambiente de desenvolvimento. Hoje existe tanto Framework bom.

    André Luis Pereira (usuário não registrado) em 13/11/2009 às 5:37 pm

    Existem ótimos frameworks hoje em dia.
    Mas todos eles usam linguagens com conceitos antigos e um pouco limitados.

    Essa nova linguagem tem foco em facilidade de programação, desempenho e escalabilidade em ambiente multi-core, como é o mundo hoje em dia.

    Alguém ai já fez multi-threading usando C#, C, C++ ou outra linguagem qualquer?

    Quem já fez, sabe o nível de dificuldade.

    E algué ai já teve problemas de gerenciamento de memória em programas multi-threading? Eu já tive e tenho.

    Uma linguagem compilada, com garbage collector é tudo de bom. E com o mesmo desempenho do C então, nem se fala.

    kayo (usuário não registrado) em 13/11/2009 às 5:37 pm

    E olha que a linguagem mal saiu, já temos entendidos.

    André Luis Pereira (usuário não registrado) em 13/11/2009 às 5:57 pm

    @kayo
    Hehehe.

    http://golang.org

    Tá tudo lá. Ontem a noite eu já compilei algumas coisas aqui, e realmente gostei do que vi.

    Mas no meu caso, estou longe de ser um “entendido” nela. Afinal, compilei meu primeiro programa ontem nela.

    Mas ler o site já me deu um panorama geral bem legal. Foi sobre ele que eu escrevi ai em cima.

    André Luis Pereira (Xara),

    Java é multi-threading por natureza, tem garbage collector e seu byte-code é compilado em tempo de execução pela JVM.

    calisto (usuário não registrado) em 13/11/2009 às 6:52 pm

    @André Felício, E…?

    Sou programador Java, e já fui de Delphi.
    Quando era programador Delphi, surgiu um boato de uma linguagem chamada Java. Será que ela “pegaria”?
    Pois bem, acho muito ruim o programador de “apaixonar” por uma linguagem e morrer abraçado à ela. Não estou dizendo que Java morreu, longe disso.
    Mas ficar com a mentalidade presa à uma linguagem, não é legal.
    Ruby, JRuby, Python, Go.., tantas opções.
    Claro que meu ganha pão é Java.
    Mas já foi Delphi.
    Como já mostra a Teoria do Tio Darwin: “evolução é adaptção”
    Abraços.

    Que saudades do Clipper Summer 87… to brincando, não tenho saudades não. Foi só uma piada para descontrair.

    Ah, e aprendi a programar com o Clipper Summer 87! :D

    MDK (usuário não registrado) em 13/11/2009 às 7:50 pm

    Venho aqui me desculpar pelo não aprofundamento do artigo e algumas gafes/más espressões utilizadas no texto. Minha intenção era fazer algo melhor, mas por alguns motivos acabei fazendo um “how-to” de instalação e alguns problemas enfrentados (já até resolvidos nas últimas atualizações da mesma). Foi ai que adicionei o “breve” ao texto :p

    Em breve farei um artigo falando realmente sobre a linguagem, mas ao ter certo domínio sobre a mesma…

    Abraços a todos!

    Programador Procrastinador (usuário não registrado) em 13/11/2009 às 8:13 pm

    Tem milhares de linguagens de programação ai, todas com suas evoluções e implementações (java via GCJ, C++0x, Python, Ruby, Erlang, etc…).

    Mas ai o google anuncia uma linguagem com um design **pobre** (parece AWK) e cheia de “mais do mesmo”, adiciona o rótulo na caixa dizendo “by Google, for you” e o mundo fica completamente eufórico!!

    Acordem.

    Eu aprendi no “BASIC in ROM” do Tk85… to ficando velho.

    Marcos Alexandre (usuário não registrado) em 13/11/2009 às 9:10 pm

    Também não vi o que essa linguagem tem de tão revolucionario que outras não possuem. Antes ele tivesse colaborado com o Python ou com outra linguagem.

    Li a primeira parte do “cursinho” lá no golang.org e até gostei.
    O que não consigo entender é o porquê de querer mudar coisas só para ficar diferente e nada mais, sem nenhuma vantagem. A linguagem é uma evolução do C e tem um monte em comum, então por que é que não deixam igual elementos de sintaxe, parênteses, ponto-e-vírgulas, essas coisas, e só alteram o que realmente interessa na funcionalidade? Para que mudar esses detalhezinhos que afinal só importam para o programador? Afinal, a idéia não é facilitar a minha vida, e não a do compilador?

    André Luis Pereira (usuário não registrado) em 13/11/2009 às 9:17 pm

    @André Felício

    Java tem tudo isso, mas roda sobre a JVM. A tal nova linguagem do Google é compilada e roda em cima do OS diretamente.

    Velocidades recordes são conseguidas assim.

    Ou seja, tem garbage collector e ainda por cima é compilada e não precisa de VM.

    @Programador Procrastinador

    Você leu alguma coisa no site oficial? Viu o que ela faz e como ela funciona, fora como é design dela?

    Welington (usuário não registrado) em 13/11/2009 às 10:29 pm

    Se não tem uma IDE/RAD para desenvolvimento de interface gráfica facilitada então é mais do mesmo.

    calisto (usuário não registrado) em 13/11/2009 às 10:43 pm

    Bom, como ainda não apareceram muitas pessoas sensatas por aqui, e como no momento estou com um pouco de tempo livre, vamos lá…

    Primeiro um pouco de história. Um dos principais arquitetos da linguagem Go é o Rob Pike, que pra quem não conhece, é um dos criadores do UNIX e do Plan 9. Pra quem não conhece o Plan 9, ele já tem um compilador C próprio há anos, que inclusive já acrescenta algumas coisas à linguagem. O Rob Pike também trabalhou em outro sistema muito bom chamado Inferno, que tem uma linguagem chamada Limbo.

    O que é a linguagem Go? É uma evolução dos projetos anteriores do Rob Pike. Se vocês derem uma olhada no código fonte do compilador, vão ver que uma grande parte dos códigos são provenientes do Plan9 e do Inferno. Só que a Google se interessou pelo negócio, e deixou o Rob Pike desenvolver essa linguagem junto com alguns outros figurões.

    Quanto à sintaxe ser diferente do C em alguns pequenos aspectos, acho que a única diferença significativa é na ordem invertida dos tipos na hora de declarar variáveis. Eles dão uma justificativa de que isso torna algumas situações de sintaxe menos confusas. A falta de parênteses em if’s por exemplo eu considero pura frescura reclamar, ainda mais porque você pode colocar os parênteses lá se quiser e não vai fazer diferença nenhuma, só que agora você tem opção de não colocar e economizar seus dedos.

    Quanto às novidades da linguagem, quem fala que Java já tudo, realmente não procurou se informar a respeito de nada.

    Pra começar, o esquema de threading é totalmente diferente. Java não funciona por canais. Se quer comparar com outra linguagem, compare com OCCAM, a saudosa linguagem que todo acadêmico da área de Programação Concorrente ama e adora, só que com um esquema bem mais modernizado, onde os canais são cidadãos de primeira classe e podem ser passados como variáveis.

    Além disso, o esquema de “orientação a interfaces” dele é mil vezes mais limpo, intuitivo para o programador, mais fácil de compilar e otimizar e mais flexível que o OOP de linguagens como Java e afins. Se vocês verem o Slide2, vão ver como é intuitivo de usar, e vão ver como permite construções extremamente flexíveis – tipos “variant” saem naturalmente do esquema de type assertions da linguagem. É claro que nada disso é novo. O esquema de interfaces lembra um pouco as typeclasses do Haskell.

    E claro, não podemos esquecer que a linguagem Go tem lambdas, closures, escopo léxico, etc.

    Enfim, a linguagem não é perfeita, mas dizer que é “mais do mesmo” revela que a pessoa realmente não leu nada sobre a linguagem. Eu acho que a iniciativa deles é boa, pegar alguns recursos de algumas linguagens modernas que pouca gente consegue usar, e reunir em uma linguagem familiar e fácil de aprender.

    Mas quem quiser reclamar que reclame. Se vocês não usarem o Go, a Google vai usar, o Rob Pike vai usar, o pessoal do Plan 9 vai usar, etc.

    Marcos (usuário não registrado) em 13/11/2009 às 10:53 pm

    “Java tem tudo isso, mas roda sobre a JVM. A tal nova linguagem do Google é compilada e roda em cima do OS diretamente.”

    Tá cheio de compiladores Java, bastava trabalhar com um.

    André Luis Pereira (usuário não registrado) em 13/11/2009 às 11:01 pm

    @Welington

    Como se programação séria fosse feito apenas em RAD, né?!

    Existem programas que não são gráficos. Uma RAD não iria agregar muita coisa ao seu desenvolvimento.

    E outra: você também tá querendo demais, já que a linguagem foi anunciada ontem. Já tá querendo uma IDE e se possível com RAD???

    Sabe quanto tempo o C/C++ demorou pra ter uma RAD????

    E é porque lançaram, a linguagem ontem e ela não tem ima IDE/RAD ainda, é que ela é “mais do mesmo”???

    Pense bem e vai perceber que não é bem assim.

    Calma. Ferramentas de produtividade são lançadas após a linguagem e não antes ou junto com ela.

    Calma.

    Henrique (usuário não registrado) em 14/11/2009 às 12:02 am

    Caindo o nível do BR-Linux. Achei que ia encontrar um artigo legal, o link só aponta pra um blog mal feito com o mesmo conteúdo da página oficial e um monte de AdWords.

    Tô fora…

    Programador Procrastinador (usuário não registrado) em 14/11/2009 às 7:48 am

    @Henrique: Também fiquei decepcionado.

    Para os não-esclarecidos: é possível programar em java, conpilar com GNU GCJ (e linkar na classpath) e rodar java nativamente em ambientes GNU, sem precisar do overhead de uma JVM. Eu disse na-ti-vo (binário direto, elf), mas com tudo que tem direito (inclusive GC).

    Sugiro olharem o http://shootout.alioth.debian.org/
    Tem comparativo de performance de várias linguagens. Go tem uma boa performance, mas permance no mesmo Patamar de Python/Perl/Ruby. Não se empolguem demais com o selo do google ehehehe

    E por ultimo: Plan 9 é uma idéia que nasceu falida. Conheço poucas pessoas que realmente usam sem reclamar do design… Go combina com algumas idéias dessa época, mas não vai longe não.

    Eu tinha a opção de publicar ou não publicar o link que o leitor enviou. Preferi publicar, dar a oportunidade a quem não ficaria sabendo (e não lê inglês), e estar aberto a críticas.

    O “nível do BR-Linux” é esse, Henrique. Se alguém tivesse me mandado link de outro texto em português, mais amplo e inovador, eu teria publicado também. Mas não tenho o condão de fazer surgir textos mais avançados, a minha parte é só divulgar o material de quem chega a publicar algo.

    calisto (usuário não registrado) em 14/11/2009 às 9:57 am

    @Programador Procrastinador, O 6g não otimiza tanto quanto o gcc, porque ele usa uma backend de otimização própria, que é bem simples. Seria mais justo comparar o gccgo com o gcc, e não o 6g.

    Marcos Alexandre (usuário não registrado) em 14/11/2009 às 12:18 pm

    “Sabe quanto tempo o C/C++ demorou pra ter uma RAD????”

    E quantas linguagens praticamente nasceram com ferramentas RAD?
    C/C++ surgiram quando nem existia interface gráfica, não dá pra comparar.

    Claro que existem aplicativos que não precisam de um ambiente visual, mas o que mais populariza uma linguagem hoje em dia é a programação RAD, isso é fato.

    Agnaldo Timoteo (usuário não registrado) em 14/11/2009 às 2:40 pm

    Quando eu li os comentarios, eu PEIDEI!

    Augusto, sinceramente, o seu site eh muito legal… o que fode nele eh esse bando de entendidos que estao usando Linux a 1 ou 2 anos e se acham os fodoes.

    Parabens pelo SITE, mas eu removeria essas areas de comentarios e nao daria a oportunidade para esse bando de “mancos” tentarem se aparecer.

    blu (usuário não registrado) em 14/11/2009 às 5:21 pm

    @calisto
    Falou tudo! Sabe qual é a coisa mais divertida em estudar história da computação e conhecer esses caras “esquecidos” da grande maioria?
    R: Descobrir que o Torvalds e o Stallman são dois cuzões! :D

    @Agnaldo Timoteo
    hehehe tá certo

    Reikainosuke Nekomata (usuário não registrado) em 14/11/2009 às 5:48 pm

    Ainda bem que o meu ganha-pão não é programação. :)

    Mas falando sério, qualquer linguagem tem seus pontos fortes, pontos fracos e outros pontos que nem dá para fazer comparações. Parece que o fato de ter a marca do Google incomoda alguns, que acabaram ficando de má-vontade. De uma certa forma há uma ecologia entre as várias linguagens, e assim como as espécies biológicas, elas vão surgindo, desenvolvem-se e extinguem-se. E nem sempre são as melhores (se é que dá para medir isso…) que sobrevivem. As baratas que o digam, elas passaram pelos dinossauros e, se bobear, vai dar um baile nos mamíferos.

    Ninguém falou ainda na linguagem , que parece até um “superset” da Go. Ela já existe há mais de cinco anos, embora não seja divulgada. Pena que só tem compilador para .Net e Mono, mas eu digo a linguagem mesmo. Leiam o “Language Report” e verão que maravilha.

    Foi mal; nunca tinha usado tags HTML aqui e formatei o texto errado. Segue novamente o comentário:

    Ninguém falou ainda na linguagem Zonnon – http://www.zonnon.ethz.ch -, que parece até um “superset” da Go. Ela já existe há mais de cinco anos, embora não seja divulgada. Pena que só tem compilador para .Net e Mono, mas estou elogiando a *linguagem*, não o compilador. Leiam o “Language Report” e verão que maravilha.

    OBS.: Quando disse “superset” é pelo número de recursos; sei que são linguagens de famílias diferentes.

    Profeta do Caos (usuário não registrado) em 14/11/2009 às 9:43 pm

    Mais uma linguagem para se criar paixões e torcida de futebol, seriam tão simples apenas usar a tecnologia e curti o que tem de melhor.
    O interessante é que não entende nada, são os que mais dão opiniões.
    Bando de ridiculos.

    André Luis Pereira (usuário não registrado) em 15/11/2009 às 3:06 pm

    @Profeta do Caos

    Já programou alguma coisa na vida?

    É um usuário pesado de compiladores?

    Diego (usuário não registrado) em 16/11/2009 às 11:35 am

    No mesmo dia que li sobre essa linguagem do Google vi uma notícia sobre um (novo) protocolo, para a web, que eles também estão desenvolvendo. Pensem um pouco, o Google quer espaço em todos os mercados de TI.
    E se realmente forem produtos bons, qual o problema?
    Só porque o Google lançou a turma desce a lenha pra falar que é “um monte de nada” e que deveriam contrinuir para outras linguagens e não criar uma nova.
    Esqueceram do “case” Firefox X Chrome? O Google apoiava (e acho que ainda apóia) a Mozilla, mas isso não impediu de lançarem seu próprio navegador.
    O mesmo aconteceu com o Python (me corrijam se eu estiver enganado).
    Não entendo essas discussões sem fim sobre a linguagem X e a linguagem Y. Cada um usa a linguagem que achar melhor.

Este post é antigo (2009-11-13) e foi arquivado. O envio de novos comentários a este post já expirou.