Vantagens e desvantagens da programação orientada a objetos

Código de computador. Tela verde profunda

A maioria dos aplicativos modernos para PC e móveis usam técnicas OOP.

Crédito da imagem: SoulArt / iStock / Getty Images

Linguagens de Programação Orientada a Objetos, como C ++, Java e Visual Basic, foram desenvolvidas por cientistas da computação para agilizar a programação e melhorar a qualidade do software. As técnicas de software OOP dividem os programas em blocos funcionais chamados de objetos, tornando frequentemente necessários recursos como botões de controle, gerenciamento de banco de dados e matemática mais fáceis de usar e compartilhar entre programadores. No entanto, as vantagens vêm com compensações, como complexidade de software adicionada e desempenho reduzido.

Melhor Produtividade

As técnicas OOP impõem regras a um programador que, a longo prazo, o ajudam a realizar mais tarefas; programas concluídos funcionam melhor, têm mais recursos e são mais fáceis de ler e manter. Os programas que não usam OOP tendem a ser grandes blocos contínuos de texto, como capítulos muito longos em um livro. Quando os programadores intervêm para alterá-lo, o texto eventualmente se torna desorganizado e mais difícil de seguir. Em contraste, os programadores OOP pegam objetos de software novos e existentes e os "costuram" para fazer novos programas. Como as bibliotecas de objetos contêm muitas funções úteis, os desenvolvedores de software não precisam reinventar a roda com tanta frequência; mais do seu tempo é gasto para fazer o novo programa.

Vídeo do dia

Custos de programação mais baixos

Especialmente para projetos maiores, OOP ajuda a reduzir o custo da mão de obra de programação. A equipe que trabalha em um projeto pode desenvolver sua própria biblioteca de objetos de software, permitindo que os programadores usem o trabalho uns dos outros facilmente e reduzindo as horas necessárias para desenvolver programas. Com a melhoria da qualidade do software, os desenvolvedores gastam menos tempo consertando programas com defeito, reduzindo ainda mais os custos de mão de obra.

Curva de aprendizagem mais íngreme

Para dominar o OOP, um iniciante deve aprender conceitos novos e abstratos, como polimorfismo - reutilizar objetos ao adicionar novos recursos a eles - e encapsulamento - ocultar partes dos dados internos de um objeto para melhorar a segurança - nenhuma das quais ideias são encontradas em estilos de programação mais antigos. Esses conceitos não apenas levam tempo para serem aprendidos, mas também podem ser complexos demais para aspirantes a programadores mais jovens ou para aqueles que programam apenas ocasionalmente.

Software mais lento

O software orientado a objetos pode envolver código de manutenção extra, não necessário em outras linguagens de computador; o computador deve executar a programação adicional, diminuindo o tempo de resposta de um aplicativo. Para projetos onde a velocidade é importante, os programadores podem optar por escrever as partes mais críticas de tempo em não OOP linguagens como assembler ou C, reservando o código OOP para janelas ou botões - áreas nas quais os objetos têm um claro vantagem.