Immediate plans for Octave include the release of a new “stable” version that I will maintain to fix serious bugs only. If people are interested in having some form of Octave continue along its previous development path, they will need to organize that effort—my focus is now on future directions. Although I will not be working much with Octave as it is currently implemented, the future may involve a derivative of Octave. If the problems described in Section 3 are fixed in the ways that I have proposed, I believe Octave will provide a muchimproved language. It will remain similar to Matlab, but incompatible. It will be easy for users of one language to understand the other, but, in most cases, difficult to share code between the two systems. If these changes are made, I can see significant advantages and disadvantages. On the positive side, we will have a more consistent language and an interpreter that is easier to maintain, and there will be less effort wasted on the implementation of poorly designed features just to have compatibility. Some possible disadvantages are that people will generally have to choose one system or the other, we lose some users who see compatibility as an absolute must, and we invent yet another scripting language. Another possibility for the future is to leave the Octave language alone and focusing on additional features (sparse matrices, parallelism, etc.) while fending off the requests for additional Matlab compatibility. But as long as Octave is generally compatible, users are likely to continue to want more, and I would prefer
a clean break from this problem. If it is undesirable to invent yet another scripting language, then perhaps it would be best to simply choose another general purpose scripting language that
already exists and add the numerical features from Octave to it. I was asked about a merger of this type for Octave and Python, but as I examined Python more closely, I decided that it did not seem to be well-suited for numerical computing (though many seem to be using it for that purpose anyway). Other popular scripting languages have similar problems.
At this point, I’m leaning more toward a streamlined Octave built on top of
some faster general-purpose scripting language such as Guile, the GNU project’s
embeddable Scheme interpreter. This would preserve the syntax of Octave (which
seems to be reasonably good for expressing numerical algorithms) and allow access
to the capabilities of the more general purpose language. Reasons for choosing Guile
are that it is intended to be used as an embedded interpreter, and it should not be
too difficult to translate Octave to Scheme.