Quando o Java é uma boa opção para desenvolvimento web?
Por favor, não diga "Quando você tem uma equipe de desenvolvimento que conhece apenas Java".
Quando o Java é uma boa opção para desenvolvimento web?
Por favor, não diga "Quando você tem uma equipe de desenvolvimento que conhece apenas Java".
Respostas:
Dadas as muitas estruturas disponíveis, a maturidade da plataforma etc., estou tentado a dizer "quase sempre". Então, aqui estão algumas razões pelas quais você não deve usar Java:
Java é usado em sites pequenos e médios. O ponto crucial é que há muito menos hospedagem gratuita para sites Java do que para PHP, o que significa que, a menos que você tenha recursos suficientes para hospedar seu próprio servidor, provavelmente não escolherá Java.
Observe que, com o Java EE 6, especialmente o perfil da web, há muitas tecnologias padrão incluídas que podem criar aplicativos da web muito poderosos sem precisar codificar muito. Infelizmente ainda não é mainstream.
Observe que isso mudou recentemente com o Google Application Engine, que permite implantar aplicativos da Web Java padrão (com algumas restrições) na nuvem gratuitamente para sites de baixo a médio tráfego.
Quando sua plataforma é UNIX / Linux e você precisa de um rico conjunto de ferramentas, como Mapeamento de Objeto / Relacional, Segurança, Orquestração complexa de Serviços Web, etc.
(Não estamos falando de sites simples, estamos?)
Toda vez que outra equipe de Java me irrita, desabafo pesquisando perguntas como esta. Deixe-me reiterar. Sou um desenvolvedor do lado do cliente e já faz quase cinco anos. Trabalhei em sites que variam de microsites únicos de conteúdo, a sites tão grandes quanto a Sears, a sites mais sofisticados do tipo de aplicativo, onde é necessário um conhecimento realmente profundo da interface do usuário. Eu lidei com Rails, PHP, formulários da web .net (ew), .net MVC (muito melhor) e um conjunto de soluções Java para desenvolvimento da Web acompanhado por desenvolvedores e equipes que foram todos desastres completos para lidar. Eu também escrevo um pouco de Python e estou começando a cavar o Django.
Minha experiência com equipes Java tem sido universalmente terrível. As ferramentas são sempre uma PITA. Os desenvolvedores nunca querem acreditar que fizeram algo errado e fazê-los reinvestigar seu próprio território, uma vez que você descartou um problema do seu lado, é como arrancar dentes. A primeira vítima de lidar com equipes Java na minha experiência é o tempo de desenvolvimento convertido em tempo de e-mail, escrevendo várias explicações longas sobre por que o problema definitivamente está chegando ao fim. O HTML geralmente não é problema deles, a menos que você realmente queira algum controle sobre ele. É provável que tudo acabe no inferno porque você realmente deseja mover alguns mergulhos de nível superior.
Há coisas sobre o idioma que eu não gosto, mas acho que o verdadeiro problema é a cultura e o fato de a aceitação ser tão difundida que você tem muita mediocridade no meio. A cultura que suspeito surge da maneira como o Java é comercializado. Escreva uma vez, implante em qualquer lugar. Tradução: "Você só precisa aprender uma coisa!" As pessoas que acham isso atraente basicamente querem empunhar o Java como um martelo gigantesco para cada unha, com o mínimo de aprimoramento de suas habilidades no que diz respeito ao desenvolvimento da web.
Portanto, se você tem desenvolvedores que conhecem Java e outras linguagens, mas ainda preferem Java, eu diria que sim, vá em frente se parecer que é a solução certa. Mas se você tem desenvolvedores Java que conhecem Java e tudo o mais está apenas cumprindo os critérios para realmente torná-lo um ponto de referência em seu currículo, faça com que eles criem um aplicativo simples com uma variedade de páginas semi-complexas no final do HTML e tente isso teste simples. Quebre um pouco de HTML. Tente fazê-los descobrir o que está errado. Se o problema imediato que eles começarem a resolver for desviar a culpa deles, mantenha-os longe do desenvolvimento da web! O desenvolvedor da Web é multidisciplinar e requer interesse ativo no campo para ser bem-sucedido. Não é um lugar para pessoas que querem apenas manter o conhecimento de um idioma e ficam mais horrorizadas com os problemas do que interessados em resolvê-las.
Não estou afirmando que o próprio Java é a raiz da incompetência e ouvi dizer que o Spring é bom. Tenho certeza de que há equipes Java competentes por aí. Só não encontrei um ainda e não acho que seja uma coincidência. Eu acho que a Sun tem muito a ver com isso. Também acho que administrar equipes da web como ou sob departamentos de TI tem muito a ver com isso.
Java é perfeitamente adequado para sites pequenos. É possível fazer com que as páginas JSP funcionem muito rapidamente com um servidor Java como o Tomcat , por exemplo.
Embora, na minha experiência, Java seja mais comum em sites grandes, onde há uma maior necessidade de processamento complexo no servidor - nesse caso, você encontrará estruturas Java mais sofisticadas usadas como o JavaServer Faces (JSF).
É importante observar que, historicamente, uma instalação Java completa não estava disponível em muitas configurações baratas de hospedagem na web, o que pode explicar a prevalência de outras linguagens como o PHP nesses ambientes.
Os principais motivos para o uso do Java no desenvolvimento da Web se resumem ao seguinte:
Tecnicamente falando:
Se eu estivesse iniciando um aplicativo Web, usaria o Ruby on Rails e projetaria de tal maneira que os pontos de acesso pudessem ser trocados quando o RoR atingir seu limite de escala de desempenho.
Java tem um odor definido de COBOL e "codificadores de baixo custo usam Java", e os fiascos da Oracle não estão ajudando a reputação. Se você tiver escolha , escolha um idioma que atraia os principais desenvolvedores.
É simples: use Java quando o desempenho do back-end for uma grande preocupação. Há mais sobrecarga ao codificar, mas o código será executado em 1/200 a 1/500 do tempo - literalmente. Php, Ruby e outras linguagens de tipo dinâmico sempre serão muito mais lentas que os servidores java ou .net.
A maioria das soluções para a web não precisa disso. O Twitter não abandonou o Rails até que eles começaram a atingir popularidade, por exemplo.
Não é o único motivo, mas com a crescente popularidade da criação de sites com front-ends sofisticados, semelhantes a aplicativos, enquanto a lógica faz 'coisas' de volta no servidor - nenhum motivo deve ser necessário para explicar por que o Java é pelo menos igual a qualquer outro opção no final do servidor. Mas no final do cliente, se algum javascript se transformar rapidamente em um pesadelo de manutenção de código e usando o GWT para manter essas coisas à distância, para que você possa codificar em Java, você pode ter o melhor dos dois mundos com seu servidor fazendo o trabalho pesado e o processador de um cliente, dando-lhes a 'experiência'. Aprenda a integrá-lo a algo como jQuery e você poderá ter todo o colírio para os olhos que desejar.
Não há nenhum tipo de especialista nas alternativas, mas se alguém puder apresentar uma com o mesmo tipo de flexibilidade e amplitude, feliz em saber disso.
A principal razão pela qual eu escolheria o java é se você precisar usar transações distribuídas, o que pode ser uma grande preocupação para muitas empresas. No entanto, você ainda pode usar sua linguagem de script favorita para desenvolvimento na Web e delegar apenas o trabalho ao java quando precisar de transações distribuídas / rápidas.
Acredito que seria quando seu aplicativo será muito complexo, com muitas pessoas desenvolvendo-o, com muitos módulos complexos, lógica de negócios complexa e ele precisará se comunicar com muitos outros aplicativos corporativos.
De qualquer forma, você também pode desenvolver no Grails, que oferece muitos recursos interessantes, facilita muito o desenvolvimento e amadurece muito rápido.
Java é bom, mas se o desempenho não for de importância crucial, você poderá obter os mesmos resultados com menos esforço em outras linguagens.
Java é uma linguagem de tipo estaticamente e é mais barata que as outras linguagens de tipo estaticamente usadas para desenvolvimento na Web, como C # e VB.net, se a sua empresa não possui uma assinatura do MSDN. Linguagens de tipo estaticamente são boas para projetos de médio a grande porte, regras de domínio complexas e muito código de back-end, porque você pode organizar melhor suas classes e IDEs ajudarão você a encontrar erros no seu código.
Com linguagens de tipo dinâmico, como PHP, Python, Ruby, seu desenvolvimento será muito mais rápido, mas você terá que testar seu código muito melhor. Se você não tem muito tempo e dinheiro e seus requisitos mudam muito rapidamente e não precisa fazer cálculos muito complexos, as linguagens dinâmicas são muito melhores.
Segurança
O principal motivo para as grandes empresas escolherem o Java em detrimento de outras soluções é porque é considerado muito mais seguro.
Isso ocorre principalmente porque é suportado por uma empresa tão grande (agora oracle).
Deve-se levar em consideração que o Java oferece um nível muito alto de segurança e excelente suporte e análise (embora exista um preço).