A JVM e as outras linguagens: você está preparado?

Postado em 25. jun, 2009 por em Arquitetura

Um outro assunto que tem aparecido com cada vez mais frequência na lista interna da Caelum são as diversas linguagens que rodam sob a JVM. Sejam elas compiladas diratamente para bytecode Java, ou interpretadas através da Java Scripting API adicionada no Java 6.

O Fábio Kung fez no início do ano um acalorado post intitulado 2009 o ano do Ruby on Rails no Brasil, e podemos ir além: diversas linguagens que não fazem faziam parte do mainstream corporativo vem ganhando muita força por todos os lugares.

Martin Fowler fez um trabalho minucioso em suas considerações ao uso de Ruby pela ThoughtWorks (traduzido pelo Fábio Akita aqui). Fowler discorre a respeito das opiniões e sentimentos dos lideres técnicos de cada projeto que optou por Ruby, e poucos deles (5 de 41) disseram que Ruby foi a escolha errada.

Mas será que apenas o Ruby tem ganho toda essa notoriedade e força?

O Rafael Ferreira compartilhou comigo recentemente um excelente artigo que discute os diferentes paradigmas de programação, citando vantagens e desvantagens, culminando na importância do aprendizado de diferentes linguages, em especial para tirar proveito das que facilitam o desenvolvimento de sistemas com muita concorrência.

O Renato Lucindo me mostrou também o quão grande tem sido a repercussão do Scala em grandes ambientes, como é esse caso da Électricité de France Trading que trocou 300 mil linhas de Java por Scala.

Vale também citar a troca de linguagens num dos cursos mais famosos de computação do mundo: o Structure and Interpretation of Computer Programs, curso que inicia os graduandos de ciência da computação e engenharia elétrica do MIT. Este curso foi sempre famoso por ser ministrado em Scheme, e agora depois de uma série de debates e justificativas, foi reformulado usando Python, novamente sem usar uma das linguagens enterprisey.

Pedro Matiello, que trabalha aqui com a gente, é o lider de desenvolvimento da biblioteca python-graph, que implementa diversos algoritmos para grafos em python e possui colaboração dos mais variados países.

Aqui na Caelum, além de usarmos extensivamente Ruby e Rails em projetos e termos estendido o tempo do nosso curso RR-11 para 32 horas ja há algum tempo, há um pedaço de um sistema desenvolvido em Scala e ainda temos o curso de Lógica de Programação é realizado em grande parte com Groovy.

São muitos meus amigos e colegas de trabalho estudando LISP, Erlang, OCaml, Scala e outras linguagens, sem contar Ruby/Rails e Python/Django. Todas essas linguagens podem de certa forma rodar sobre a JVM. É um lugar-comum (e é uma das dicas do excelente Pragmatic Programmer) dizer que devemos aprender mais linguanges de programação para ampliar nossa visão e formas de ataque a um problema. Já disse Peter Norvig que é necessário 10 anos para que adquiramos fluência numa linguagem de programação, mas sempre há o momento de começar.

E você? Como está seu contato com essas linguagens? Sua empresa está usando algo “novo” em seus projetos?

Tags: , , , , , , , ,

12 Respostas para “A JVM e as outras linguagens: você está preparado?”

  1. Marllon

    25. jun, 2009

    Olá pessoal, acredito que qualquer desenvoledor que seja mais do que um codificador ou digitador de UC’s, tem obrigação de conhecer mais que 2 linguagens. Trabalho atualmente como Terceiro para uma empresa de Florianopolis e lá utilizamos Java, mas como sou terceiro ainda tenho meus projetos particulares, e estes usam Rails como principal opção depois de Java (mais por causa do conhecimento do pessoal envolvido do que qualquer outro motivo) e estamos pensando em explorar o lado python da coisa.
    Acredito que qualquer empresa tenha capacidade para usar novas tecnologicas, mas, por alguma experiencia, afirmo que é muito complicado de uma empresa entrar de cabeça em alguma tecnologia nova como se já utilizasse ela a tempos, existe muito mais etapas do que simplesmente treinar o funcionário ;) . Só minha opinião..

  2. Leandro Silva

    26. jun, 2009

    Excelente post, Paulo!

    Eu tenho me envolvido com várias linguagens, apesar de meu “trabalho formal” ($$$) ser, ser lá, pelo menos uns 80~90% focado Java.

    Pra citar um pouco desse envolvimento…

    Toco um projeto open source em JRuby – Sparrow, a JMS client based on JRuby (http://github.com/leandrosilva/sparrow); já escrevi coisas sobre Scala, Groovy, Elang e até Ioke em meu blog; no começo do ano passado escrevi coisas como “Não uma única linguagem de programação” (http://leandrosilva.com.br/2008/02/04/nao-ha-uma-unica-linguagem-de-programacao) e “A Plataforma Java não é sobre a Linguagem Java” (http://leandrosilva.com.br/2008/02/04/a-plataforma-java-nao-e-sobre-a-linguagem-java); e mais recentemente, fiz uma entrevista exclusiva com um dos “gurus” de linguagens para JVM, o Ola Bini (http://leandrosilva.com.br/2009/04/28/entrevista-com-ola-bini-ioke-jvm-net-e-mais).

    Eu sou vidrado em linguagens de programação e adoro a plataforma Java.

  3. Leandro Silva

    26. jun, 2009

    Como assim, não criou hyperlink nas URLs que botei no meu comentário? Pô, assim fica difícil de fazer jaba, né? kkk

  4. Antonio Kantek

    09. jul, 2009

  5. Antonio Kantek

    09. jul, 2009

    Outra opcao eh ficar bom em matlab, escrever programas feios e horriveis, trabalhar em um hedge fund e ganhar muito dinheiro.

  6. Paulo Silveira

    12. jul, 2009

    Só para melhorar algumas informações sobre o post, devemos citar com mais veemencia Scala. Eu e o Sergio Lopes estamos cada vez mais impressionados com o hype que ha hoje em dia:

    Gosling, em **2008**:

    “Which Programming Language would you use *now* on top of JVM, except Java?”. The answer was surprisingly fast and very clear: – Scala.

    http://www.adam-bien.com/roller/abien/entry/java_net_javaone_which_programming

    Charles nutter, do JRuby, em abril desse ano:

    “No other language on the JVM seems as capable of being a “replacement for Java” as Scala, and the momentum behind Scala is now unquestionable.”

    http://blog.headius.com/2009/04/future-part-one.html

    James Strachan, que criou o groovy:

    “I can honestly say if someone had shown me the Programming in Scala book by by Martin Odersky, Lex Spoon & Bill Venners back in 2003 I’d probably have never created Groovy.”

    http://macstrac.blogspot.com/2009/04/scala-as-long-term-replacement-for.html

    Paper sobre a importância das linguagens funcionais para a web:

    http://steve.vinoski.net/pdf/IC-Welcome_to_the_Functional_Web.pdf

  7. Andre Carneiro

    17. jul, 2009

    Vale a pena lembrar Perl6. Ele está aí e tem propostas bem interessantes como o uso de definições de gramáticas e novos tipos de operadores que lidam com estrutura de dados complexas diretamente, e uma característica vagamente semelhante ao JAVA6. Pode-se implementar Perl6 em várias linguagens… Existe implementação de Perl6 em Raskel por exemplo.

    Finalizando, a tendência mesmo é ter pessoas com conhecimento em várias linguagens. Não sei até que ponto isso é bom, pois existe uma ‘latência’ grande quando se trata de linguagens de programação. Existe até mesmo uma cultura, é como se você escolhesse uma ‘faculdade’ pra fazer. Ser obrigado a programar bem em várias linguagens pode ser um diferencial bem difívil de se alcançar. Se o mercado tender para isso, muito provavelmente os cursos de capacitação(sejam técnicos, sejam universitários etc), terão que ser reformulados completamente.

    Cheers!

  8. Elano Chow

    06. ago, 2009

    Começamos a treinar nossos programadores java/spring/struts/hibernate em grails para utilização em projetos ageis devido a carência de profissionais que saibam ruby/rails ou mesmo python/django.Temos uma massa de desenvolvedores Java e treina-los em RoR seria muito demorado e custoso.

    Avaliamos Scala, mas a linguagem ainda parece muito imatura além de bem mais complexa, o suporte a IDE quase inexistente e seu framework web Lift bem menos poderoso que grails.

    A Caelum bem que podia abrir cursos de groovy e grails.

  9. Martin Muller

    20. jun, 2011

    Na empresa que trabalho sou líder de projeto com uma equipe de 12 pessoas, começamos a utilização do Groovy e Grails com um projeto que precisava ser desenvolvido o mais rápido possível, são 2 projetos no framework. Utilizei em um desenvolvimento Freela e também obtive bastante ganho no desenvolvimento. Já trabalho a mais de 2 anos no framework e gostei muito.

    Concordo com Elano Chow que a Caelum poderia abrir curso de Groovy e Grails.

Trackbacks/Pingbacks

  1. Scala: sua próxima linguagem? | blog.caelum.com.br - agosto 10, 2009

    [...] Não é de hoje que a Caelum acredita em um futuro plural, e no melhor estilo programação poliglota, já desenvolvemos partes importantes de um sistema Java em Scala, onde consideramos que ela era cabível. Para quem quiser saber mais sobre Scala, o tour da linguagem é um bom recurso para matar a curiosidade. Mas é claro que o melhor meio de conhecer uma linguagem é meter a mão na massa, e para isso recomendo o tutorial First Steps to Scala, de autoria do próprio Martin Odersky colaborando com Bill Venners e Lex Spoon. Esse tutorial foi extraído de trechos do livro Programming in Scala, dos mesmos autores. [...]

  2. Código conciso: claro e breve | blog.caelum.com.br - junho 16, 2011

    [...] poucos anos, com a onda de novas linguagens, surgiram discussões defendendo código com a intenção de ser [...]

  3. Concise code: brevity and clarity | CaelumObject Developers' Blog - junho 20, 2011

    [...] few years ago, with the wave of new (and old) languages growing its acceptance rate in the market, some people appeared defending code with the intention of being [...]

Deixar uma Resposta