Windows and Unix are systems like Apple's OS X is a system. They control running programs, memory, resources, and hardware.
The original Unix is now known as AT&T UNIX, which was written Ritchie and Thompson at Bell Labs in 1969.
Although few people actually use the original AT&T UNIX today, the project spawned a bunch of derivative systems, of which Apple's (Mac) system, OS X, is one of many. It's confusing, but now Unix is a family of systems that meet certain criteria --- each system that does can brand itself as "a UNIX".
There are also "Unix-like" systems, which follow some conventions, standards, etc., originally set by AT&T UNIX, etc. but don't entirely meet the criteria to use the name. "Linux" is one such example, although there are others.
It's worth mentioning that "Unix" is sometimes used to describe everything I've just described, or in practice, everything that's not Windows.
Unices and Unix-like systems are supposedly better for programming because that's how those systems are designed.
When Ritchie and Thompson wrote the original AT&T Unix, they also developed the C programming language alongside, and designed it to make programming eas(ier) than on other systems of the time. Still, if you're writing C, a Unix system is almost certainly your best choice.
Microsoft Windows isn't a Unix system because the developers decided to ignore convention, making developing for Windows' native interface far more painful than it should be. The entire system is one big blob, and Microsoft has made a habit of changing standardized programming conventions _just enough_ to make conventional code broken.