  The social and economic importance of large bodies of programs and data that
are potentially long-lived has attracted much attention in the commercial and
research communities. Here we concentrate on a set of methodologies and
technologies called persistent programming. In particular we review programming
language support for the concept of orthogonal persistence, a technique for the
uniform treatment of objects irrespective of their types or longevity. While
research in persistent programming has become unfashionable, we show how the
concept is beginning to appear as a major component of modern systems. We
relate these attempts to the original principles of orthogonal persistence and
give a few hints about how the concept may be utilised in the future.
