Re: Matlab is a closed environment
- From: Rune Allnor <allnor@xxxxxxxxxxxx>
- Date: Mon, 29 Dec 2008 09:34:06 -0800 (PST)
On 29 Des, 13:51, Steve Eddins <Steve.Edd...@xxxxxxxxxxxxx> wrote:
Bob wrote:....
[snip]
Even if you are an academic, some researchers want their code to be
open and reproducible. After all, that is the purpose of all
publications, to show others what you did and how you did it so they
can reproduce it and see for themselves. As the OP noted, you cannot
reproduce a black box no matter how satisfied YOU are with it.
Much of my work at MathWorks has been to implement image processing
algorithms from descriptions in the literature, so I quite agree with
you about the lack of reproducibility of many references.
I generally try not to get drawn into discussions of the relative merits
of different working environments and languages, because I think it's
really up to the user to make that kind of assessment. However, I can't
resist challenging your hypothetical question and its 200-year time
horizon. From what I have seen in my comparatively brief quarter
century of programming computers, I would guess that 200 years from now
you'd have a hard time reproducing results using any source code written
today, no matter what the language or environment. Also, almost
everyone relies on library routines without having access to source
code. Can you get the source code for your C++ compiler vendor's
implementation of rand?
These are several questions:
1) The quality of pulished literature on algorithms
2) The availability of source code
3) The usefulness of available source code
To start with the latter, C++ is a standardized language in the sense
that there exists a governing document that specifies what type of
program behaviour a complying C++ compiler will produce in response
to source code. The user doesn't need access to the source for the
C++ compiler, but only to *a* standard-comlying C++ compiler. It's
up to the compiler vendor to ensure that the compilers comly to
the standard. It is also in the vendor's commercial interest
to make sure that their products do comply to the standards, as
this is what C++ users expet from their compilers.
Ideally, a standard-complying C++ compiler will produce the same
output to standard-complying code in 200 years as it does today.
As for publishing algorithms in terms of source code, this is
a big problem. In my experience, this is one of *the* hurdles
of teaching and learning algorithms. First of all - what langage
to choose? One can make a case for either choise, and one will
get fierce opposition no matter. In my field of work there has
been a tradition to publish fortran code. Now, decoding fortran
code of 40 or 50 years ago takes about as long as it would take
to derive the algorithms from scratch. The programs were designed
under different constraints than today, and the programming
style was different. Not to mention the practical impact of
implicit data typing and maximum 6 character variable names.
Which brings me to the conclusion: The published literature
should contain algorithm pseudo code. Not matlab, fortran
or any other source code.
In an ideal world, the programmer takes the article, gets
'under the hood' of the pseudo code and implements it in
the language of his own choise. Of course, this world is far
from ideal, so it is far from likely that this state of
affairs will ever materialize.
Rune
.
- References:
- Matlab is a closed environment
- From: Bob
- Re: Matlab is a closed environment
- From: Steve Eddins
- Matlab is a closed environment
- Prev by Date: Re: Formatting Time in Column
- Next by Date: Re: How to get a inversion of lagre symmetric matrix?
- Previous by thread: Re: Matlab is a closed environment
- Next by thread: matlab virgin! stuck
- Index(es):
Relevant Pages
|