In the early 21st century, computer programmers often used statically typed languages, especially Java. While these languages were suitable for small-scale projects, they were not as well suited for enterprise class systems, where flexibility and adaptability were (and are) primary concerns.
Early attempts to help these languages communicate in distributed systems (CORBA, DCOM, etc.) were not wildly successful. Partially as a result, XML was developed as a connective tissue between systems. Where earlier approaches had failed, XML succeeded beyond expectations. XML became the standard communication language between systems. Surprisingly, XML also became a configuration language within individual systems. (It turned out that even very small applications needed more flexibility than Java alone provided. While programmers still said 'Java' what they really did was 'Java+XML').
But while XML was a great boon to Java in the short run, it was fatal in the long run. XML decoupled systems enough that enterprises could experiment with a variety of different approaches in different subsystems. Released from the monopoly effects of tightly coupled systems, niche programming languages had room to grow. And grow they did. Older languages such as Smalltalk and Lisp enjoyed a resurgence, along with their newer cousins Python and Ruby. The transition was slow at first, but its momentum was irresistible -- thanks to XML.