Customisation and screening what your running is the reason you have source code. I could, for example, grab the vanilla emule source code, cram in some features from the emule boards, do a bit of tweaking of the visualisation features i want, compile and then run a custom version of emule that does exactly what i want, without the useless bloat that is clocking up with every release. GeoShell is open source so if i was that way inclined piss around with it and add some junk.
M$ and the like claim opensource is more insecure but this is a total crock, open/closed source status doesn't mean jack shit, its the quality of the program that matters. The only trends where bugs are concerned is that open source software normally gets all the bugs reported off the bat, whereas more and more bugs get revealed and can be much more damaging later down the line with closed source.
Reason stuff is opensource --> features, features, features. Many people working on the source means more patches. fixes and features. Reassurance/credit is another reason. Much more reassuring for people to see the source and people can get shit loads of credit for programs they distribute for free
Downside --> arseholes can exploit the source (emule leech mods for example), these extra eyes are all hobbiests anyways, not necessarily people who are going to play nice or even bother to report bugs.
Reason stuff is closedsource --> money
downside --> windows> bugs go unfixed, often unomptimised solutions.
Eitherway, opensource just means that it can be better for people that have lots and lots of time to do shit or live with tinfoil wrapped round there head in their mum's basement and need to read each line of code in the linux kernal
To compile you of course need... a compiler
ie. you need g/g++ to compile c/c++ (*cough* emule), python for... well..python, javac/jikes for java, etc.
@wargand don't be a door knob you bloody penguin