The new features of the set functions are powerful and useful. I can add a 'last' flag to all of the unique commands in my code, if the old ordering scheme is required. And I can reshape the output manually to have the former row shape.
The only problem I have is, that I'm supporting a Matlab program with some hundred thousands code lines and I have to check more than 1500 occurences of these commands in my code. Either I analyse the surrounding code to see, if it adjustments are required, or I add the 'last' flag and an extra-line for the reshaping in general. Both solutions consume a remarkable amount of time, and both will set the status of the source code to not tested.
Therefore this change will mean for me:
- About 1500 minutes (25 hours) to check the code - one minute per occurence is a fair estimation, because some commands will use the first output only, while others will be more complicated.
- About 30 hours to run the unit-tests for the tool functions, compare their log files and some automated integration tests for the main functions.
- I have to create and deliver a new release, which is compatible with the new features. The documentation needs a small number of updates in consequence.
- The labs, which use this software, have to run the updated version for about two weeks in parallel to the old version to compare the results.
I see a general conflict between using or publishing large Matlab programs and upgrading the Matlab release. Distributing compiled programs is not an option, because the software is used for scientific projects and the ability to see and modify the source is important. The avoidance of the updating is not a sufficient option also, because existing bugs are usually fixed in newer releases only - e.g. the problems of audioplayer in 2011b are solved by installing 2012a.
The common appearence of 1. changes in the basic functions and 2. the bugfix by upgrade strategy is a very strong drawback, when large Matlab programs are used in scientific projects. What a pitty.