Informações Principais
     Resumo
     Abstract
     Introdução
     Conclusão
     Download
  
  
  
 
Introdução
 
 
Acadêmico(a): Vandir Fernando Rezende
Título: Análise Comparativa de Produtividade entre Groovy e Java, aplicado no Desenvolvimento Web
 
Introdução:
A produtividade, considerada uma das mais importantes armas de competição, é a melhor determinante da competitividade e lucratividade das empresas, onde se busca produzir o máximo possível no menor intervalo de tempo (BARBARÁN; FRANCISCHINI, 2008, p. 3). Tempo, este é o principal elemento responsável pela evolução humana, pois constantemente buscam-se métodos para executar as tarefas cotidianas de forma ágil. Um grande exemplo para comprovar este fato é a revolução industrial, onde a produção artesanal foi deixada de lado e investiu-se na criação de máquinas a vapor, que permitiram o desenvolvimento de produtos em larga escala, em um curto intervalo de tempo. Com o passar dos anos e a revolução industrial estabilizada, surgiu uma nova revolução, a tecnológica, que ao invés de máquinas a vapor, utilizou o computador como principal ferramenta de desenvolvimento (VIEIRA, 2007).
Com a necessidade de criar ferramentas que facilitassem o seu trabalho diário, o homem passou a aprimorar cada vez mais os computadores, pois sua utilização não apenas poupa tempo e dinheiro, mas também permite a possibilidade de um controle cada vez melhor de, por exemplo, informações, estoques e serviços (SAMPAIO, 1999, p. 12).
Diante da informatização dos processos, a linguagem de programação Java tem se mostrado importante, principalmente pelo fato de ser muito abrangente, pois contempla desde dispositivos móveis até mainframes. Para isso, a mesma utiliza-se de uma das suas principais características, a portabilidade, onde programas escritos em Java podem ser executados em diferentes ambientes operacionais, dentro do conceito \'escreva uma vez, execute em qualquer lugar\' (Write Once, Run Anywhere), desde que o sistema suporte a máquina virtual java (JAVA, 2010).
Segundo Oliveira (2009), Java conta com inúmeros frameworks, cada um especializado em um ramo distinto do desenvolvimento de software, incluindo desde a modelagem do banco de dados até a criação das interfaces visuais. Nota-se que Java contempla soluções para os mais variados desafios no desenvolvimento de aplicações. Para ter esta flexibilidade, Java precisa ser especificamente configurada a cada funcionalidade, pois não conta com configurações predefinidas, ocasionando assim uma perda de produtividade no processo, em casos que o tempo levado para configurar a solução é maior que o tempo gasto com o desenvolvimento da regra de negócio.
Pensando neste fato, foram propostas diversas soluções para a evolução da linguagem Java, principalmente focando no desenvolvimento ágil. Assim surge o JRuby e o Grails (Groovy on Rails), tentativas de aproximar a programação Java com a filosofia ágil (PETERSON, 2010).
Com o lançamento do framework Grails, para desenvolvimento de aplicações web, Groovy ganhou credibilidade e o interesse da comunidade Java, provando assim, que o desenvolvimento de aplicações web escaláveis são produtivas e fáceis. Grails utilizou desde recursos básicos do Groovy, até recursos complexos de aplicações web, como persistência em banco de dados, Ajax, webservices, relatórios, processamento em lote, e plugins que permitem aos desenvolvedores melhorar e criar novas ferramentas que auxiliam o desenvolvimento (JUDD; NUSAIRAT; SHINGLER, 2008, p. 32).
Rudolph (2007) cita que a marcante característica do Grails em apoiar o desenvolvimento ágil, vem da filosofia de convenção sobre configuração. Tratando-se de um framework de alta produtividade baseado em Spring e Hibernate, para desenvolvimento de aplicação web Java Enterprise Edition (JEE), sem a necessidade de configurar centenas de arquivos eXtensible Markup Language (XML), e tudo isso com a mesma agilidade do Ruby on Rails (CASTELLANI, 2009).
Neste cenário, foi desenvolvida um aplicativo de gestão de projetos, sendo ele desenvolvido em Java e em Groovy, com o intuito de comparar a produtividade entre as linguagens. Tomou-se como base para a análise comparativa a norma NBR-13596 (ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS, 1996). Esta norma define seis características que descrevem, com um mínimo de sobreposição, qualidade de software. Essas características são: funcionalidade, confiabilidade, usabilidade, eficiência, manutenibilidade e portabilidade. No estudo de caso estas características são avaliadas focando produtividade de desenvolvimento.