V programování je neměnný objekt , jehož stav nelze po vytvoření změnit .
Ve funkcionálním programování jsou všechna (v případě čistých jazyků) nebo téměř všechna (v případě nečistých jazyků ) data v programu, jak lokální, tak globální, neměnná. To na jedné straně výrazně zvyšuje stabilitu programů zjednodušením formálního ověřování programů. Na druhou stranu to znesnadňuje řešení řady problémů (z nichž nejčastější je úkol implementace uživatelského rozhraní , což je v podstatě proměnlivý stav), což nutí systémy typů jazyka ke složitějším - například monády nebo jedinečné typy .
V objektově orientovaném programování jsou neměnné objekty vytvářeny prostřednictvím vhodného návrhového vzoru .
Neměnné objekty jsou zajímavé například tím, že jsou bezpečné pro vlákna .
Objekt může být zcela nebo částečně neměnný. Například použití direktivy const na libovolného člena třídy v C++ způsobí, že objekt bude částečně neměnný. V některých případech je objekt považován za neměnný z pohledu uživatele třídy, i když se jeho vnitřní pole změní . Neměnný objekt obvykle přijímá všechny interní hodnoty během inicializace nebo jsou hodnoty nastaveny v několika krocích, ale před použitím objektu.