You may not know it, but a lot of the software you use may be made by the same system, JUCE. JUCE is used for the development of desktop and mobile applications.
The aim of JUCE is to allow software to be written such that the same code will can run identically on Windows, Mac OS X and Linux platforms. It supports various development environments and compilers.
Juce not only teaches you how to build audio apps and synths, but also how to control them with MIDI.
Why does that matter? Both David and Brett are in the MIDI 2.0 prototyping working group. Because a lot of the MIDI 2.0 prototyping work that they are doing is being done in Juce, it will support various development environments and compilers. Tools like Juce weren't available back in 1982!