What rapid spread? There were far more platforms before, with far more significant differences.
In the late '80s, a popular game was commonly ported to half a dozen platforms: Amiga, Atari ST, Apple II, Commodore 64, PC+EGA, PC+VGA -- sometimes even Sinclair and MSX. Even the hardware was usually completely different between systems, e.g. the powerful custom graphics and audio chips on the Amiga.
In the '90s, a cross-platform desktop application like Netscape would have to run on a range of very different systems: Windows 3.1 (16-bit), Windows 95 (32-bit with new UI), Windows NT (32-bit with old UI), Mac OS 7 (32-bit with no memory protection), Solaris, Linux, AIX, HP/UX...
In comparison, Windows 7, Mac OS X and modern Linux are basically the same. It's easy to write cross-platform C applications using mostly UNIX APIs and deploy them on Windows using MinGW and a couple of lightweight libraries like pthread-win32. For cross-platform GUI applications, the Qt framework is available pretty much everywhere, even phones.
This is pretty amazing. Essentially everything has become "UNIX-like" nowadays -- even the smartphone stalwart Symbian has given up trying to pretend it's something else.