Skip to content

On the Use of Packages

Paul Mansour edited this page Jan 2, 2020 · 2 revisions

Packages should not be taken lightly, and everything possible should be done to minimize the use of packages.

The first question should not be "is there a package out there that does what I need to do?" But rather "does what I need to do really justify the use of a package?" No package is worth a couple of hours of work. A package may not even be worth a month or two of work.

The second question should be, do I really need to include the package in my project, or can I get by just cutting and pasting a couple of functions? If you need a few functions from the Dfns package, it is much better to simply add them directly to your own project rather than to formally include the entire Dfns package.

The third question should be, does this package depend on other packages? If so, which ones and why? Has the package author asked himself these very same questions?

Finally, is this package well documented? Maintained?

APL is a powerful language. The Dyalog interpreter is a particularly powerful implementation of APL with a massive amount of tooling built-in. Do not add packages to your project indiscriminately and with no concern for dependencies of dependencies.