2013-06-29 6 views
19

I due pezzi di gergo programmazione che mi causano più confusione sono le parole trasparente e opachi. Sono abbastanza comunemente usati, ma non sono mai stato completamente chiaro sul loro significato.Cosa significano "trasparente" e "opaco" se applicati a concetti di programmazione?

Google tiri su un sacco di esempi di utilizzo della parola 'trasparente', come:

e anche un mazzo di risultati per 'opaco', principalmente relativi al concetto di C s:

anche se ho visto anche la parola usata in contesti estranei a C.

Lasciando da parte il loro uso all'interno di termini composti specifici come "puntatore opaco", che significato hanno le parole trasparenti e opaco hanno nell'ambito della programmazione? Sono anche gli opposti l'uno dell'altro, come i concetti visivi a cui alludono metaforicamente o sono estranei l'uno all'altro?

risposta

17

Negli esempi che date, trasparente viene utilizzato per indicare nascosti nel senso di cose che avvengono automaticamente dietro le quinte (vale a dire senza che l'utente del codice o il programma dover interagire).

opaco viene usato anche per significare nascosti, che è forse dove la confusione entra. Il termine tipo opaco ha un specific meaning in C/C++, dove si riferisce ad un tipo che è stato dichiarato ma non ancora definito .

In entrambi i casi, penso che le persone stiano usando questi termini per esprimere una mancanza di visibilità. Transparent viene utilizzato quando qualcosa è presente, ma non è possibile vederlo. Opaco viene utilizzato quando qualcosa è presente, ma non è possibile vedere all'interno di per ispezionare il suo funzionamento interno.

+3

Potrebbe essere il caso, ma direi che chiunque descriva un meccanismo nascosto come trasparente sta usando la parola in modo errato e dovrebbe invece usare la parola opaque. –