Muito se fala sobre programação orientada a objetos, hoje em dia já é algo tão familiar aos programadores que se acaba esquecendo que há algum tempo a programação estruturada dominava amplamente. Nas universidades a iniciação as linguagens de programação, são em sua grande maioria linguagens estruturadas, por ser uma fase de adaptação a lógica que escrever códigos impõe.
Definição de programação estruturada (PE) ou procedural:
A minha definição de programação estruturada é: uma forma de escrever os códigos sem encapsular dados, ou seja, que em qualquer parte do código seja possível utilizar um dado guardado em uma variável, sem a necessidade de permissão. Com o auxílio de métodos estruturados pode-se modificar e retornar dados em variáveis. Não há organização em camadas, que veremos logo mais neste artigo como funciona, assim sendo, todos os tipos de códigos estão nos mesmos arquivos. Certamente é a mais fácil de aprender e mais fácil de controlar o fluxo da estrutura do código, daí o nome de programação estruturada.
Definição encontrada na internet: Programação estruturada é uma forma de programação de computadores que preconiza que todos os programas possíveis podem ser reduzidos a apenas três estruturas: sequência, decisão e iteração (esta última também é chamada de repetição), desenvolvida por Michael A. Jackson no livro "Principles of Program Design" de 1975. Leia também sobre a história da programação. Tendo, na prática, sido transformada na programação modular, a programação estruturada orienta os programadores para a criação de estruturas simples nos programas, usando as sub-rotinas e as funções. Foi à forma dominante na criação de software anterior à programação orientada por objetos. (Wikipédia).
Exemplos de liguagens: C. COBOL, Fortran, Perl
Definição de programação orientada a objetos (POO):
Minha definição de programação orientada a objetos: A orientação a objetos se dá ao fato da escrita do código tentar trazer objetos do mundo real para se tornar parte do código. Com o uso de classes, podemos encapsular estes objetos e utilizá-los apenas se estivermos estas classes instanciadas e se ela permitir o uso externo ou não. Outra parte importante da orientação é podermos usufruir de camadas de programação. Na internet, por exemplo, podemos ter a camada de interface, onde os métodos da linguagem base do site ou sistema conversam através de métodos com a linguagem HTML. Então, temos a camada de interface, a camada de métodos de união entre a interface e o backend (camada de inteligência e mecanismo de manipulação dos dados).
Ainda podemos dizer que a linguagem de orientação a objetos é uma forma melhor de se reaproveitar códigos, pois todos os métodos criados têm uma finalidade e podem ser invocados toda vez que se fizer necessário. Exemplo: Um método para inserir um registro no banco de dados. Esta função vai ser chamada toda vez que você quiser inserir um registro em uma determinada tabela, desta forma, precisa-se fazer uma vez o código e sempre reutilizá-lo.
Facilita para a organização do projeto, separar estes conjuntos de objetos em classes.
Definição encontrada na internet: A orientação a objetos é um modelo de análise, projeto e programação de sistemas de software baseado na composição e interação entre diversas unidades de software chamadas de objetos. Em alguns contextos, prefere-se usar modelagem orientada ao objeto, em vez de programação. De fato, o paradigma "orientação a objeto", tem bases conceituais e origem no campo de estudo da cognição, que influenciou a área de inteligência artificial e da linguística, no campo da abstração de conceitos do mundo real.
Na qualidade de método de modelagem, é tida como a melhor estratégia para se eliminar o "gap semântico", dificuldade recorrente no processo de modelar o mundo real do domínio do problema em um conjunto de componentes de software que seja o mais fiel na sua representação deste domínio. Facilitaria a comunicação do profissional modelador e do usuário da área alvo, na medida em que a correlação da simbologia e conceitos abstratos do mundo real e da ferramenta de modelagem (conceitos, terminologia, símbolos, grafismo e estratégias) fosse a mais óbvia, natural e exata possível.
Exemplos de linguagens: JAVA, C#, C++, Python.
Comparativo entre as formas de programação:
Reutilização de código:
PE: É possível reutilizar códigos na programação estruturada, porém em muitos casos você será obrigado a utilizar o famoso "CTRL C + CTRL V".
POO: Com a POO você é capaz de elaborar um relacionamento entre diversos componentes, estabelecendo comunicação entre eles e facilitando assim, e muito a reutilização de código, além da facilidade de se herdar atributos e comportamentos de outros objetos.
Manutenção do código:
PE: A manutenção do código se baseia no que o programador que criou o código fez para deixar de comentários no próprio código ou se escreveu um roteiro sobre o que o programa faz.
POO: Na POO, se o código seguir os padrões de construção, qualquer programador que conheça os padrões pode facilmente encontrar problemas, utilizar o código escrito ou até mesmo melhorá-lo se assim se fazer necessário.
Forma de execução:
PE: A forma de execução da programação estruturada se dá pelo uso de resolução de tarefas, um código resolvendo um problema.
POO: A programação orientada a objetos tenta fazer com que os problemas sejam resolvidos de forma que possamos resolvê-los futuramente com a mesma eficiência.
Vantagens e desvantagens:
Vantagens PE:
- Provê um melhor controle sobre o fluxo de execução do código, quando comparadacom a POO.
- É de fácil compreensão, sendo amplamente usada em cursos introdutórios de programação.
Desvantagens PE:
- Ainda se foca em como a tarefa deve ser feita e não em o que deve ser feito.
- Tende a gerar códigos confusos, onde tratamento dos dados são misturados como comportamento do programa.
Vantagens POO:
- Provê uma melhor organização do código.
- Contribui para o reaproveitamento de código.
Desvantagens POO:
- Pode não possui o mesmo desempenho de códigos estruturados similares.
- Seus conceitos são de difícil compreensão se comparados aos conceitos daProgramação estruturada.
Considerações finais:
Aprendi a programar de forma estruturada, no começo foi uma maravilha. A ideia de construir um algoritmo para resolver um problema, salvar aquele arquivo e vê-lo funcionando, brilha os olhos de quem o criou. Mas a forma de resolver um problema, salvar e passar a tentar resolver outro não se mostrou muito eficiente. Foi aí que entrou a programação com orientação a objetos. A manipulação dos dados, a construção dos objetos, a tentativa de resolver mais de um problema com o mesmo código fazem você se apaixonar ainda mais pela tecnologia envolvida.
Como Jobs e Gates um dia falaram: "Todo mundo deveria saber programar, o mundo seria melhor se todos soubessem".
[CURSO]118[/CURSO]
😕 Poxa, o que podemos melhorar?
😃 Boa, seu feedback foi enviado!
✋ Você já nos enviou um feedback para este texto.