Re: Mathematica daily WTF
- To: mathgroup at smc.vnet.net
- Subject: [mg115132] Re: Mathematica daily WTF
- From: Richard Fateman <fateman at cs.berkeley.edu>
- Date: Sat, 1 Jan 2011 04:26:07 -0500 (EST)
- References: <ifj6n0$594$1@smc.vnet.net>
On 12/30/2010 4:04 PM, Andrzej Kozlowski wrote: > On 29 Dec 2010, at 11:55, Richard Fateman wrote: > >> When common programming terms are used in a different >> manner, it sows the seeds of misunderstanding. So many errors. I wonder why your mail system does not interact properly with my mail system? Your message has one long line, that my mailer refuses to deal with, so I have to insert newline characters. my notes are prefixed with --- > > Actually, it works both ways. No doubt for people with a "deeper" understanding of other languages who tend to assume that they are dealing with something familiar when in fact they are not, this could be a source of misunderstanding and as such a "bad thing". But for most "unsophisticated" users (whose cause you often claim to champion here) the situation is usually the opposite to this ; this sort of superficial resemblance helps them to use Mathematica without the need for an extensive study and is therefore a "very good thing". --- you mean like ArcTan[x,y] resembling atan2(y,x) --- except the familiar order of arguments is reversed? --- I think this is a unalloyed bad thing. --- Wouldn't it be better to minimize gratuitous oddities? --- It is not as though reversing the arguments to, say --- ArcTan, Append, etc is beneficial. In fact, this is closely related to an aspect of the Mathematica programming language for which you have explicitly expressed a dislike (in a private exchange with me): the fact that it contains all these "procedural" constructs like loops etc. --- I do not hold this view, and I wonder how you came to believe --- I hold this view. While this certainly would be offensive to the aesthetics of a pure functional language like Lisp (or better Scheme), --- Lisp is certainly not a pure functional language. In fact it has --- a construct called loop. Scheme is not a pure functional language --- either. It supports imperative state-based programming. it actually is one of the main reasons for the success of Mathematica. --- I truly doubt that. After all, Mathematica was hardly the first --- programming language, or computer algebra system with procedures --- or loops. I remember someone telling me that the lack of such constructs was the principal reason for the (relative) failure of SMP (I don't know if this is true, I have never used SMP and don't know anything about it). --- that is evident. Speculating on the reasons for failure of SMP --- is probably not appropriate for this newsgroup. While Mathematica's procedural programming is usually unattractive and often inefficient, --- Huh? I don't understand why you think M's procedural --- programming is (especially?) unattractive. Or inefficient. --- Perhaps you mean its implementation is inefficient? This --- has to do with the difficulty of compiling it, so it --- is partly a language issue. It could be partly overcome --- by adding (optional) type declarations as in lisp. there are plenty of users who will not use anything else (including one user who frequently takes similar positions to yours on various Mathematica related issues) and would not even consider a alternative program that used Lisp for programming - just for that very reason. --- Lisp supports essentially any --- programming "paradigm" that anyone has come up with, --- functional, state-based, rule-based, object-oriented, --- constraint-based, graphical, etc. --- I assume the person referred to above, talking about Lisp --- does not know that much about Lisp. > > What I referred to as a matter of "convenient syntax" is actually a quite crucial issue, for most people easily overriding in importance anything else mentioned in this thread. --- Huh? You said M's programming is unattractive. Are you --- saying that Function[{x},N[x^x]] just will not do, and --- users crucially need the convenient syntax (#^#//N)& instead? --- Happy New year --- RJF