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 provides the following advantages
What does Juce have to do with MIDI?
Juce not only teaches you how to build audio apps and synths, but also how to control them with MIDI.
Dave Zicarelli from Cycling 74' and Brett Porter from Art and Logic use Juce
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!