Il garbage-collector contribuisce ad aumentare l'incapsulamento e l'indipendenza del codice, utilizzare una libreria di classi non richiede la conoscenza dei dettagli interni di allocazione e deallocazione di strutture (come invece succede in C++).
L'uso di un garbage-collector è sconsigliabile qualora si sviluppino programmi per sistemi in tempo reale, che debbono garantire tempi di esecuzione deterministici. Nel caso di Sather questo è vero solo parzialmente: a differenza di altri linguaggi garbage-collected , l'allocazione di memoria è molto più rara, e avviene sempre in modo esplicito (non si ha la continua creazione e distruzione di liste dei linguaggi tipo LISP). Per garantire tempi di risposta deterministici è sufficiente evitare di creare nuovi oggetti nelle zone critiche del codice.
Ogni metodo di una classe può essere irrobustito mediante l'inserimento di precondizioni (predicati che devono essere soddisfatti prima che il metodo venga eseguito), postcondizioni (predicati che devono essere soddisfatti dopo che il metodo è stato eseguito), e invarianti di classe (predicati che devono essere soddisfatti da qualunque istanza di quella classe).
È possibile far generare automaticamente al compilatore una serie di controlli a tempo di esecuzione, in grado di rivelare molti degli errori più comuni (accesso agli array fuori dai limiti, utilizzo di strutture dati non allocate). Il codice così generato è più lento (nel caso peggiore i tempi di computazione triplicano) ma non tanto da impedire di poter abilitare i controlli anche con programmi computazionalmente molto pesanti.
Sather è un linguaggio molto recente, le specifiche della versione 1.0 del linguaggio risalgono al 14 Gennaio del 1994 [23], mentre la prima versione del linguaggio è del 1989. Sather è tuttora oggetto di ricerca: ne esiste una versione sperimentale per macchine parallelismo grossolano, pSather, e una per macchine a parallelismo fine, dpSather.