The most striking difference between JADE and other object-oriented programming languages is that its object database is a native part of its language. For example, when creating an object in JADE, it can be created as transient or persistent. Creating an object as "transient" is similar to creating objects in other object-oriented programming languages – the object is simply created in memory, and then lost when the program ends. On the other hand, when an object is created as "persistent", when the program ends, the object will still exist and be there the next time the program starts up. So, when an object is "persistent" JADE automatically works in the background to store and retrieve the object in the database when necessary. Persistent objects can be distributed across multiple co-operating servers, with JADE automatically handling object caching and cache coherency.