Thanks all for your responses. Perhaps if I describe our specific problems which I'm trying to solve, my needs will be clearer. The problem is that at work we currently do a lot of copy-paste programming. That is, when performing an analysis, we often remember or are informed "oh, someone did something like that a few (months/years) ago, check out this code". Or multiple people, performing very similar tasks in parallel or series (e.g. after handover), re-write the same formats and data pipelines over and over again, because there's not a mature culture of code re-use. General-purpose utilities would be very beneficial due to the routine nature of much of our analyses, but are almost completely absent. It's very inefficient. We could benefit immensely from libraries of common formats, functions, macros, concordance datasets, and so on, but nobody has made the effort to develop this. Partly this is because SAS lacks a formal packaging system which would provide a helpful framework for developing and using such a library. That's the utilities side of things. But fitting analysis projects themselves into a package framework also has its advantages. Currently we have no standards around project structure, so each analyst's codebase is very idiosyncratic, which makes things harder to find and understand. The basic logic of the analysis scripts is hard to follow because everything is defined in-line and ad hoc, rather than having macros defined in a macros/ directory, formats defined in a formats/ directory, and so on. We also often have problems with irreproducible environmental configurations, since people also do this manually. I've been working on a configuration routine which runs automatically on package loading, which would go some way to resolve this problem. The only reason I asked about what features are included in a minimal SAS license is that I wished such a packaging system to be usable by as many people as possible. In fact at work we have rather an inclusive licensing arrangement including SAS/IML and many others.
... View more