Linguagens e paradigmas de programação
Introdução
São inúmeras as ferramentas usadas para o desenvolvimento de aplicações de produtos de softwares e isso favorece ao desenvolvimento de aplicações cada vez mais avançadas. As técnicas aplicadas em conjuntos com outros artefatos tecnológicos devidamente certificados são as peças principais para o desenvolvimento eficiente.
Os paradigmas de programação são como o manual com instruções para usar a linguagem e desenvolver produtos de software. São muitos os existentes hoje, mas neste artigo só vou abordar dois, que estão na lista dos mais utilizados em toda história da tecnologia moderna, são eles:
- Orientado a objetos
- Estruturado.
As diferenças entre o paradigma estruturado e o orientado a objetos.
O quadro abaixo mostra características dos dois paradigmas e podemos comparar algumas delas. Em alguns casos, uma é o oposto da outra, por exemplo, encapsulamento no Orientado a Objeto é uma característica que se opõem ao paradigma estruturado, pois este ultimo tem como premissa a exposição de todo código.
O encapsulamento é um dos pilares da Orientação a Objetos, vai de contramão com desenvolvimento estruturado. No estruturado os subprogramas mostram as sequências, decisões e interações de todo o programa, normalmente em um único bloco gigante. É comum escrever blocos de código no estruturado com mais de 80 mil linhas, pois, ao desenvolver um programa, dependendo da complexidade, existe a necessidade de escrever milhares de linhas de códigos, ficando em alguns casos todas em um só bloco, dividido por subprogramas em uma única Unit.
Vantagens e desvantagem da programação estruturada.
Anos atrás poderíamos pensar em programação estruturada como uma vantagem competitiva no desenvolvimento de software, visto que, a estruturada proporciona controle mais eficaz quanto ao fluxo de execução do programa e a facilidade de compreender o código, quando o mesmo é analisado.
Mas, analisando nos dias atuais, momento em que o tempo é crucial para qualquer projeto e o desenvolvimento ágil dominou o mercado de software, exigindo uma profunda mudança no desenvolvimento de produtos de software, a programação estrutural fica em segundo plano.
Outro fator que faz a programação estruturada ficar em segundo plano é o fato de que os dados ficam separados das funções, qualquer atualização na estrutura dos dados, acarreta alteração em todas as funções relacionadas, gerando sistemas de difícil manutenção.
Hoje é muito mais valioso ter um sistema robusto, seguro, eficiente e de baixo custo de desenvolvimento, operação e manutenção. Para o desenvolvimento de sistemas grandes e complexos, desenvolvidos para usuários cada vez mais exigentes e com um bom custo benefício, é melhor adotar a programação Orientado a Objetos, devido à possibilidade de reuso de código e das milhares de bibliotecas e ferramentas de desenvolvimento existentes que facilitam e agilizam o desenvolvimento.
Desvantagem e vantagens da programação orientada a objetos.
Na Programação orientada a objetos alguns detalhes tornam a programação prejudicada, como por exemplo o desempenho do código e a confusão na hora de aplicar os conceitos de orientação a objetos, pois OO é um paradigma e todo paradigma precisa ser entendido.
Porém, o paradigma orientado a objetos é uma evolução do estruturado com alguns recursos a mais, além de proporcionar reuso e abstração da codificação. Proporciona também desenvolvimento ágil e consequentemente diminui o custo e tempo de desenvolvimento de sistemas grandes e complexos.
Quando pensamos em segurança, com orientação a objetos fica muito fácil blindar qualquer aplicação, usando adequadamente os padrões de desenvolvimento certificados no mercado. Um exemplo disso é o Spring Framework, uma plataforma de desenvolvimento de software escrita em Java, que usa a Orientação a Objetos em seu Core e possui milhares de bibliotecas padronizadas e certificadas que podem ser usadas no desenvolvimento.
Como tudo na vida, existem sim desvantagens na Orientação a Objeto e temos que analisar e descobrir qual o melhor paradigma no momento do desenvolvimento de qualquer produto de software. Uma das desvantagens da Orientação a Objetos e a que mais impacta na hora da escolha, é entender o próprio paradigma. A Orientação a Objetos exige profissionais devidamente treinados e em alguns casos certificados para poder usar todo o potencial das linguagens que possui a Orientação a Objeto como padrão em seu core.
A Orientação a Objeto consome mais memória (heap) e outros recursos, e ao desenvolver software usando a Orientação a Objetos para dispositivos limitados como os autônomos usados em industrias, robôs, mobile e outros , fica muito crítico. Neste caso é preciso analisar e adotar outro tipo de paradigma de programação, como o estruturado que não exige muito recursos no desenvolvimento e em produção.
Conclusão
É muito importante sempre analisar qual o melhor paradigma usar para desenvolver um produto de software. Tempo e custo são parâmetros que devemos sempre levar em conta no momento de escolher a tecnologia para produção de software.
Como eu já citei anteriormente, existem diversas ferramentas que auxiliam e facilitam o uso das linguagens e seus paradigmas de programação. A Engenharia de Software deu um salto nestes últimos 50 anos e hoje proporciona muita segurança, eficiência e principalmente agilidade no desenvolvimento de produto de software.
Bibliografia
[1] ANDRADE, Elisabeth. Princípio de Programação. Universidade Virtual Africana.
[2] CASTRO, Thais; NOGUEIRA, Alberto; MENEZES, Crediné; BOERES, Maria; RAUBER, Maria. Utilizando Programação Funcional em Disciplinas Introdutórias de Computação. Departamento de Informática – Universidade Federal do Espírito Santo (UFES).