Baguete Diário newsletter do Baguete.
Paulo Krieser  
Comunicar Erros Envie para um amigo Versão para impressão Diminui tamanho da fonte Aumenta tamanho da fonte Assine o RSS do colunista
07/05/2009 - Fatores para a Escolha de uma Linguagem de Programação

Quando temos um projeto de desenvolvimento de software em mãos, caso o cliente não tenha o requisito técnico especificando qual a linguagem, avaliamos as diversas tecnologias disponíveis, procurando utilizar a que vai trazer mais retornos para o projeto em questão.

Esta série de artigos contempla a comparação entre as mais importantes linguagens de programação utilizadas para o desenvolvimento de sistemas web. Para uma avaliação completa, devemos escolher os fatores relevantes para realizarmos uma comparação direta, visando racionalizar nossa decisão. Temos que ter o objetivo em mente, sabendo se o que queremos é rapidez para o sistema entrar no ar, escalabilidade, custo menor, etc.

Para as comparações que serão feitas nas próximas colunas, escolhemos os itens escalabilidade, velocidade de desenvolvimento, manutenabilidade, facilidade de aprendizado, custo total de propriedade e portabilidade, explicados a seguir.

O conceito geral de escalabilidade refere-se a habilidade de uma aplicação continuar funcionando bem quando seu tamanho aumenta para atender as demandas dos usuários. Como o conceito geral é vago, para fins de comparação iremos definir escalabilidade como a capacidade da aplicação continuar funcionando conforme o número de usuários do sistema cresce, causando maior número de acessos simultâneos no ambiente.

A velocidade de desenvolvimento é um item extremamente importante, em função dos prazos sempre apertados da TI e do custo adjacente. Este fator corresponde ao esforço em horas gasto pelo programador para implementar determinada funcionalidade no desenvolvimento do sistema.

Manutenabilidade corresponde a facilidade e ao esforço necessário para manter o sistema, sendo que manter significa realizar alterações necessárias e novas implementações depois que o sistema foi para o ar. Isto implica não apenas em novas funcionalidades, como também em alterações de contexto, bancos de dados, servidores, retirar funcionalidades e alterar layouts.

A facilidade de aprendizado de uma linguagem corresponde ao número de horas necessárias para um programador conseguir aprender a linguagem a ponto de conseguir implementar as funcionalidades necessárias. Há linguagens que exigem um estudo maior e linguagens que com algumas horas já se consegue realizar algumas implementações, como o caso dos scripts. Este item interfere diretamente em custos de treinamento e facilidade em se encontrar profissionais que dominam a linguagem no mercado.

O custo total de propriedade (TCO - Total Cost of Ownership) refere-se ao valor necessário para se manter a aplicação rodando com determinada linguagem. Este item inclui custos como licença de uso e de desenvolvimento, licença de uso da IDE, licença de uso do servidor e outros custos necessários para se manter a aplicação no ar.

Por último escolhemos o item portabilidade, muitas vezes não necessário, dependendo dos objetivos da aplicação desenvolvida. Este fator abrange a facilidade em se utilizar a mesma aplicação desenvolvida em ambientes diferentes, como celulares, PDAs, outros servidores e outros sistemas operacionais, sem a necessidade de se reescrever a aplicação.

Tendo estes seis itens em mãos, quando formos escolher determinada linguagem para implementar nosso projeto, devemos avaliar qual a relevância de cada fator para o projeto em questão. Por exemplo, para uma aplicação de cadastro de pedidos o item portabilidade pode ter grande prioridade, em função da aplicação rodar em diferentes plataformas. Cada projeto atribuirá diferentes pesos para cada um dos fatores, e em função destes pesos devemos escolher a linguagem adequada.

Um fator que quase sempre possui grande influência na decisão, mas que não é intrínseco à linguagem, é o ambiente já utilizado no cliente. Se o cliente possui um legado em Progress e necessita desenvolver uma nova aplicação que deve ser totalmente integrada ao legado, o Progress já sairá em grande vantagem, pelo simples fato de já estar sendo amplamente utilizado na corporação, o que facilita as integrações. Este item será deixado de lado nas comparações, visto que não corresponde a um fator de vantagem ou desvantagem intrínseco da linguagem, e sim do ambiente ao qual ela está inserida.

As próximas colunas realizarão comparações imparciais utilizando os fatores citados. As comparações serão entre algumas linguagens, como Java, PHP, Dot Net e Ruby. É importante mantermos a imparcialidade, visando objetivivamente a comparação dos fatores acima, para não escolhermos a linguagem em função de dogmas ou apreciações subjetivas.

Comunicar Erros Envie para um amigo Versão para impressão Diminui tamanho da fonte Aumenta tamanho da fonte Assine o RSS do colunista
Comentários (5)
Ismael, em 08/05/2009, 00:35
Lembrando que .net é plataforma, não é linguagem. A não ser que considere como default o C#. O mesmo valeria para Java, mas infelizmente a Sun negligenciou o uso de outras linguagens sobre a plataforma. Quando sentiu a pressão do .net que estimula o uso de outras linguagens, resolveram fazer o mesmo. Atualmente Ruby sobre java ganha alguma popularidade.

Excluiu completamente Python. Considera tão exótica assim ? Inclusive pode ser usada em cima de .net . A curva de aprendizagem e a facilidade para implementar recursos poderosos são grandes atrativos de Python.

Gabriel, em 11/05/2009, 09:54
No fundo, todas as linguagens são uma reimplementação do Lisp, com limitações e facilidades sintáticas para facilitar a compreensão das mentes mais fracas.

William Antônio Siqueira, em 04/06/2009, 22:20
"Excluiu completamente Python. Considera tão exótica assim ? Inclusive pode ser usada em cima de .net . A curva de aprendizagem e a facilidade para implementar recursos poderosos são grandes atrativos de Python."

Tem certeza disso? Não conhece Jython?

Mesmo assim, Java é auto suficiente também!

Wedson Quintanilha (Cerrado TI), em 05/06/2009, 09:49
E Groove?
Meu Deus, como podem ter esquecido de uma linguagem que oferece:
1 - Facilidade de aprendizado;
2 - Alta produtividade (a maior que já vi);
3 - Escalabilidade
4 - .....

Afinal ele entra na categoria dos scripts....

Claudio (Hold), em 17/09/2009, 14:00
Resumindo, use Java.
ENVIE UM COMENTÁRIO  
* Campos obrigatórios
Nome *

e-mail *

Empresa

Cidade

Estado
Comentário *
Receber notificação de novos comentários

Digite no campo acima o código que aparece na imagem!
Basso Straps
Paulo Krieser
Paulo Krieser é diretor executivo da Krieser IT Solutions, empresa especializada no desenvolvimento de aplicações corporativas nas mais diversas tecnologias.
Colunas anteriores do autor
07/10 Análise de Sistemas: Objetivismo X Subjetivismo
30/09 Ciência da Computação: Curso Prático ou Teórico?
23/09 Inglês fluente em vagas de TI: necessidade ou exagero?
16/09 A Análise e os Casos de Uso
09/09 Computação - Ciência Não Exata
VEJA TODAS
Os 5 mais acessados
Acessos nos últimos três meses
01 Felipe Basso
02 Janer Cristaldo
03 Sílvia Somenzi
04 Judith Riboni
05 Ery Jardim
 
ENTREVISTA  
Gustavo Cerbasi
Endividado? Não corte o lazer! Quer poupar? Não administre pobreza. Confira as dicas para equilibrar suas finanças.
VEJA MAIS
newsletter
Receba diariamente as principais notícias do mercado de TI
CADASTRO
Baguete Jornalismo Digital

Todos os direitos reservados © Copyright 2007 - Notas legais - Termo de Uso - Por: Agência Internet
UOL Host
CANAL DE VENDAS  
Innovative
Dinamize