This is a totally simplistic answer, but it depends on the language and libraries you use. I have created an application using the cross platform library SDL in C. SDL handled all of the low level windows and graphics functions for me. This made it easy to compile the program for a Windows, Mac, and Linux executable. I did have to actually compile the executables on the respective platforms. All applications executables, but in windows these files are all called .exe in Linux/Mac they can be called whatever you want as long as they are marked executable.
I do think most web technology is developed on Linux, but for native applications it does make sense to develop on the platform you are targeting.