Vantaggi e svantaggi della programmazione orientata agli oggetti

Codice informatico. Schermo verde intenso

La maggior parte delle moderne app per PC e dispositivi mobili utilizza tecniche OOP.

Credito immagine: SoulArt/iStock/Getty Images

I linguaggi di programmazione orientata agli oggetti come C++, Java e Visual Basic sono stati sviluppati da scienziati informatici per velocizzare la programmazione e migliorare la qualità del software. Le tecniche software OOP suddividono i programmi in blocchi funzionali chiamati oggetti, rendendo spesso necessario funzioni come pulsanti di controllo, gestione del database e matematica più facili da usare e condividere tra programmatori. Tuttavia, i vantaggi derivano da compromessi come maggiore complessità del software e prestazioni ridotte.

Migliore produttività

Le tecniche OOP impongono regole a un programmatore che, a lungo termine, lo aiutano a svolgere più lavoro; i programmi finiti funzionano meglio, hanno più funzioni e sono più facili da leggere e mantenere. I programmi che non utilizzano l'OOP tendono ad essere grandi e continue porzioni di testo come capitoli molto lunghi in un libro. Quando i programmatori intervengono per cambiarlo, il testo alla fine diventa disorganizzato e più difficile da seguire. Al contrario, i programmatori OOP prendono oggetti software nuovi ed esistenti e li "cuce" insieme per creare nuovi programmi. Poiché le librerie di oggetti contengono molte funzioni utili, gli sviluppatori di software non devono reinventare la ruota così spesso; più del loro tempo va a fare il nuovo programma.

Video del giorno

Costi di programmazione inferiori

Soprattutto per i progetti più grandi, l'OOP aiuta a ridurre il costo del lavoro di programmazione. Il personale che lavora su un progetto può sviluppare la propria libreria di oggetti software, consentendo ai programmatori di utilizzare facilmente il lavoro degli altri e riducendo le ore necessarie per sviluppare programmi. Con una migliore qualità del software, gli sviluppatori dedicano meno tempo alla correzione dei programmi malfunzionanti, riducendo ulteriormente i costi di manodopera.

Curva di apprendimento più ripida

Per padroneggiare l'OOP un principiante deve imparare concetti nuovi e astratti come polimorfismo -- riutilizzare gli oggetti aggiungendo loro nuove funzionalità -- e incapsulamento -- nascondere parti dei dati interni di un oggetto per migliorare la sicurezza -- nessuna delle quali idee si trova nei vecchi stili di programmazione. Questi concetti non solo richiedono tempo per essere appresi, ma potrebbero essere troppo complessi per aspiranti programmatori più giovani o per coloro che programmano solo occasionalmente.

Software più lento

Il software orientato agli oggetti può comportare un codice di manutenzione aggiuntivo non necessario in altri linguaggi per computer; il computer deve eseguire la programmazione aggiuntiva, rallentando il tempo di risposta di un'applicazione. Per i progetti in cui la velocità è importante, i programmatori possono scegliere di scrivere le parti più critiche in termini di tempo in non-OOP linguaggi come assembler o C, riservando il codice OOP per finestre o pulsanti - aree in cui gli oggetti hanno un chiaro vantaggio.