XML, why Mma is popular, was...Re: [Maxima] Lunch with George Carrette



The initial success of Mathematica was, I think, largely nontechnical
in nature. Note that the first version was significantly inferior
to existing programs, and it has taken a number of major upgrades
to become what it is today.  Mathematica 1.0 was quite flakey.

Why did it become such a quick success?

The appearance of personal computers (the new Mac) and that
Steve Job's workstation "NeXT" needed flashy software. Wolfram
made his system flashy by making good use of Postscript display.
Even though in reality it was poor (static, could not be rotated)
it LOOKED GREAT in advertising.
Wolfram's egocentricity was viewed as a sign of genius by
scientifically unqualified people. They then concluded his
program was a work of genius.
Physicists, most of them quite ignorant of CAS, praised Mathematica
as though it were the only CAS, not just another one.

Were there technical innovations? A better front-end with
graphics was important. Attractive packaging and documentation.

The internal data structuring was not a key, since few people
know about it, and some of it is even secret.
The language, especially the initial semantically confused
language, does not seem to me to have contributed much to
its success, even though Wolfram seemed to think that the
language was innovative (etc). It has its nice parts, but
taken as a whole, it is not conducive to large-scale systems
construction.

I doubt that the unity of lists and arrays and vectors was
a key. There were some bitter complaints, in fact, that Mathematica
confused row and column vectors.  And other programs (including
Macsyma) use lists; matrices are lists of lists.

The key lesson of Mathematica's success is, I think, disturbing.
That is, marketing and glitz was more important than efficient,
reliable and comprehensive mathematical computation. Technical
achievement was not critical since most came years later.

Regarding XML:  it is simply inadequate to convey mathematics
between two programs intending to compute with it, rather
than just display it.

There must
be another (separate) "contract" between each program and XML.
Mathematica has ArcTan where macsyma has atan.
Mathematica reverses the arguments to some functions e.g. atan2.

So far as I can tell, no program to date uses XML to convey
mathematical semantics except by using an internal comment that
essentially embeds in it the "real meaning"  as, say, a
character string in the syntax of Maple or Mathematica or MuPad ...,
and XML is largely superfluous except for its partial information
to assist in a display on a browser with a variable line-width.

 I would be interested, in finding a serious counterexample
to the statement above.

A small program can, I think, parse XML into a lisp form
(and expand it back to XML). In the lisp form it is probably
10 times smaller.  The reason for XML being large is that
it fits into a schema for verbose markup languages, which
is hardly an incentive to use it to communicate between two
math programs.  I would not especially mind it being verbose,
but it doesn't seem to provide a satisfactory solution to the task
at hand, at least as far as I can see.

RJF


Michael Reimpell wrote:

>>George believes that one of the reasons for mathematica's success is
>>that large
>>parts of mathematica are written in mathematica.
>>    
>>
>
>I believe Mathematicas success lies in its concept to emphasise lists as its 
>basic data structure, e.g. there is no distinction between an array and a 
>matrix and you can easily combine any list dimensions together. Its a simple 
>all-purpose concept anyone can easily adapt to.
>
>  
>
>>How programming styles have changed over the last 20 years.
>>For example GUI generators that were successful in the late 8
>>    
>>
>
>We may remind ourself why the development of open source software is 
>effective: There is a strong separation of functionality and user interface. 
>Usually the (command line) tools are developed by a totally different group 
>of people. Therefore, whats really needed is a mature very well documented 
>API to a CAS kernel. Communication should at no time be nonspecific about the 
>meaning of things or the state of the communication partner. I would 
>appreciate, if maxima is seen as a controller for documents (notebooks) and 
>does not add insult to injury by trying to give views to these documents. Of 
>course we should give away a simple proof of concept interface (as xmaxima) 
>with the package.
>
>Although I know Mr. Fateman doesn't like the idea of a verbose format, I once 
>again suggest using XML: The DTDs are a strong specification of the language 
>and human readability speeds up the development process (think of error 
>checking, unit tests, refactoring).
>
>Kind regards,
>	Michael
>
>
>_______________________________________________
>Maxima mailing list
>Maxima@www.math.utexas.edu
>http://www.math.utexas.edu/mailman/listinfo/maxima
>  
>