I've been known to decry the use of databases for certain applications. In this meditation I am going to go against that reputation by advocating their use.
Currently, each package on CPAN is an indepentant entity. Whilst this has some advantages, it also results in a huge amount of duplication with respect to all the support scripts and ancillary files.
Each package is charged with providing a makefile generation script that in turn has to 'discover' the environment into which it is being installed and generate an appropriate makefile for that environment.
As most developers do most of their development on one (or maybe two) OS, it becomes the responsibility of of modules like ExeUtils::MakeMaker, Module::Build etc. to produce highly ambidextrous makefiles. The result it that every make file is hugely complicated, supporting those modules requires the skills of a very rare breed of developer who has access and knowledge of multiple OSs. My thought is that when Perl6 is installed, a generic module makefile could be generated for the installation. From that point on, the process of intalling new modules would be:
This would allow for versioning, transactional control (rollback), backups, etc. Basically, all of the good things that databases provide. It would also vastly reduce the size of the mirrors by removing the need for all the duplications that currently exist. I could even imagine the day when individual installations could register with their local mirror for update replications etc.
As programmers, we tend to see the benefits of using databases for the storage of all manner of data. Why not our own, in the form of source code?
Janitored by Arunbear - retitled from 'A notion for the weekend.', as per Monastery guidelines
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |