Paraphrasing Mark: One thing I wondered: do you (i.e., MathWorks) have opinions on how best to make open-source submissions and get collaborative projects going--a bit like SourceForge or Google Code for use in the MATLAB environment? I’ve often wondered why the FEX doesn’t support this model. A number of times, I’ve extended the functionality of something I’ve downloaded from here, often addressing what I think is a common use-case, but have no way of giving this back to the community without posting whole new submission. Likewise, I’ve not submitted an early stage project because it’s not quite there but also feeling that I’m developing something that a wider community might really latch on to and help take forwards.
Mark, this is not an "official" answer; I'm not sure that there is an official answer. But I have some thoughts on these topics, and I thought I would share them, and invite anyone who cares to, to chime in with their own musings.
First, regarding the use of the File Exchange for collaborative coding, I will mention that there was a bit of talk a few years back about possibly moving in that direction, but we decided, at least for the time being, that that wasn't the direction we wanted to take the File Exchange. Most users are content to share their files as is, and aren't necessarily looking for a framework for collaboration. (That said, there are sites--like sourceforge itself-- where users can share their MATLAB code for community development. For example, search sourceforge.net for keyword "MATLAB.")
Your second point--about extending functionality of File Exchange submissions--strikes a chord with me. For the most part, we really like to see submissions offered under the BSD license agreement. This is a fairly permissive license, so you're largely free to modify files as you see fit. (Read the license--you'll have to keep the copyright in place, but you can redistribute with or without modification.) Still, I think that you should recognize that a lot of contributors worked hard on their submissions, and shared them freely and generously with the MATLAB community. Many contributors expressly ask for feedback, and are very responsive to enhancement requests and bug reports.
I shared one of my own files (MorphTool) even though I know it is a work in progress, and that it has some holes in its functionality. Even in its current state, I find it very useful, and think that others will, too. I continue to work on it as time permits, and will continue to post updates as I implement them. In the meantime, I've expressly asked for feedback and suggestions--and am always pleased to receive them. I'd be less pleased if someone changed the color of my background (so to speak) and posted as their own a "new, improved MorphTool."
My personal feeling is that you should "do the right thing" when considering tweaks to someone else's code. While you may simply modify someone else's code and post it as your own, the original author may appreciate being given the opportunity to make the enhancements him/herself. Use your best judgement, and be courteous. And always cite submissions that inspired your own work.
If there's to be a dialog about these topics, this is a great place for it to unfold!
Get the MATLAB code
Published with MATLAB® 7.14