Re: Matlab is a closed environment



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
.



Relevant Pages

  • Re: P-value from chi-square value: source code
    ... the accuracy being lost by using good algorithms. ... I do not think an algorithm for a chi-squared distribution ... TOMS708 and its code for the cdf of the gamma ... Anyone looking for source code for the gamma distribution should watch ...
    (sci.stat.math)
  • Re: GPL vs non-GPL device drivers
    ... shipped the source code of the modified POP server. ... given you the compiler he compiled it with, ... Actually, if memory serves, when you license a work under the GPL, part of the ... a derivative work" the claim is invalid - because, as it has been shown, a ...
    (Linux-Kernel)
  • Re: more compiler switches
    ... Also print the version number of the compiler ... driver program and of the preprocessor and the compiler proper. ... C source code which should not be preprocessed. ... Like -v except the commands are not executed and all command arguments are ...
    (comp.lang.fortran)
  • portable makefiles with f90 modules
    ... What is the current status of designing portable makefiles (on ... unix-like OSs and beyond) in large programming projects with f90 ... I'm assuming in a large project that source code is spread across ... files (or whatever they happen to be called by that compiler). ...
    (comp.lang.fortran)
  • Re: Richard Stallman is responsible for the shrinking economy
    ... there are still _some_ reasons and I've experienced them. ... Having access to the source code is an insurance policy. ... the then-fastest/best c compiler was used (Lattice c) ... compiler was used. ...
    (comp.arch.embedded)