La programmazione procedurale è un termine usato per indicare il modo in cui un programmatore di computer scrive un programma. Questo metodo di sviluppo del software, chiamato anche applicazione, ruota attorno a mantenere il codice il più conciso possibile. Si concentra anche su un risultato finale molto specifico da raggiungere. La programmazione imperativa è un altro termine usato per indicare questo tipo di sviluppo. Quando è obbligatorio che un programma completi determinati passaggi per ottenere risultati specifici, si dice che il codice è stato scritto secondo la programmazione procedurale.
Gli sviluppatori di software che programmano secondo questo concetto di solito scrivono un piano preliminare in un linguaggio semplice prima di scrivere effettivamente il codice. La programmazione procedurale viene spesso insegnata agli studenti principianti di informatica a causa della logica dietro di essa. Sono incoraggiati a pensare in termini di una serie di passi necessari da compiere per raggiungere un obiettivo.
Ad esempio, il professore potrebbe incoraggiare la classe a scrivere una serie di azioni necessarie per preparare un panino con burro di arachidi e gelatina. Fingendo di non saper fare il panino, ogni studente cerca di seguire, passo dopo passo, le istruzioni. Imparano che se qualcosa viene tralasciato, non finiranno con il prodotto finale che volevano, quindi imparano l’importanza di istruzioni precise. Questa realizzazione serve per aiutare lo studente quando inizia a scrivere il codice vero e proprio.
La programmazione procedurale non è sempre il metodo preferito per codificare le applicazioni. Un software molto complesso può richiedere letteralmente migliaia di righe di codice, rendendo un po’ più difficile per un team di persone lavorarci. Alcuni programmatori ritengono che applicazioni estremamente grandi possano diventare difficili da mantenere da parte di uno sviluppatore.
Alcune persone credono erroneamente che sia impossibile scrivere software molto grandi o complessi in un linguaggio di programmazione procedurale. Alcuni programmi potrebbero essere scritti più facilmente utilizzando la programmazione orientata agli oggetti (OOP), ma ciò non significa che non possano essere sviluppati proceduralmente. Il kernel Linux, che è il cuore di un sistema operativo open source, è scritto utilizzando la programmazione procedurale. Altre importanti applicazioni come il server Apache, il sistema di gestione dei contenuti Drupal e Samba, sono tutte scritte in questo modo. Queste applicazioni sono grandi e sono considerate complesse dalla stragrande maggioranza dei programmatori.
Tra i linguaggi di programmazione procedurali esistenti ci sono C, Fortran e Python. Molte importanti applicazioni e utilità sono state codificate in tali linguaggi. Ad esempio, Anaconda, il programma di installazione per Fedora Linux, è scritto in Python, così come vari strumenti di gestione del software.