Programmazione: Cos’è un framework?

I framework sono lì per fornire un boilerplate o un wire frame di base su cui costruire applicazioni.

I framework sono generalmente più specifici per le applicazioni.
eg: Python può essere usato per fare qualsiasi cosa. Ma il framework Django su python è usato per costruire web-app e servizi web.

In dettaglio:

Si supponga di voler scrivere un servizio web da zero (senza usare alcun framework come flask o django).

Quindi si inizierà con del codice che apre una porta sul computer e ascolta quella porta per la comunicazione.
Quando riceve una richiesta su quella porta capirà il percorso che è stato richiesto e quali parametri ecc. sono stati passati.
Poi problematicamente recupererà i dati che devono essere restituiti come dati html o dati da un db. Poi restituisce quei dati.
(Un sacco di altre cose dovranno anche essere gestite come i pacchetti HTTP, la decodifica della risposta alla richiesta in forma di pacchetto, le connessioni http1.1 persistenti, l'autenticazione, ecc. ecc.)

Ma se usate djago o flask Framework per scrivere un servizio web.
creerete un metodo che recita:

@app.route('/')
def hello_world():
return render_template('hello_world.html')

e il framework si prenderà cura dell'apertura delle porte/ ascolto/ comunicazione http/ codifica dei pacchetti decodifica/ rendering della pagina html/ restituzione di immagini statiche come favicon/ comunicazione con il Db/ autenticazione degli annunci ci sono/ etc etc..

Quindi fondamentalmente un framework è qualcosa che si prende cura dei compiti di base ridondanti in modo che applicazioni sofisticate possano essere scritte sopra di esso in modo semplice. I framework sono generalmente add-on generici sopra un linguaggio di programmazione. Non funzionano da soli, il codice deve essere scritto che utilizza le caratteristiche del framework per dare vita al framework stesso.