Proveresti a convincere il tuo cliente che l'uso della programmazione orientata agli oggetti è molto più pulito?
Penso che devi educare te stesso di più sui paradigmi di programmazione. Il codice programmato orientato agli oggetti non è necessariamente più pulito e, di fatto, non è universalmente applicabile. Inoltre, un buon programmatore orientato agli oggetti sa come fare un buon lavoro usando un procedurale / modulare (con paradigmi funzionali e dichiarativi, è un po 'più difficile, ma non dovrebbe essere eccessivamente difficile per un buon programmatore arrivare - tramite lettura e deduzione - a una soluzione FP / dichiarativa accettabile.)
Quasi mai, lo ripeto, non puoi quasi capire bene quando e come usare l'Orientamento agli oggetti senza avere una buona conoscenza della programmazione procedurale e modulare. OO è molto più di una semplice dichiarazione di classi e gerarchie ereditarie.
O proveresti a seguire ciò che gli ha richiesto e dargli un codice scadente?
Se non riesci a scrivere un buon codice in modo procedurale, dubito che tu possa scrivere un buon codice in modo orientato agli oggetti. Periodo. Non sto cercando di giudicare qui, ma questo deve essere affermato.
L'orientamento agli oggetti è un'estensione della programmazione procedurale e modulare. L'orientamento agli oggetti offre semplicemente strumenti che, se usati in modo appropriato, offrono meccanismi migliori con cui affrontare i problemi di incapsulamento, accoppiamento, coesione e riutilizzo / estensibilità del codice.
Ma tutti questi problemi non sono inerenti e unici a OO. Esistono nel codice procedurale / modulare (e in altri paradigmi per quella materia). Questo è il tipo di problemi di complessità che, al suo centro, è indipendente dal paradigma. Se non puoi gestirli senza colla OO, è improbabile che tu possa gestirli con esso.
=========
Tornando alla tua domanda originale, se provare a persuadere il tuo cliente. Dipende. Come ha detto il poster Sean McMillan, se il cliente sta semplicemente cercando di gestire in modo microscopico lo sforzo di sviluppo di alcuni programmi (leggi, politica dell'ufficio), vai via. Le persone che fanno questo sabotaggio progettano di incolpare qualcun altro o di promuovere un'agenda particolare. Non vuoi essere coinvolto in questo.
OTH, potrebbero esserci altri motivi per tale requisito. Molti negozi incorporati, nel bene o nel male, scelgono di porre molti vincoli su ciò che si può fare con il C ++ (nessun metodo virtuale, nessuna eccezione, per esempio.) Alcune volte viene fatto in modo strabiliante. Altre volte, ci sono validi motivi tecnici per farlo.
Quindi devi capire perché il client vuole evitare il codice OO. E se puoi supporre che non esiste un'agenda politica (senza bandiere rosse), allora dovresti fare la cosa professionale da fare, che è semplicemente fare il codice proceduralmente / modulare e fare un buon lavoro.
Non ci sono davvero scuse per fornire codice scadente, indipendentemente dal paradigma di programmazione. Se non puoi produrre un codice accettabile con un solo paradigma, sicuramente non puoi produrre un codice accettabile in generale.