The Wolfram Function Repository is a great addition to the Wolfram Language ecology. It would be even better, however, if a system could be developed for collaboration. This post urges Wolfram (or particularly skilled Community members) to develop such a system.
The use case is as follows. Many users, I suspect, have desired additions to the Wolfram Language or Wolfram ecology. The desired additions may be too specialized to go into the language core, but they would still be quite useful. I'd like to see some functionality added for non-cooperative game theory, for example, or some added functional constructs like FoldListIndexed. Each member of the community might, given time, be able to write some of the desired functions themselves, be able to contribute ideas to their construction, or really have no clue how to write them. Unless there is collaboration, however, fewer functions than optimal will be written and some functions may suffer from sub-optimal implementation. Moreover, the absence of a system leaves the comparative demand for various additions somewhat unclear.
Of course, a lot of development can be done (and is being done) on an ad hoc basis by some combination of Community posts, messages and emails. Some additional structure, I suggest, could augment those efforts. So, it would be useful to create some mechanism (Wolfram Collaborations?) whereby users could post needs with as much specificity as possible and indicate those components of the project (including the empty set!) on which they believe they could help. Collaborators could then sign up to assist and, once a critical mass existed, use existing tools (Chat, WolframCloud) or forthcoming ones (Streaming notebooks) to work together. I'm not sure exactly what the optimal mechanism would be, but I think Wolfram could be a good host. (Maybe there's already a tool somewhere in the computer science space that accomplishes these goals?) This mechanism will not solve issues of collaboration among previous strangers, but it will at least potentiate successful work. Wolfram Research developers work extremely hard, but they can't do everything and it would be great if the incredibly talented and growing user base could contribute collaboratively to the external development platforms created over the past few years.
Also, although I am initially conceptualizing this project as involving ResourceFunctions, I could see it readily being extended to Data Repository items, Neural Network repository items, Demonstrations, Packages, and Paclets, or even FrontEnd enhancements such as Palettes.
What do Community members think?
P.S. Yes, I know there is a mechanism for post hoc suggestions regarding published Resource Functions. That's fine, but it is not a substitute for collaborative development.
I think its a great idea! :)
Interesting idea Seth! Will keep an eye out :-)