Riepilogo rapido:
Perché nel mondo reale, prima o poi, devi lavorare con il codice procedurale.
Perché i linguaggi procedurali possono funzionare come un'estensione o un'introduzione ai linguaggi orientati agli oggetti, invece di essere solo un'alternativa.
Complemento per la risposta 2. Poiché OOP è più complesso della programmazione procedurale, quindi è meglio imparare prima la programmazione procedurale.
Perché nel mondo reale, i programmatori lavorano e combinano diversi modi per risolvere i problemi, la "programmazione multiparadigm" di AKA, non solo un singolo paradigma.
La maggior parte dei linguaggi di programmazione sono multiparadigm, a un certo livello, anche se i loro progettisti o sviluppatori comuni dicono il contrario.
[NOVITÀ] Perché la Programmazione Modulare che è comunemente mescolata e confusa con la Programmazione procedurale, può essere applicata a OOP Pertanto la domanda può essere letta come "Perché dobbiamo imparare la Programmazione Modulare prima di apprendere la Programmazione orientata agli oggetti"
Descrizione noiosa estesa:
Il punto 1 è molto chiaro, non un'ulteriore spiegazione.
Punto 2, Classi, Ereditarietà, polimorfismo, interfacce, ecc.
Punto 3, codifico la procedura Pascal prima di imparare Pascal orientato agli oggetti, quando ci sono arrivato ho detto: "guarda, le classi sono come piccoli programmi procedurali ... ... e puoi farli parlare tra di loro, fico !!! ".
Ho sentito lo stesso da persone che sono passate dalla semplice C alla C plus plus.
Punto 4, il più delle volte i programmatori combinano diverse tecniche di programmazione o paradigmi o modi per risolvere un problema. Funzionale, procedurale, OOP, logico.
Persino Java "Pure OO" non è una programmazione così semplice come dice.
+1 punto per dire "Programmazione procedurale" invece di "Programmazione strutturata". O programmazione modulare. Questo è importante
Tuttavia, molte volte questi termini sono insegnati insieme e usati in modo intercambiabile, non lo sono. La programmazione strutturata include molti concetti, non solo l'utilizzo di procedure, e uno di questi sta facendo in modo che il programma non assomigli a "Codice Spaghetti".
Oggi ho letto diversi programmi OO "puri" che assomigliano a "Codice Spaghetti orientato agli oggetti", il che significa che il programmatore ha usato OOP, ma il suo codice sembra un casino.
Molte volte, posso leggere un codice OO e dire che il programmatore ha imparato la Programmazione strutturata prima di OOP, perché il codice è chiaro e organizzato.
E per la programmazione modulare, ho visto diverse app. in C ++ e PHP che non utilizza i moduli. *