One unfortunate fact of modern life is that functional new software becomes non-functional old software with depressing regularity. For most people, this means predictable episodes of frustration, but for the US military, it's a more serious problem. DARPA's new Building Resource Adaptive Software Systems (BRASS) project aims to take a major shot at avoiding this obsolescence by developing software systems that can still operate properly a hundred years from now.
As systems become more complex, the problems of compatibility and obsolescence become more important. Perfectly good devices may be unusable, vital data may be inaccessible, and communications may be impossible. A simple example of this is the BBC Domesday Project of the 1980s, which digitized the famous 11th century Norman census of England's assets. The project was successful, but the LaserVision discs that the data was stored on were almost forgotten until 2002 when it was realized that their formatting was obsolete and would soon be impossible to access, resulting in a major preservation effort.
For the US military, the problem is more than just frustration; it can have an impact on national security. Even when updates are available, installing and configuring them is costly both in terms of money and time as the problems of backwards compatibility and degraded interoperability in military systems becomes more apparent.
BRASS is a four-year research project that looks at the computational and algorithmic requirements needed to build software systems that can remain functional for over a century. The idea is to produce systems that can actively adapt to changes in the computer environment. According to DARPA, this will require going back to a very basic level, developing new linguistic abstractions, and creating resource-aware program analysis aimed at monitoring changes in computer environments and making the software react accordingly.
Currently, applications work on a software stack made of many layers of abstractions. Getting to through these layers means using different program interfaces. Unfortunately, these interfaces are often informally and incompletely documented inside the interface software itself – if at all. This makes understanding the system extremely painstaking and difficult, it not almost impossible at times. In addition, this makes keeping applications working properly over time without automatic updates difficult, costly, and leads to premature obsolescence.
BRASS is based on a "clean-slate approach" to software design, composition, and adaptation. This will involve developing new software specifications, program analysis, and finding methods to determine how computations and computer resources interact, and finding algorithms to allow software to adapt itself to changes without the heavy need for a programmer. The hope is that this will lead to a new family of programs that are highly functional, but is very adaptable for change at low cost.
"Technology inevitably evolves, but very often corresponding changes in libraries, data formats, protocols, input characteristics and models of components in a software ecosystem undermine the behavior of applications," says Suresh Jagannathan, DARPA program manager. "The inability to seamlessly adapt to new operating conditions undermines productivity, hampers the development of cyber-secure infrastructure and raises the long-term risk that access to important digital content will be lost as the software that generates and interprets content becomes outdated."
Source: DARPA
I hope they can pull this off, but its likely pie in the sky hopes. There is just too much money to be made by not allowing such a thing to happen. And as we all know, despite our desires as scientists, it is the almighty dollar (and politics) that wins and keeps us from our full potential (and has for years).
Sabayon KDE is most of the way there now. We need to look at why things are so obtuse and this is clearly because companies do not want to share their programming techniques and data formats or even their hardware specs. I have a very good scanner sitting next to me that can't be used because no one knows what the specs are and the company will not give it out even though the thing is over 15 years old. This is typical.
Open source sidesteps all of these problems. Data formats are open as is the source code and so it is easy to see why and how a program and its data works. It does not go obsolete because it is always updated and the old source is fully known and documented. Some open source data formats are self documenting too.
If they really want this to change then they need to force firms to give out their designs in full.
A system to remain usable it will require the ability to be physically updated along with the improvements to software, ability to fend off attacks (as the computer in person of interest).
A well guarded and maintained system with these properties could be built. The security is another question!