Java é ruim? – Guilherme Chapiewski
← [Rails Summit Latin America] Retrospectiva do evento → Zen of Agile Management Workshop + Falando em Agile 2008, aí vou eu!
33 replies on "Java é ruim?"
São só ferramentas.
Como vc disse, Java – ou qualquer outra ferramenta – é boa para alguns casos e ruim para outras e nós, como desenvolvedores de software, precisamos incrementar nossas caixas de ferramenta. Fora, claro, aprender a usar cada uma delas.
Marcello Azambujasays:
s/Java/C++/g
"Several reviewers asked me to compare C++ to other languages. This I have decided against doing. Thereby, I have reaffirmed a long-standing and strongly held view:
Language comparisons are rarely meaningful and even less often fair. A good comparison of major programming languages requires more effort than most people are willing to spend, experience in a wide range of application areas, a rigid maintenance of a detached and impartial point of view, and a sense of fairness. I do not have the time, and as the designer of C++, my impartiality would never be fully credible." — Bjarne Stroustrup
@Azambuja
Sensacional 🙂
Luiz Faias Jrsays:
Guilherme, assino embaixo.
No RailsSummit parecia que se você não falava mal de Java não fazia parte do "grupinho dos produtivos".
Quem trabalha com Rails geralmente tem muita experiência, mas não deve negar o passado quando aprenderam sobre testes, arquitetura, etc.. provavelmente trabalhando com Java ou .Net
AkitaOnRailssays:
Eu mesmo não assisti a todas as apresentações. De fato vi o Chad Fowler dizendo isso mas acho que ele poderia ser mais específico. Seria mais na linha do Joel Spolsky com o "Java Schools". Não que o Java em si é ruim, mas o marketing gerado e o resultado de se criar muitos "one trick poneys" de Java é que é o ruim.
Do contrário, da minha parte eu fiz muita questão de demonstrar que o uso inteligente de Ruby e Java ou até mesmo Ruby e Windows fazem muito sentido e por isso fiz um esforço acima do necessário para ter o próprio Charles Nutter falando de JRuby e o Fabio Kung falando de JRuby on Rails, por exemplo.
O problema não é a tecnologia Java, mas a mentalidade de que apenas Java (ou na nossa comunidade, que apenas Rails) resolvem todos os problemas: o melhor desenvolvedor sabe escolher a ferramenta certa na hora certa. E o segredo disso é aprender um pouco de tudo.
Ah sim, eu cheguei a convidar o John Lam para falar de Ruby no .Net mas ele não estava disponível para vir.
Daniel F. Martinssays:
Existem tantas ferramentas, tantas opções e tantas formas de se fazer as coisas que muitos acham (e realmente é!) mais cômodo escolher uma ou duas ferramentas do que gastar investir tempo identificando as melhores opções para cada caso.
O que eu não entendo é essa "implicância" que o pessoal tem com Java. Sei lá, tem gente que parece o meu barbeiro… foi só falar que eu torço para o Corinthians para ele começar a fazer coisa errada no meu cabelo. 😛
Mas enfim, eu já fiz trampos muito bons com PHP, embora não seja nem um pouco fã do negócio. Apesar de hoje eu trabalhar mais com Java, eu acabei de sair de um projeto em Django e a experiência não poderia ser melhor!
No mês passado eu fui até o Banco do Brasil abrir uma conta, e fiquei realmente espantado com a velocidade com que a pessoa que me atendia operava o sistema, rapidamente consultando informações, imprimindo relatórios e tudo mais. A primeira coisa curiosa foi ver que a pessoa não usou o mouse em nenhum momento. Foi então que eu decidi esticar o pescoço para olhar a tela do computador… e adivinha só? O sistema rodava no terminal de um Linux com KDE!
Aposto que essas pessoas que dizem que Java é feio-bobo-cabeça-de-melão e que Rails é sexy (ui!) pensaria "Credo, os caras usam um sistema que roda em modo texto em pleno século XXI!", mas o fato é que o sistema era extremamente simples, organizado e muito, muito rápido (sem travadas entre uma tela e outra). Excelente aplicação do famoso (mas ignorado) "the best tool for the job".
A propósito, desculpe por quase derrubar um copo com água em você lá no Rails Summit! (ah se eu visse quem colocou aquele copo lá…) 🙂
Alan Kelonsays:
É válido lembrar do artigo No Silver Bullet, de Brooks, escrito há mais de vinte anos atrás. "Brooks, F. P. 1987. No Silver Bullet Essence and Accidents of Software Engineering. Computer 20, 4 (Apr. 1987), 10-19. DOI= http://dx.doi.org/10.1109/MC.1987.1663532"
Há uma cópia disponível em http://www.virtualschool.edu/mon/SoftwareEngineering/BrooksNoSilverBullet.html
Felipe Contersays:
"Jamais existirá uma única linguagem ou plataforma para resolver todos os problemas."
vamos nso lembrar também, que não existe um processo de desenvolvimento que sirva pra todas as ocasiões. Eu não usaria XP para desenvolver um software de baixo-nível para uma rede industrial, por exemplo… ^^
Hehe, sem problemas! Ainda bem que era só água, poderia ser um prato daquele Strogonoff 😀
Rubem Azenhasays:
Se o cidadão só conhece uma plataforma ou tem sua carreira\emprego totalmente ligado com uma plataforma, é mais fácil xingar a plataforma concorrente do que tentar ter um conhecimento geral das opções disponíveis nas outras plataformas – só não é algo saudável para os projetos de software que esse cidadão participar.
Muito bom Guilherme! "Não existem repostas fáceis" e "não existe uma solução para todos os problemas". Sendo assim, provavelmente problemas diferentes podem ser melhor resolvidos com ferramentas diferentes.
Alexandre Gomessays:
Como eu disse em meu último post [1] (sobre o #railssummit, inclusive), a discussão não deve ser sobre tecnologia, mas sobre filosofia e valores. O cara que usa RoR com a cabeça do desenvolvedor Java de 5 anos atrás fará tanta besteira quanto. E. da mesma forma, o cara que usa Java hoje com a cabeça já atualizada, fará coisas tão sexy quanto em Rails (pq será que ninguém critica o pessoal da ThoughtWorks ou da Globo.com?).
É como diz o sábio provérbio chinês: "ado ado ado, cada um no seu quadrado"
[1] http://blog.seatecnologia.com.br/articles/2008/10/19/a-nova-escola-da-ti
Christiano Milfontsays:
Já passou do nível de chato participar de encontros ou eventos em outras tecnologias e o pessoal só falar sobre Java.
Eu tive que interromper um encontro em outra tecnologia grosseiramente pedindo para não falarem sobre Java porque se eu estava naquele evento era porque a última coisa que eu gostaria de ouvir era sobre Java, seja bem ou mal
Concordo contigo, GC. Além de cada linguagem ter características diferentes, mais ou menos adequadas para cada situação, acho muito importante um desenvolvedor ter um conhecimento básico de diferentes linguagens, pois ajuda a quebrar paradigmas e pensar em maneiras diferentes de resolver um problema.
Bruno Zanchetsays:
"Jamais existirá uma única linguagem ou plataforma para resolver todos os problemas." Certo. Mas – cuidado – isso não implica que uma linguagem não possa resolver todos os problemas que uma linguagem anterior já resolvia, e com mais algunas vantagens (quem hoje usa PL/1?).
Java, a plataforma, ainda tem várias vantagens (como os applets, o desempenho, etc). Java como linguagem está bem ultrapassada – OK, ainda restam alguns nichos onde seu uso tem benefício. Mas o argumento de que *sempre* vai ter seu nicho é uma falácia.
Aliás, há algum tempo escrevi sobre isso:
Não há uma única linguagem de programação:
http://codezone.wordpress.com/2008/02/04/nao-ha-uma-unica-linguagem-de-programacao
A Plataforma Java não é sobre a Linguagem Java
http://codezone.wordpress.com/2008/02/04/a-plataforma-java-nao-e-sobre-a-linguagem-java
"O problema não é a tecnologia Java, mas a mentalidade de que apenas Java (ou na nossa comunidade, que apenas Rails) resolvem todos os problemas"
Taí, cara! Tem muito carinha que ontem estava em Java ou .Net, e que hoje está em Rails, que precisava ouvir isso…
Claudio Braga Leitesays:
Como o GC falou… tudo depende de cada caso!!!
Acho que o bom e velho Java ainda tem e terá por bastante tempo o seu espaço.
Bruno Dulcettisays:
Lendo esse post eu vi algo similar com uma situação:
Um cara chega numa entrevista pra Google por exemplo, e fala que já trabalhou no Yahoo e Microsoft, fez isso e aquilo. Mas os caras não o aceitam porque não é do perfil, ou por qualquer outro motivo.
O cara responde revoltado, falando algo como "Como assim? Eu trabalhei na Microsoft e no Yahoo. Como não sou aceito aqui?".
E o caboclo toma como resposta "Se você foi aceito e trabalhou lá, então volte, pois lá você tem perfil, mas aqui não"
Seria mais ou menos isso, tal linguagem pode ser ruim ou boa para cada projeto. Ruim seria implementar tal projeto nessa específica linguagem e não a linguagem em si.
Bom, é isso. Pelo menos é o que eu acho 🙂 Abraço GC
Java não é de tudo ruim, ele só é lento e pesado para jogos e softwares desktops e tem-de se escrever demais em JSP além de estar longe de ser tão maravilhoso quanto a sua comunidade prega.
RoR eu tentei usar, mas amarra muito no desenvolvimento… desisti
PHP é ótimo para WEB, porém tem muito souce pronto com qualidade duvidosa e muito "metido a programador" que faz porcarias remendando esses codigos
Python diria que é ótimo também
.NET seria muito bom se não existisse o visual studio, que possibilita que sistemas sejam feitos por amadores, o que mancha a sua imagem…
Fabio Nascimentosays:
Pois é como o @Ruben Azenha mencionou.
Isso normalmente acontece quando o cara está totalmente amarrado ao Java (Colocou todos seus ovos em uma única cesta), ou mesmo pq tentou trabalhar com Java e se viu atormentado por estudar padroes, arquiteturas, etc(nao q em outra ling isso nao seja necessario).
Eu tenho feito vários projetos FreeLancer e tenho ajustado as tecnologias ao q mais me atendem no momento e pra falar a verdade faço em PHP e até em Python, mas isso é uma questão de cultura.
O que seria do vermelho se não existissem outras cores.
Acho RoR formidável para desenvolvimento, mas ainda não apliquei em nenhum projeto real por N motivos, enfim…
O que tem acontecido muito é que vemos a famosa "moda da vez", o cara ouve q tal tecnologia está em alta e sai falando isso ou aquilo de outras.
Bom é isso, apenas minha opinião.
Trabalho com java durante o dia e em alguns pontos não consigo enxergar outra forma melhor (leia-se tecnologia) de se fazer o que eu faço, mas isso é minha opinião.
Fabíolasays:
Realmente depende muito do seu projeto, nós usamos o que melhor se encaixa ao nosso projeto. Mas o Java é uma linguagem muito boa e que a cada dia mais empresas vem utilizando-a.
Daniel Cukiersays:
Quando li o post, pensei logo no artigo do Brooks. Muito bem lembrado, Alan!
links for 2008-11-10 « pabloidzsays:
[…] Java é ruim? Guilherme Chapiewski (tags: java rails) […]
Thiago Silvasays:
@gc "Meu ponto aqui é que não dá para dizer que Java (ou qualquer outra coisa) é ruim por sí só."
O que é um ponto bastante comum. Mas não compartilho dessa opinião, pelo menos, no que diz respeito às linguagens ditas de propósito genérico.
Sem querer entrar no lado filosófico à respeito de algo ser intrinsicamente ruim ou bom, linguagens podem sim ser analisadas qualitativamente (ou seja, grosso modo, "por sí só"). Atributos como consistência, ortogonalidade e uniformidade são só alguns que podem ser observados. O uso da linguagem face a esses atributos pode nos dar uma idéia bem clara a respeito da sua (falta de) qualidade. Análises mais profundas podem ser feitas se considerarmos a natureza fundamental de uma linguagem e a atividade essencial que realizamos ao programar.
No que diz respeito à comparações, se podemos analisar atributos de uma linguagem, então certamente podemos compará-la com outras linguagens. O comentário do Azambuja me chamou atenção pois muita gente não parece considerar que o Stroustrup _não_ defende a idéia de que linguagens não podem ser comparadas (ou mensuradas), apenas considera a tarefa não-trivial (ao contrário das massas de pessoas que comparam de forma negligente).
Acho que você não pegou o X da questão 🙂
Nesse tipo de comparação que estou propondo no post, não estou falando da linguagem Java especificamente, mas sim da plataforma Java. Eu proponho que certas ferramentas podem ser melhores do que outras para determinados tipos de trabalho, e isso continua sendo verdade independente de ser possível ou não comparar as linguagens de programação por quaisquer critérios.
A linguagem é só uma parte da ferramenta. Veja, o fato de Java ter Applets tem menos a ver com a linguagem Java do que com a plataforma como um todo e outros fatores externos (suporte dos browsers), ou o fato de um SWF poder ser interpretado por um browser não tem nada a ver com a linguagem Actionscript, e o fato de você abrir um socket mais fácil em C do que em Javascript tem menos a ver com a linguagem do que com o ambiente em que elas normalmente rodam.
Para finalizar, uma analogia. Um marceneiro poderia comparar um martelo e um serrote com vários critérios como por exemplo durabilidade, acabamento, qualidade do metal, etc. Porém, mesmo que ele consiga compará-los e descubra que um dos dois é melhor, o martelo ainda será melhor para alguns tipos de tarefa e o serrote será melhor para outros.
Agile não é bala de prata | Guilherme Chapiewskisays:
[…] é que não existe uma metodologia que funciona para todos os casos e todos os projetos do mundo. Assim como você deve usar a melhor ferramenta para cada problema, você deve usar a melhor metodologia para cada […]
Agile não é bala de prata | Planeta Globo.comsays:
1up4Developers » Blog Archive » Ruby: quando a linguagem de programação faz diferença!says:
[…] Você se pergunta como conseguia desenvolver sem testes e por que a linguagem que você utiliza não tem um suporte mais "nativo" a […]