C'è molta confusione e uso improprio di questi termini. Spesso uno è usato per indicare un altro. Ecco cosa significano effettivamente questi termini.
"Native" si riferisce ai tipi che sono incorporati nella lingua, invece di essere forniti da una libreria (anche una libreria standard), indipendentemente da come sono implementati. Le stringhe Perl fanno parte del linguaggio Perl, quindi sono native in Perl. C fornisce la semantica delle stringhe sui puntatori ai caratteri usando una libreria, quindi il puntatore a char è nativo, ma le stringhe no.
"Atomico" si riferisce a un tipo che non può più essere scomposto. È l'opposto di "composito" . I compositi possono essere scomposti in una combinazione di valori atomici o altri compositi. I numeri interi nativi e i numeri in virgola mobile sono atomici. Frazioni, numeri complessi, contenitori / raccolte e stringhe sono composti.
"Scalare" - e questo è quello che confonde la maggior parte delle persone - si riferisce a valori che possono esprimere scala (da cui il nome), come dimensione, volume, conteggi, ecc. I numeri interi, i numeri in virgola mobile e le frazioni sono scalari. I numeri complessi, i valori booleani e le stringhe NON sono scalari. Qualcosa che è atomico non è necessariamente scalare e qualcosa che è scalare non è necessariamente atomico. Gli scalari possono essere nativi o forniti dalle librerie.
Alcuni tipi hanno classificazioni dispari. I tipi BigNumber, solitamente implementati come una matrice di cifre o interi, sono scalari, ma tecnicamente non sono atomici. Possono sembrare atomici se l'implementazione è nascosta e non è possibile accedere ai componenti interni. Ma i componenti sono solo nascosti, quindi l'atomicità è un'illusione. Sono quasi sempre forniti nelle biblioteche, quindi non sono nativi, ma potrebbero esserlo. Nel linguaggio di programmazione Mathematica, ad esempio, i grandi numeri sono nativi e, poiché non c'è modo per un programma Mathematica di scomporli nei loro elementi costitutivi, sono anche atomici in quel contesto, nonostante siano composti sotto il copertine (dove non sei più nel mondo della lingua Mathematica).
Queste definizioni sono indipendenti dalla lingua utilizzata.