L'astrazione è un concetto chiave di programmazione e framework per computer che aiuta i programmatori a raggiungere questo obiettivo. Questa è una buona cosa. Dubito che molti di noi vorrebbero sviluppare sistemi complessi in linguaggio assembly! Il problema viene, penso, quando i programmatori hanno poca idea di ciò che il livello di astrazione sta mascherando. In altre parole, devi avere un'idea di cosa succede sotto il cofano, anche se non interagisci o non ti interfaccia direttamente con esso.
Ricordo di aver sviluppato alcuni dei primi siti Web dinamici a metà degli anni '90, usando C e CGI (alla volta quando la maggior parte dei siti Web era ancora in HTML statico). Non c'erano in realtà linguaggi di scripting lato server maturi (come PHP o ASP) e poche librerie, quindi dovevi scrivere l'intero stream di risposta HTTP sul server con ogni pagina. L'analisi dei parametri GET e POST richiedeva la scrittura della propria libreria. Era noioso, lento, laborioso e molto incline agli errori. Non mi manca un po '!
Tuttavia, ritengo anche che framework come le forme web ASP.NET astraggono l'intera natura stateless del web fino al punto in cui molti nuovi sviluppatori web hanno poca idea di ciò che effettivamente sta succedendo sotto il cofano. Questo porta a un codice inefficiente e gonfio che funziona male perché lo sviluppatore sta assemblando i componenti insieme usando una metodologia "drag'n'drop" senza rendersi conto di cosa sta succedendo a livello HTTP.
Quindi, credo che i framework siano essenziali per lo sviluppo di software di alto livello, ma non assolvono gli sviluppatori di avere una certa comprensione di ciò che viene sottratto. Sì, i framework possono renderti stupido, ma solo se non riesci a capirli.