Perché i segnali non sono semplicemente chiamati eventi?
-
05-07-2019 - |
Domanda
Da quello che posso dire, in Python e Django, i segnali sono semplicemente eventi delegati. C'è qualcosa che li differenzia funzionalmente dalla nozione tipica di eventi in C #, Java, ActionScript, ecc?
Soluzione
In realtà, "segnali" sono stati in giro più a lungo degli eventi. Nel primo utilizzo, un segnale era un modo asincrono per i processi di essere avvisati che si erano verificati eventi. Poiché Unix è molto più vecchio di Django (e poiché gran parte del lavoro di Django proviene da pydispatcher, dove sono state fatte le cose originali), il nome è rimasto bloccato.
Gli eventi sono davvero segnali, potresti dire!
Altri suggerimenti
I segnali in genere hanno un'associazione con una struttura del sistema operativo e gli eventi sono in genere definiti dall'applicazione. In alcune pile di tecnologia, le cose a livello di sistema operativo potrebbero essere nascoste abbastanza bene da non fare differenza nell'API, ma in altre forse no.
Afaik Qt ha avuto la prima implementazione di segnale / slot. Documenti di Qt spiegano la metafora: " Viene emesso un segnale quando si verifica un evento particolare " . La distinzione è così sottile che la nomenclatura è stata sfocata.
Potresti anche chiedere " Perché gli eventi non sono semplicemente chiamati segnali? " ;. Differenze nella terminologia si verificano.