October 15, 2008

Distributing programs correctly

One of the things I like in Chicken scheme is one of the cleanest distribution model I ever seen. For some it will look, at first, very ordinary or they will not notice it at all (at best) but... shouldn't The Right Way be the program installation without noticing that procedure at all?

I never was a fond of distributing own binaries (except a distro specific packages) on Linux; you never know what the person who downloads it has. Does it have correct glibc or stdc++ or whatever libraries you are using? Just bump the source archive and let configure do the magic.

But in Chicken case, things are different. You simply download the binary and extract it in / directory.

Later, you find out you are missing the big integer support (not enabled by default), simply telling " chicken-setup numbers" in command line and " (use numbers)" at the beggining of the program will brings them.

And at the end, you want to compile your code, " csc yourfile.scm" will do it.

Now, can things be more simple than that? You should not be worried will Chicken's binary works on your Linux distro nor what are the eggs, nor how " chicken-setup" resolves egg dependencies, finds and downloads them and at the end, compiles and installs them. Nor how " csc" calls gcc at the background to perform final translation of generated C code to the binary.

Everything works.

Now, when the big names or the big programs will have the similar thing with the same (or at least similar) easiness?
Tags: programming