On 2/27/13 at 11:43 PM, email@example.com (Richard Fateman) wrote:
>On 2/27/2013 12:04 AM, Bill Rowe wrote:
>>Easier to learn?
>I'm not even arguing that. I'm saying that EF as it exists is hard >to understand, and that there are other languages that are easier.
Yes, I would agree there is significant effort required to become proficient with Mathematica and there are other languages that are easier to learn.
>Understanding one of them (e.g. Lisp) may be sufficiently easier, >and would have sufficient "overlap" that learning Lisp might make >using EF easier. I think that was the gist of the original >question.
Yes, that was the gist of the original question. And Lisp might be easier to learn. But Mathematica isn't Lisp. Possibly learning Lisp first might make it easier to learn Mathematica. Another real possibility learning LIsp would make it more difficult to learn Mathematica. Expecting Mathematica to behave like Lisp could cause quite a bit of problem which would be avoided if you didn't have a Lisp background.
>>Or are you suggesting one should not have to spend time with >>Mathematica to be come reasonably proficient?
>I think that becoming proficient in the use of EF requires more time >than would ordinarily be expected for using a system occupying a >similar technological niche. Or said another way, the EF language >is harder than necessary to learn.
Possibly Mathematica is harder than necessary to learn. I don't have any real way to evaluate whether that is true or not.
>>Consider some one who has some math background and whose >>programming experience is Fortran. If they then needed to move to C >>or C++, wouldn't pointers be rather mysterious indefinitely if they >>didn't spend effort to study C or C++?
>Pointers can be fairly easily explained by analogy with array >indexes into memory. The subtleties of course can be subtle, but I >don't think they would be mysterious indefinitely.
>>Why should it be different for Mathematica?
>EF is quite different. It uses pattern and matching and is rule >based. It has stuff like Hold and friends. Something I haven't >mentioned recently, I think... It has peculiar precedence and >unusual symbols and peculiar lexical rules. Like the difference >between (3+x)/.3->4 and (3+x)/. 3->4 and 3+x/.3->4 etc.
I agree Mathematica is different in a great many ways. And I can see how someone experienced in say C or another language would see Mathematica as strange and unusual. But I really don't see the problem of understanding Mathematica symbols, precedence etc. as being any different than learning pointers are other aspects of C. It is simply a matter of study and using Mathematica just as it is a case of study and using C to learn pointers etc.