Recently, I was at a site
where I could download a bizarre programming language
. It is certainly designed to be a Unix
programming language, because of the way it links to things like GTK
They seemed to be suffering from the same delusion many software projects have, which is that Linux users enjoy compiling stuff. Especially if the compile doesn't work and they get the thrill of going into the Makefile or even the source code to figure out what's wrong.
The site released their code in two forms: source code for Unix, or a binary for NT. And the Unix code didn't compile.
Now, I'm a Linux user, and I've used it for a year or so, so I know my way around pretty well. But I don't know much C or C++. Thus, I consider it to be nice when, if someone is releasing an important piece of code, they let it compile, especially on a system that has barely been changed from a plain Mandrake distribution.
The idea behind releasing source code to the end user is that it's supposed to work on a wider range of systems than a binary would. It's time to wake up. It doesn't. Because of all the assumptions it makes while it's compiling, the vast majority of source code is even more platform-dependent than the binary.
Now, I know what you want to tell me. "FordPrefect, if this software's in a development stage where they only release source, then you shouldn't be running it unless you're able to compile it and help develop it anyway." Here's the thing. The code in this example, Pike, is a programming language that I've seen quite a few things written in. They depend on you having this language installed. If Pike is not intended for end users to run, who's it for? Pike developers making stuff for other Pike developers? They gripe about how their language isn't being accepted as widely as it should be, so why the heck don't they release a binary - an rpm, maybe a deb; heck, give the Slackware people a tgz - for the end users that they intend to have?
Source code is great for developers. For everyone else, get your act together and release a binary package.