Já nas Bancas - MundoJ 53 - Linguagens da Máquina Virtual Java

Talvez você é quem está procurando emprego no lugar errado.

Acho indispensável um cara programar em mais de uma linguagem/plataforma. É algo que faz MUITA diferença quando analiso currículos ou contrato alguém.
Aliás, faz tanto tempo que não passo por um lugar que só use uma tecnologia.

Como testemunho real de como uma nova linguagem/plataforma mudou meu jeito de resolver problemas.

Quando meus conhecimentos eram só de Java, C# e VB ( 8) ) e OO:

meu código de loop quase sempre era assim

for (Item item : items) { if (Status.ANALISADO.equals(item.getStatus()){ itensAnalisados.add(item); } }

meu código de teste era bem assim

@Test public void testCarrinhoVazio(){ Carinho carinho = new Carinho(); Assert.assertTrue(carinho.isVazio); }

as ferramentas mais cools que dominava eram: Eclipse, um pouquinho de linux, Husdon, os plugins do Eclispe para rodar o mvn,

Depois de uma semana de Ruby, me vi maravailhado e influenciado fortemente pela forma na qual essa linguagem iterava sobre coleções/enumerables, como era tratado a semántica de testes, as ferramentas que eles utilizam …

Logo me vi “mal” acostumado, me fazendo procurar ferramentas ou frameworks que simulavam ao menos um pouco das maravilhas do ruby & seu ecossistema.

Meu código ficou mais fluente, veja um loop: (considere o uso de Guava e import static, tudo em nome da legíbilidade)

[code]
Predicate filtroTodosAnalisados = new Predicate() {
public boolean apply(final Item item) {
return Status.ANALISADO.equals(item.getStatus();
}
};

final List todosAnalisados = filter(items, filtroTodosAnalisados);[/code]

Meus testes ficarm um pouco mais auto-explicativos e legíveis (longe do estilo documento do rspec e outros mas bem fácil de ler)

@Test public void test_carrinho_novo_esta_vazio(){ Carinho carinho = new Carinho(); assertThat(carinho.isVazio(),is(true); assertThat(carrinho.items(), not(contains(item1))); }

Não que nenhumas das técnicas ou ferramentas citadas anteriormente não são legais ou usuais ainda hoje… ao contrário, elas evoluiram e tem até mesmo um pouco de influencia desses outros “mundos”.

Sem tanta descrição e exemplos eu posso dizer que minha cabeça evoluiui muito quando :

[list]Usei e aprendi rails e seu jeito agile de desenvolver, testar e implantar web apps.[/list]
[list]Que o conceito REST pode ser bem mais usual e simples do que parece.[/list]
[list]Que com jQuery e seus plugins faço maravilhas que antes só usava em frameworks web.[/list]
[list]Vi que VIM pode ser usado como um editor completo.[/list]
[list]Aprendi a criar scripts shell para automatizar tarefas básicas.[/list]
[list]Aprendi que puppet ajuda em Deploy.[/list]
[list]Aprendi um pouco de Clojure e mais uma vez a forma de pensar está se expandindo.[/list]
[list]Nodejs ou EventMachine…[/list]
[list]…[/list]

Resumindo, ter relações de curiosidade ou aprendizado ou trabalho sério (só lembrando que, há freela em Rails que os gringos pagam em U$ por hora…) em outras plataformas pode sim te transformar em um dev bem melhor.

Essa simbiose (você & várias plataformas/linguagens) é o perfeito exemplo de que se arriscar rumo a novos conceitos é um caminho sem volta

Realmente essa edição da revista deve estar muito boa.

É perda de tempo tentar mostrar para uma pessoa que só gosta do básico as maravilhas que outros estudos em diferentes tecnologias e paradigmas podem trazer.
Isso normalmente é pensamento de júnior que só pensa no agora e não deseja evoluir.

Faz 10 meses que estudo scala, lendo aquele Programming in Scala do martin odersky, e logo no começo o autor já diz que depois da leitura daquele livro o seu modo de programar nunca mais será o mesmo, pois irá fazer pensar de modo diferente, fora da caixinha.

Depois que li aquele livro, tive que concordar com o autor, os conceitos apresentados ali melhoraram e muito a qualidade do código que crio no dia, mesmo programando em java.
Só o fato de aprender o conceito de actors, framework aka, o modo de collections utilizado no scala, currying, e todas as característica da programação funcional enriqueceram e muito o meu trabalho.

Trabalho com tecnologias assim existem ? SIM, existem sim principalmente nos USA e um pouco na europa, e tem várias vagas boas pagando até mais do que as tecnologias comuns de mercado. O problema é que para se adequar à essas vagas é preciso ter muito conhecimento, ser nível senior/arquiteto e ter inglês impecável.

Comprei a revista e já li boa parte. Não está nos meus planos utilizar linguagens funcionais em meus projetos tão cedo. Mas isso não faz dos artigos da revista algo irrelevante pra mim. Portanto achei o conteúdo muito positivo pois pecisamos estar antenados com as tendências e evolução do java.

Bom como disse, para mim não foi útil.
Sei também que 90% dos que dizem que foi útil nunca vão utilizar as linguagens.
Vamos deixar assim, gosto e gosto, cada um com o seu.
Vou fazer como o amigo ali de cima que ao invés de assinar, seleciona a revista que compra.

Obrigado a todos pelas opiniões.
Ah, já li a revista…

Olá pessoal,

Gosto muito da MundoJ, os temas têm sido muito bem escolhidos. Sou um iniciante, quem também é e não está gostando das novidades talvez devesse encarar isso como um alerta de comodidade. As pessoas leem periódicos para se atualizar, não para ter um pouco mais do mesmo.

A revista pelo que percebi não é para iniciantes ou experientes, é para quem gosta de conhecer o espectro todo e o que/como se está usando e sendo criadas as coisas em volta desta tecnologia (Java como plataforma).

Um programador deve entender como uma tecnologia pode te ajudar a resolver um problema, talvez não seja util hoje, mas nunca se sabe o dia de amanhã e você pode precisar de um leque maior de ferramentas. Se precisar algo mais profundo, acho que um livro ou uma documentação seriam mais interessantes.

Eu particularmente gostei muito da edição sobre NoSql. Encontrei informações lá muito interessantes. Alguns temas talvez estejam fora da do dia-a-dia da maioria dos programadores, mas se você estiver antenado hoje, amanhã poderá ser mais assertivo ao resolver problemas.

[]s a todos

Quem não gosta de aprender novas tecnologias, principalmente quando se trata de algo tão fundamental quanto linguagens e paradigmas de programação, é melhor escolher outra área; ou então se acostumar a fazer sempre os mesmos tipos de sistemas, sempre da mesma forma.

RT [quote=Alexandre Gazola]Quem não gosta de aprender novas tecnologias, principalmente quando se trata de algo tão fundamental quanto linguagens e paradigmas de programação, é melhor escolher outra área; ou então se acostumar a fazer sempre os mesmos tipos de sistemas, sempre da mesma forma.[/quote]

Tem uma coisa importante que são as referências das informações. Onde mais você pode buscar e conhecer novas tecnologias com informações confiáveis ?
Novas linguagens com exemplos concisos e funcionando ? Vai ter que pular de blog em blog pra encontrar …

Se você está usando uma tecnologia na empresa hoje, é porque um dia lá atrás ela foi lançada e chegou até você de uma forma. Consegue lembrar como conheceu as tecnologias que utilizam hoje na empresa ?

MundoJ é uma das melhores referencias pra mim. Tenho umas edições “antigas” que falam de temas bem atuais para os dias de hoje …

Olá a todos,

acredito que a proposta da MundoJ é de trazer conteúdo técnico, mas de vanguarda, novidades sobre o mundo de desenvolvimento que impactam de alguma forma a plataforma Java. Evidentemente, esse não é o interesse de todos os leitores da revista, como citado aqui nesse post, para alguns profissionais, o mais importante é estar preparado para vagas no mercado de suporte e manutenção evolutiva de sistemas (o famoso suporte a produção), onde é muito mais necessário conhecimento sólido de tecnologias/plataformas maduras, como Java ou Cobol (citados nesse forum) por exemplo, e principalmente, capacidade de identifiação e resolução de problemas. Sem dúvida, há um número amplo de oportunidades de trabalho desse tipo, mas não são as únicas. Há várias oportunidades na área de TI para desenvolvimento de novos serviços/sistemas, ou mesmo em P&D, em projetos inovadores cujos desafios requerem, sim, domínio de mais de uma abordagem para que se consiga chegar a melhor solução.

A MundoJ, em suas últimas edições vem privilegiando as novidades, e temas pouco abordados, como Cloud Computing, NoSQL, Android e Linguagens sobre a JVM, mas sem abrir de mão de assuntos mais “batidos” e que tem mais sintonia com o mercado citado acima, como o artigo sobre testes de desempenho desta última edição, ou em edições passadas, as novas funcionalidades do Java 7, Conceitos de Arquitetura, e desenvolvimento Java em geral.

[]'s

Sei que a discussão já é antiga, mas só vi agora essa discussão,

É por essas e outras que o que eu mais quero é sair fora do ecossistema Java no Brasil,

Não pela linguagem mas sim pelos DEVs que estão nela,

Só na comunidade Java vc escuta gente reclamando de linguagem funcional(Lambda, Clojure, Procs)

Tem muita gente ATRASADA ainda no Java, pra min não da mais,

Event Driven, Non Blocking IO, Reactor Pattern, Lambda, Clojures são termos rotineiros pra quem trabalha com Ruby, Python, Node, JavaScript,

JavaScript nunca esteve tão forte,

Sim é possível fazer Event Driven Apps em Java, mas é impossível mudar a cabeça de quem contrata,

O maioria dos projetos que fiz em Java foi totalmente retranqueiro,

Pelo fato dos Devs não estudarem, tinham medo de utilizar soluções novas e elegantes tal como Websockets por exemplo,

Tem um monte de gente no Java que não sabe nem o que é Github,

Só pra trabalhar com Javascript tão pagando sabe quanto? $50 a hora pra trabalhar no PUF da sua casa, eu que o diga hehe

Estou relatando isso para dar uma injeção de animo e para não estragar a cabeça de leitores iniciantes

Só lamento