Vantaggi e svantaggi della programmazione a oggetti
I linguaggi di programmazione a oggetti come C++, Java e Visual Basic sono stati sviluppati da informatici per accelerare la programmazione e migliorare la qualità del software. Le tecniche OOP suddividono i programmi in blocchi funzionali chiamati oggetti, rendendo funzionalità frequentemente necessarie come pulsanti di controllo, gestione di database e operazioni matematiche più facili da usare e condividere tra programmatori. Tuttavia, i vantaggi comportano compromessi come una maggiore complessità del software e prestazioni ridotte.
Maggiore produttività
Le tecniche OOP impongono regole al programmatore che, a lungo termine, l'aiutano a fare più lavoro; i programmi finiti funzionano meglio, hanno più funzionalità e sono più facili da leggere e mantenere. I programmi che non usano l'OOP tendono a essere grandi blocchi di testo continui come capitoli molto lunghi in un libro. Quando i programmatori intervengono per modificarli, il testo diventa eventualmente disorganizzato e più difficile da seguire. Al contrario, i programmatori OOP prendono oggetti software nuovi ed esistenti e li "cuciono" 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 nella creazione del nuovo programma.
Costi di programmazione inferiori
Specialmente per progetti più grandi, l'OOP aiuta a ridurre il costo della manodopera di programmazione. Il personale che lavora a un progetto può sviluppare la propria libreria di oggetti software, permettendo ai programmatori di usare facilmente il lavoro degli altri e riducendo le ore necessarie per sviluppare i programmi. Con una migliore qualità del software, gli sviluppatori spendono meno tempo a correggere programmi malfunzionanti, riducendo ulteriormente i costi di manodopera.
Curva di apprendimento più ripida
Per padroneggiare l'OOP un principiante deve imparare nuovi concetti astratti come il polimorfismo — riutilizzare oggetti aggiungendo nuove funzionalità — e l'incapsulamento — nascondere parti dei dati interni di un oggetto per migliorare la sicurezza — concetti che non si trovano negli stili di programmazione più vecchi. Non solo questi concetti richiedono tempo per essere appresi, ma potrebbero essere troppo complessi per giovani aspiranti programmatori o per chi programma solo occasionalmente.
Software più lento
Il software orientato agli oggetti può comportare codice di gestione aggiuntivo non necessario in altri linguaggi informatici; il computer deve eseguire la programmazione aggiuntiva, rallentando il tempo di risposta di un'applicazione. Per progetti dove la velocità è importante, i programmatori possono scegliere di scrivere le parti più critiche in linguaggi non-OOP come assembler o C, riservando il codice OOP per finestre o pulsanti — aree in cui gli oggetti hanno un chiaro vantaggio.