On 6/7/2013 10:25 AM, Steven_Lord wrote:
>
>
> "Nasser M. Abbasi" <nma@12000.org> wrote in message
> news:kor55k$p71$1@speranza.aioe.org...
>> On 6/6/2013 5:38 PM, dpb wrote:
>>
>>>
>>> Well, you're a little harsh in judgment given the difference in time
>>> between the incipient development of Matlab vis a vis Mathematica.
>>> There's at least 10 yr difference in things that look remotely like the
>>> present versions, but the seeds for Matlab were being planted probably
>>> 20 yr before that.
>>>
>>> Expecting prescience in such minutiae given the early roots of Matlab is
>>> simply asking too much for the times and computing of the day...
>>>
>>
>> I am not a computer language historian, but a quick googling
>> shows original of Mathematica around 1980:
>>
>> http://www.wolfram.com/company/scrapbook/#preWRI_SMPManual
>>
>> "December 1980: The ancestor of Mathematica takes shape...
>> The first draft documentation for Wolfram's SMP system..."
>>
>> "Sept. 1986: The first days of Mathematica design."
>>
>> and
>>
>> http://www.mathworks.com/company/newsletters/articles/theoriginsofmatlab.html
>>
>>
>> says
>>
>> "In the late 1970s, following Wirth’s methodology, I
>> used Fortran and portions of LINPACK and EISPACK to
>> develop the first version of MATLAB. "
>>
>> Also, as you know, there was a complete rewrite of Matlab
>> in C in 1981:
>>
>> "When IBM announced their first PC in August, 1981, Jack
>> quickly anticipated the possibility of using MATLAB and
>> the PC for technical computing. He and colleague Steve
>> Bangert reprogrammed MATLAB in C and added Mfiles,
>> toolboxes, and more powerful graphics."
>>
>> So, they are in the same time frame, may be 35 years
>> or so if you prefer. Is that such a huge laps of time?
>
> In software development? It can be. Five years ago was 2008, and there
> have been many changes to MATLAB (and our other products) since then.
>
> The rest of the statements in this post hypothesizing about the design
> decisions made when I was ... well, MUCH younger are just that: my
> guesses about what happened back then.
>
> My guess is that one of the requirements of the rewrite was to try to
> break as few of the programs that Cleve had written as possible. If you
> look earlier in the article you cited, Cleve's programs used functions
> named ones, svd, atan, sin, and plot. I suspect Cleve would have
> complained (I can almost hear it in my mind's ear) if Jack and Steve had
> tried to convince him to use Svd or Sin instead of svd and sin.
>
>> But that is not here or there. The idea of reserved
>> commands and functions has been known for much longer
>> before that. another quick googling shows for example
>> that smalltalk80 has reserved words
>>
>> http://en.wikipedia.org/wiki/Smalltalk
>>
>> "In fact, only six "keywords" are reserved in
>> Smalltalk: true, false, nil, self, super, and thisContext"
>>
>> Appeared in 1972 (development began in 1969)
>
> MATLAB does have reserved words. The list is smaller than most people
> think, though.
>
> http://www.mathworks.com/help/matlab/ref/iskeyword.html
>
> You can't create your own function named FOR, for example, and expect it
> to be called. [Like most rules this has an exception, and that is END;
> you can overload END for a class, but that's because END is used in two
> very different ways in MATLAB: to end loop/conditional/control flow
> blocks and to refer to the final index in a particular dimension or
> dimensions in an indexing expression. The overloaded END method is used
> for the latter.]
>
>> I am sure if I search more, will find languages that
>> had the concept of reserved words and commands in
>> themeven before that. This idea is not rocket science
>> really, folks 30 years ago should have known about
>> it :)
>
> I haven't used the first versions of MATLAB, but I suspect they did.
> Their choice of what should be reserved and what should not was different.
There are those who argue that reserved words is _a_bad_thing_ (r).
Fortran, for example has no reserved words; everything is interpreted in
context. There are KEYWORDS that have specific meanings but they are
contextsensitive, not reserved.
So something like the following is legal(+) (albeit certainly unwise) in
Fortran
if(if==then) if=if*then
where the first use of the word IF refers to the keyword for a selection
control structure, while the other uses refer to a variable named IF;
likewise, THEN is used in the context of a variable in this statement.
Of course, the difference is that in Fortran, the assignment/use of
IF/THEN as variables doesn't overload an operator so that one can still
write IF constructs that behave as expected.
There are tradeoffs as always; Nasser seems to tend to have very little
breadth in visionit's "his way or the highway" and facts and/or
historical antecedents don't have any role in Mondaymorning quarterbacking.
(+) There have been some Fortran compilers in the past at least for
which the example fails because the vendor took the cheap way out in
implementation and did implement parsing by making at least some
keywords reserved. This means when one ran into a problem such as the
above, it was the compiler which was broken, not the code. Again,
"legal" doesn't imply "wise".

