In information technology, legacy applications and data are those that have been inherited from languages, platforms, and techniques earlier than current technology. In the past, much programming has been written for specific operating systems. Currently, efforts are underway to migrate legacy applications to new programming languages and operating systems that follow open or standard programming interfaces. Theoretically, this will make it easier in the future to update applications without having to rewrite them entirely and will allow applications to run on any operating system.