Talk:Wolfram Mathematica/Archive 1

From Wikipedia, the free encyclopedia
Jump to: navigation, search

Should there be code examples?

There is a discussion below on this topic, but it seems to have got lost in the discussions of disputes and tones of the article. It would seem more sensible to have this under a topic of its own.

Personally, I can't see how one could describe Mathematica without some references to examples of code. Likewise, I don't think an encylopedia should be a tutorial on the language. My thoughts on the most appropiate could would be

  • A few examples where the meaning should be obvious to anyone. One example, which I put myself showing the command line version, was Solve[x^2 + 2 x - 9 == 0, x]. I may be wrong, but I think the meaning of something like that should be obvious. A few more like that. The very first example currently (Det[Array[Times, {6, 6}]]) is hard to understand. I find it hard to believe that is the best example anyone can come up with.
  • An example showing some obscure constructs (pure functions, Map, and anything else that helps create spagetti code), that would be difficult to read. Make a note that Mathematica can be used to write concise code, but which is not always too easy to understand unless you know the langauge well.
  • A few examples illustrating different programming styles. I think I have seen a program to compute fractorial in 4 or so very different styles. By doing this, one kill two birds with one stone as we - illustate different programming styles and show code examples. (The kill two birds with one stone is an expression used in England - it is not mean to be taken literally!

I would think a total of about 6-10 examples should be about right. Sufficient to show the program, but not enough to make it a tutorial on the language. If someone feels a need to have many examples, then sure make a wikibook or similar. I would question the need for this, given there are a number of text books on the Mathematica language available. But there may not be any decent free resources - I don't know.

Anyway, that is my take on the issue of code examples. —Preceding unsigned comment added by Drkirkby (talkcontribs) 19:08, 3 November 2007 (UTC)

How about an explanation of M expressions in relation to S expressions, how expressions form a tree structure, and why they rarely look that way in practice due to the behavior of the front end. Maybe something like this could go in the common structures and manipulations section: ChrisChiasson 23:29, 3 November 2007 (UTC)

candidate common structures section example

Sometimes Mathematica expressions are called M-expressions, to indicate the practice of placing the head in front of the bracket. Compare that to S-expressions in Lisp, which use parenthesis instead of brackets and place the head inside with the arguments. Heads and arguments do not have to be atomic; they can also have sub-parts. For example, this is a valid expression in which the second argument is non-atomic:


This expression may be thought of as a tree with five leaves and three top level nodes (one of which has three sub-nodes that are also leaves):

  • Integrate
  • Power[x,n] (actually just a pointer to its sub-nodes)
    • Power
    • x
    • n
  • x

While this type of input makes it apparent that the user is dealing with expressions, that is not the case in normal operation of Mathematica, where the input is typeset (or otherwise graphical). To perform the command above, a user might enter the following input into the front end:

Upon evaluation of that input, a command called MakeExpression automatically changes the hidden expression representing the typeset form of the integral into the plain-text expression seen above. To show that typesetting is also represented by expressions, here is the expression representing that typeset integral, which would be called the integral's "box form":


In Mathematica, there are several levels of "pretty printing" for expressions, which are called "forms". FullForm does no pretty printing. InputForm will collapse several operations into an understandable string form, for example 1 + 2 instead of Plus[1,2]. StandardForm is the normal typesetting shown above. There is also a TraditionalForm that is similar to StandardForm that tries to retain certain inconsistencies from standard mathmatics, such as a the ambiguity of parenthesis for function application and for multiplication: e.g. f(2).

The above example covers typesetting, but there are parallel expressions for graphics primitives (and sound?), dialogs, and other objects.

ChrisChiasson 23:29, 3 November 2007 (UTC)

Some feedback: I haven't thought about how it fits with other sections but I am mostly supportive of this version. I was a bit confused about the M-expression, S-expression coverage. It reads as if this is the Mathematica name of the expressions, but looking at the links it sounds like you are drawing an analogy to the Lisp equivalent ideas? The TreeForm explanation might look nicer with a picture (though smaller than this one [1]). Finally, one idea that I think important, that is not conveyed is that because of the common structure, operations that one might think of as being narrow in scope can be used widely (eg the Part function that most people think of as a matrix operation can be applied to math expressions, images, sounds, programs etc, or substitution that most would think of as algebra can be also be applied to data, images, sounds, programs etc). This might be obvious to a Lisp person, but would seem quite strange to a Fortran person. JonMcLoone —Preceding comment was added at 16:17, 5 November 2007 (UTC)
It feels better to be on the same side for a change. So, some people do call Mathematica expressions M-expressions on MathGroup. I dunno if it is accepted usage among the devs. Maybe Daniel L would know. The only issue I take with the graph from TreeForm is that it puts the head above the arguments in the tree, which is a bit misleading. E.g. Part 0 of any expression is the head, part 1 is the first arg, etc... Level {1} of any expression includes the head (Level[zero[one, two], {1}, Heads -> True]), while level {0} is the entire expression. With the way TreeForm draws things, the head would be expected to be one level above its arguments. ChrisChiasson 20:37, 5 November 2007 (UTC)
The fact that I don't know the terms (after 15 years of Mathematica) is probably a bad sign for them! I suspect people are using M-expression really to mean "Mathematica expression". Here we pretty systematically talk about FullForm for the underlying functional expression. I am not sure that there is a consistent umbrella term for non-FullForm. If you not talking about a specific form then perhaps "typeset form" or (more narrowly for StandardForm and TraditionalForm) "box form" or "box data".
Fair enough comment on the TreeForm, I just thought the picture was pretty!
Here is a suggestion for a sentence to convey the "wide application" idea, it could perhaps be more compact. It would replace your last sentance: "As well as representing mathematical expressions using this form Mathematica also uses the same symbolic data structure to represents all objects that it supports including images, documents, sounds, text and numeric data, XML, interfaces and more specialized objects. This allows a single set of programming operations to be applied to all these forms of data. The rendering of images, sound, documents and interfaces to the users specific hardware are analogous to the pretty printing of expressions." JonMcLoone 16:06, 7 November 2007 (UTC)
It looks like you are right about the rarity of the usage of M-expressions; there are only few hits on MathGroup, though I thought I saw more in the last year than are shown in the search results. Also, the (AFAIK) original definition of an M-expression (which stood for meta-expression) is given in the Lisp manual. It appears to have a very close but imperfect correspondence to a Mathematica expression. I wonder if Dr. Stephen W. was influenced by the meta-syntax when he was designing Mathematica. BTW, I wanted to say that a few months ago, I noticed a new feature in C# called expression trees (supposedly driven by the introduction of LINQ) that are a lot like Mathematica expressions. Finally, maybe we should link to homoiconicity and functional programming to show how Mathematica compares to other languages (and concepts in computer programming). ChrisChiasson 17:57, 7 November 2007 (UTC)
We could add "programs (homoiconicity)" to the list of object types in the sentence that I suggested? I think reference to functional programming belongs in whatever we replace the section "Multiple programming paradigms" with. Its pretty surprising that that section makes no reference to any programming paradigms right now! I don't think it is wise to reference directly to Lisp materials as it may give the impression that Mathematica is directly based on Lisp or written in Lisp. JonMcLoone 10:29, 8 November 2007 (UTC)

Dispute Resolution

I feel this article is in violation of WP:NPOV, WP:NOR, WP:AWW, and that some of the editors are violating WP:COI. I am hoping you will offer constructive comments with suggestions for bringing the article in line with Wikipedia policies. Thank you for your valuable time. As this is my first time initiating dispute resolution, please let me know if I do something wrong. Chris Chiasson 08:09, 22 October 2007 (UTC)

It reads like an advertising brochure. No references at all. We certainly don't need programming examples. DMcMPO11AAUK/Talk/Contribs 14:48, 24 October 2007 (UTC)

I'm not sure what the dispute is, since I haven't read all the history, but I took a few small steps toward improving it, and will see if anyone agrees or not. It's hard to help resolve a dispute if nobody says what is disputed. Dicklyon 05:46, 25 October 2007 (UTC)

Every programming language in wikipedia has programming examples. Look at C, Fortran, Pascal, Java etc.
Maybe, but does it really need to show three different ways to do the same thing in the same language? A few examples to demonstrate the unique features of the language are fine, but they don't need to show how many ways this language can solve any given problem. DMcMPO11AAUK/Talk/Contribs 07:02, 27 October 2007 (UTC)
One of the defining things about the Mathematica language has been to try and combine different programming paradigms (Producedural, Functional, Rule based, Object Oriented etc). I think that is a legitimate aim of the examples in the "Multiple programming paradigms" section. Having said that, I don't think that they are the best examples to illustrate that, as the first three are conceptually too similar. I could suggest alternatives, but I suspect that they would not be received well in the current climate! JonMcLoone 11:39, 29 October 2007 (UTC)
Also between the two contributors above all links to the full documentation and technical support knowledge base have been removed. This cannot be an improvement. Wikipedia is never going to attempt to give information on all 3000 functions and all public bug workarounds.
I also fail to understand why a reference to a free external web service is better with the link to that service removed.
JonMcLoone 08:57, 25 October 2007 (UTC)
Dicklyon: part of the problem is with the criticism section (search this talk page) and with the tone of the article (see the next section on this page). ChrisChiasson 10:00, 25 October 2007 (UTC)
JonMcLoone: the Mathematica Wikipedia page is for people to learn about Mathematica. It isn't a handy set of shortcuts for people who forgot various URLs that MMA users might need. More importantly, the people that wrote the function reference practically broke their arms patting themselves on the back for what the software can do, so it isn't really something I would point others to for objective information about MMA. Besides, the link to the home page should be enough - you guys control that page and can link from there to wherever else you want.
There are (were?) a lot of code examples. Perhaps many of them should be moved to the Mathematica page on Also, some of the content from the wiki could find a nice home there as well.
ChrisChiasson 10:00, 25 October 2007 (UTC)
Surely almost nothing is more relevant to learning about what a technical product does than its definitive documentation? How is this page going to cover specifics like, say, whether Mathematica supports the HypergeometicPFQ function? Nowhere lists that better than [the documentation page for that function] and I see nothing inappropriate about that page. JonMcLoone 12:51, 25 October 2007 (UTC)
Yes, it makes perfect sense to say that such a list exists, and to reference it. But it should certainly not be in the lead, and it should be as a reference, not an embedded external link. You want me to fix it, or will you? Dicklyon 15:18, 25 October 2007 (UTC)
I added as a reference to the "Several thousand functions" statement in "Features" —Preceding unsigned comment added by JonMcLoone (talkcontribs) 16:01, 25 October 2007 (UTC)
Jon, I just noticed that you're a Wolfram representative. As such, it is quite inappropriate for you to be doing any controversial edits on this article, or placing any links to sites that you have an interest in. Let me know if you need pointers to refresh yourself on relevant policies. You can of course feel free to correct errors, or to offer opinions here on the talk page. Dicklyon 22:14, 26 October 2007 (UTC)
I am aware of the COI policies and beleive that I am following them with mainspace edits focused on factual correction in line with Defending Interest, non-controversial edits or with a fully articulated argument in Talk in line with the guidance on Handling conflicts of interest. I would be happy to listen to reasonable guidance on doing this better.
In particular, to clarify my relationship to the current discussion: NONE of the examples being given as poor Tone were created by me or have at any time been edited by me, and I have no intention of even suggesting alternatives for those. The programming examples that I am defending are not mine, and have never been edited by me. The link to documentation that I am defending was not placed there by me.
I should also add in the interests of balance that all of the participants in the discussion of Tone have their own connection with the page content. DrKirkby being the creator of the WITM package whose description lives on this page, and ChrisChiasson being an ex-employee of Wolfram Research. I am not suggesting that there has been any improper behaviour by either of these gentlemen.
Let the record show that I have been quite forthright from the beginning: "'It will be very difficult for me to illustrate this because I am not an impartial entity with respect to WRI. That is why I haven't edited the article. However, this is the talk page, so I'll try to illustrate what I mean.' - ChrisChiasson 05:01, 6 October 2007 (UTC)". Other than this, I have no comment. ChrisChiasson 14:45, 29 October 2007 (UTC)
I had thought that citations to reputable media was a non-controversial edit. But I am happy to stay clear of those (I am not very interested in them and was only trying to be helpful!)
Finally, you reverted the edit that you told me to make! So to answer your question above differently - I suggest you make the edit, unless you are swayed by ChrisChiasson's argument, in which case some comment in Talk would be helpful. In other software articles, documentation links appear in the External Links section, not as you suggested as references.
This would be so much easier if the function reference wern't so self-promotional (yes, that's my opinion, but it is hard to argue when the top page says stuff like "The uniquely powerful symbolic language that is the foundation for Mathematica", "Symbolic graphics and unparalleled function and data visualization", "Program-constructible symbolic documents with uniquely flexible formatting", "The world's largest integrated web of mathematical capabilities and algorithms", "Capabilities that define a new kind of dynamic interactive computing", "Unique customizability and connectivity powered by symbolic programming", "Powerful primitives and sources for large volumes of data in hundreds of formats" - sounds more like advertising than documentation). ChrisChiasson 14:45, 29 October 2007 (UTC)
@Jon: after the sign bot autosigned your post, I noticed that you have an active talk page. It is presently blank, but the previous version shows that other editors have had problems with you adding superfluous links to this Mathematica article from other articles. Please stop promoting Mathematica in Wikipedia. It's just going to cause a lot of typing to the detriment of WRI. Its potential customers who see this talk page are instantly going to be turned off by the show here. They'll probably check too, since the article doesn't really reflect the WP:NPOV they would expect. Heck, that's why I checked it. Now you have an eight year old bug and dubious documentation staring potential customers in the face. Think about it. ChrisChiasson 05:32, 27 October 2007 (UTC)
@ChrisChiasson: Issues of Tone and accuracy should also apply to personal attacks in Talk as well as in articles. Referencing a discussion from 2006, in my first few days on Wikipedia, where I first learned that Wikipedia has policies (we all have to learn somewhere) without reference to the chronology, and juxtaposing that with "Stop promoting Mathematica in Wikipedia" is clearly meant to be asserting that I am engaged in link spam. This is demonstrably false. Reviewing my last 50 edits, going back to June, I see only one link created to the Mathematica page, which was when I added .nb,.m and .nbp to List_of_file_formats. I cannot see how that could be construed as promotional or controversial. This discussion is simple: Someone removed the documentation link, I argued that it was important, you argued that it was not. Up until this digression it was healthy academic debate, not a "show".
As far as I know, we don't know each other, so I suggest you review Wikipedia:Assume_good_faith and return to the debate. I do not intend to spend any more time talking about myself. JonMcLoone 11:39, 29 October 2007 (UTC)
Maybe you're right. Maybe 2006 was far enough away in time to not be relevant to this conversion. Or maybe you really thought it would be ethical to link to Mathematica's article from those subject areas. If they even care, other people reading this page will make that determination for themselves, I can't make it for them. By the way, I am assuming good faith, but also assuming that you are somewhat blinded by your allegiance to your company. In other words, I am saying that you won't see problems where other people outside WRI (99.99999% of people) will. That doesn't make you a bad person, but it does make you more likely to be a bad source of objective information (and web graph structure) for Mathematica. That is why you shouldn't be editing the article or linking to it. No one would be able to say anything against you if you didn't do this. Also, I recommend reverting (unblanking) your talk page, as that would show you are unafraid and unashamed of the criticism and that your arguments speak for themselves. ChrisChiasson 14:45, 29 October 2007 (UTC)
There isn't much wrong with that page on HypergeometricPFQ, but that wasn't the original problem we discussed above. I can come up with many reference pages where the language is very flowery, the weaknesses or gaps in functionality are underplayed, and/or where the functionality people would reasonably assume is present (from reading the text) simply isn't there. To show that I am not exaggerating: ImageResolution is supposed to be able to set the pixel density of an exported picture. This option has been available for the Export command since version 4, which came out in 1999 according to this wiki article. However, even a cursory test such as Export["plot.png",Plot[x^2,{x,0,1}],ImageResolution->200] reveals that it doesn't work (original file). I would list more examples, but apparently they are extremely difficult to understand, or at least that's the impression I get from your technical support. I think you can see why I have reservations about linking to the function reference. ChrisChiasson 18:47, 26 October 2007 (UTC)
Your bug report is, I believe, wrong (see below), but that is not the point. The fact that a 10,000 page document undoubtedly contains errors is not a reason to disregard it. One could use the same argument to remove all internal links to Wikipedia, which undoubtedly contains errors also. Likewise for most links to external media and journals. It is the only attempt to document the product in existence and is therefore the primary source. In fact, had that been a bug or documentation error, that would have supported my argument that the Technical Support FAQs should have remained linked, since that is where bugs and workarounds are documented.
I note that both the docs links that you give are also free of flowery language. But again, finding an example that supports your opinion is not the point. That this is THE documentation for the product is a fact. That you don't like the style is YOUR OPINION, and even if you can find reliable citations to support your opinion, the link to the documentation should still remain along with its criticism.
A short review of other programming language pages in Wikipedia finds links to the primary documentation in the External Links section for each of the following: FORTRAN, JavaScript, Matlab (cited by DrKirkby as an example of what this page should be), C_Sharp, C++.
On the topic of your bug. Export is a framework for exporting of all formats. As such many of its options apply to only some formats. This is obvious if you think about what meaning the ImageResolution option would have on, say sound export, or text data. To know the options for each format, you should look at the documentation page for that format in this case PNG. Here there is a section listing valid options, in this case only ImageSize. This is sufficient to achieve your objective. JonMcLoone 11:39, 29 October 2007 (UTC)
@Jon: Actually, it is a fact that I don't like the documentation style. There were four docs links in my example above, not two. The first one has the flowery language. In general, the flowery language is to be found in blurbs at the new (6.0) documentation pages that serve as link index pages, i.e. the ones taking the place of the old hierarchical menu system. Also, the style of the new tutorials (which seem to contain the old Mathematica Book) is fairly flowery as well. Now, we come to your refutation of the ImageResolution option bug. If we accept your argument, then we must also note that the specific file format documentation pages (in this case, the one for PNG) did not exist in versions before 6.0, which was released in May. Therefore, instead of fixing the problem, it has been defined out of existence. I don't call that progress. Also, ImageSize (physical size) is not the same as ImageResolution (pixel *density*), and doesn't offer the same control. Finally, there are many other problems that have simply gone unaddressed that are of a similar class, such as the fact that an exported SVG can't contain stretchable characters in its plot labels because Mathematica can't embed SVG fonts - this prevents users from making even basic plots that list the units for the axes in parenthesis and is not mentioned in the documentation. Command: Export["plot.svg",Plot[x^2,{x,0,1},AxesLabel->{(in/lbf)^(1/3),(in/lbf)^(2/3)}]] Result What it should look like. I can't wait for the explanation on this one... I could make a more regular example, but I don't want to leave you any wiggle room. It isn't like this stuff hasn't been reported to WRI. Anyway, I expect your company to be more up-front about Mathematica's limitations. When WRI isn't up-front and when WRI employees link from Wikipedia to WRI pages that are biased, I must speak out. ChrisChiasson 14:45, 29 October 2007 (UTC)
For those that don't have an SVG viewer installed, here is what the output of the above SVG looks like in Batik (software) Squiggle. As you can see, the parenthesis and root stretchable characters are not present. ChrisChiasson 15:00, 29 October 2007 (UTC)
@ChrisChiasson: (First, since I sense that you may like an official Wolfram Research response, I need to clarify that opinions expressed here are my own). I only have 6.0 installed, so my definition of bug was "does behaviour match the documentation" which I believe that it does in that case. While fixing a bug by documenting it away _is_ an improvement, I agree that it is not the preferred way to improve. I also agree that ImageResolution allows more convenient control, than increasing image size and having to worry about what that does to font sizes. I do not know whether that is planned. On your newer bug, it sure looks and smells like a bug to me too. I do not know if it is a design limitation (IE intended and should therefore be in the documentation) or an implementation bug. But as I said, I am not trying to claim that either the software or the documentation are perfect, and I suspect they never will be, it IS the definitive documentation. And again, I did not originally put that link there, except as later directed by DickLyon who you invited in to arbitrate, I am only arguing that I believe that it SHOULD be there) JonMcLoone 15:53, 29 October 2007 (UTC)
@everyone: I think the documentation link should be there too. I would like to see a statement that Wikipedia does not endorse the style or the completeness of the reference, but I do not think that is going to be enforceable. Also, others have suggested that it should be a reference. This is acceptable to me, but I am wondering if the article should really be written such that the function reference would be a good source (i.e. something you would _want_ to reference in an NPOV article). So, here is the vote: ChrisChiasson 16:36, 29 October 2007 (UTC)
"Do you think we should have the following link in an external links section (exactly as it appears after the colon - i.e. no qualifiers): Wolfram Mathematica Documentation Center ?" ChrisChiasson 16:36, 29 October 2007 (UTC)
Yes, but I don't like it. ChrisChiasson 16:36, 29 October 2007 (UTC)
I'm sorry, I'm not going to help resolve this, as I don't have a particulary strong opinion on the link. I think if the the general tone of the artical could be changed, then some links to so WRI pages, even if they are very promotional, would not be too bad. Drkirkby 12:18, 30 October 2007 (UTC)
If it's used as a reference, it should be in the references section and formatted like any other reference. Probably, all the relevant information can also be found in the manual, in which case we can list the manual as any book and add the URL to the Documentation Center. I would put the official homepage of Mathematica in the external links section ( as this is standard practice. The Documentation Center is linked from there, so we don't need it in the External Links section. -- Jitse Niesen (talk) 12:04, 30 October 2007 (UTC)
@Jitse Niesen: Are you aware of the link to the product page in the side bar at the top of the article? If not, does that change your recommendation? ChrisChiasson 12:10, 30 October 2007 (UTC)
I wasn't aware of it, but it doesn't change my opinion. The External links section is where I'd look for relevant external links and the official is certainly a relevant external link so it should be there. -- Jitse Niesen (talk) 15:25, 30 October 2007 (UTC)
Yes JonMcLoone 12:16, 30 October 2007 (UTC)
I personally can't see anything wrong with examples of Mathematica code. What is your problem with that?
However, I would agree with you it is written like an advertising feature - one could be excused for thinking it is written by the Wolfram Research's PR/Marketing/Advertising department(s). Any criticisms of Mathematica get quickly deleted and replaced with very glowing pro-Mathematica text. I think 'ChrisChiasson' understates it when he refers to a 'vaguely promotional tone'. I just compared the Mathematica page to that of [Matlab] - it is noticeable how criticisms of Matlab are not removed in the way there are from the Mathematica page. The Matlab page is much more balanced. That's the main problem with the Mathematica page - it is not balanced. Drkirkby 19:44, 25 October 2007 (UTC)
I deliberately understated it for two reasons. 1. I didn't want to rhetorically presume that what I saw was totally correct. 2. People's livelihoods depend on this software selling well. I didn't want to create unnecessary resentment by giving my unvarnished opinion about their edits, which are just as understandable as they are unacceptable. ChrisChiasson 17:14, 26 October 2007 (UTC)
I've made a few edits to the first couple of paragraphs, to remove some of the hype. So instead of the first sentance saying: Mathematica is a general computing environment (which is a load of rubbish), I've put what I believe is more the truth - it is specialised program. I've mentioned its one of 3 main players in this field (the others being Matlab and Maple), to give it a bit more balance. The first two paragraphs previously gave the impression the capabilities of Mathematica were much wider than they are. To mention graphics editing will give a very different impression to people. Ask 100 Mathematica users, who are not WRI employees, to name the 5 best graphics edititing software and I very much doubt Mathematica will be on many of their lists. Comments Drkirkby 00:18, 30 October 2007 (UTC)
@Drkirkby:The edits look ok to me, though the opening definition is perhaps a bit too narrow. Will you (edit 10:39, 30 October 2007 (UTC): Jon too, as we 3 seem to be the principals in this discussion) vote in the poll I posted above about adding an external link to the documentation? Thanks. ChrisChiasson 10:20, 30 October 2007 (UTC)
Why is Matlab listed? It's a very different program. Matlab can't do symbolic computations, while Maple and Mathematica are (at least in the academic environment) rarely used for numerical computations. -- Jitse Niesen (talk) 12:04, 30 October 2007 (UTC)
Matlab can do symoblics, although I think it needs the symobics toolbox, which is the Maple engine. I would have said they were sufficiently similar to be mentioned alongside one another. Drkirkby 12:33, 30 October 2007 (UTC)
I guess it's a matter of definition whether Matlab can do symbolics. I think it's misleading to say that it can, but I can understand that you differ. -- Jitse Niesen (talk) 15:25, 30 October 2007 (UTC)

About those code samples: Can ChrisChiasson explain his idea of moving them to Wikibooks? I don't know how code examples are handled elsewhere in Wikipedia, but don't code samples need to be sourced? Sources that would meet Wikipedia criteria would be the company documentation, or books about Mathematica, or published articles. And when the program is upgraded, sometimes the code samples would need to be corrected, which couldn't really be done with samples that were properly sourced.

Also, homegrown samples of code that doesn't work are part of what used to crop up in the mostly unsourced/Usenet-sourced criticism section. The homegrown code claims about stuff that doesn't work seem to have been removed because they violated the No Original Research policy. It seems to me that it might be best all around to take ChrisChiasson's suggestion and move the code samples to Wikibooks and maybe instead provide some entries in the Further reading section to a few books that tell how to write Mathematica code. Or maybe the space devoted to code samples could instead be given over to a proper description of the Mathematica programming language?

What do people think? --JCT120 18:00, 30 October 2007 (UTC)

This grow into a wiki-documentation for Mathematica that filled in the gaps and is free from flowery language. Sounds good. Greenmatter 19:17, 31 October 2007 (UTC)

It probably won't grow into much of anything because the few people who would bother to write it seem to be unwilling to do so in a dispassionate manner. The idea of moving stuff to wikibooks is to make the article less confusing by eliminating the code examples that people learning about Mathematica probably won't understand anyway. Those may be placed in a book where people have more space and time (both to explain and to learn from that explanation). Also, the content standards are lower there. Finally, if someone could implement the result of the vote above this one (as two normally opposed people (myself and Jon) have agreed) about adding a link to the docs, that would be good. Thanks. ChrisChiasson 11:51, 1 November 2007 (UTC)

Clarification on my view of code examples. I argued above that code examples should remain as that was normal for language pages. My real concern is that the argument for change of tone was being used to sweep away a lot of relevant information and this would apply here. I am not fundamentally opposed to code examples living elsewhere, but would like to see some of the useful information that indirectly lives in code examples be preserved. To me these are 1) The code gives examples of the kind of built in computational support that is not particularly explained in the "Features" section. In the code you can see matrix operations, special functions, root finding, integration and summation using numeric and symbolic evaluation. The specific examples are not important, but the features section would need to be improved if these examples are removed. 2) The two sections "Multiple programming paradigms" and "Common structures and manipulations" are significant to understanding Mathematica language relative to other languages. The code provides evidence to support the description. Without the code, these sections will need re-wording and citations. If these two concerns can be addressed in a move of the code, I would not be against it. JonMcLoone 13:10, 1 November 2007 (UTC)


The article takes a vaguely promotional tone. This is bound to be off-putting by readers expecting NPOV. It wasn't always this way.ChrisChiasson 11:21, 5 October 2007 (UTC)

Just for my benefit, could you quote a couple of lines from the article which give you that "vaguely promotional" feeling? PrimeFan 22:23, 5 October 2007 (UTC)
It will be very difficult for me to illustrate this because I am not an impartial entity with respect to WRI. That is why I haven't edited the article. However, this is the talk page, so I'll try to illustrate what I mean.

"Mathematica is a general computing environment, organizing many algorithmic, visualization, and user interface capabilities within a document-like user interface paradigm. It was originally conceived by Stephen Wolfram, developed by a team of mathematicians and programmers that he assembled and led, and it is sold by his company Wolfram Research of Champaign, Illinois.

Since version 1.0 in 1988, Mathematica has steadily expanded into more and more general computational capabilities. Besides addressing nearly every field of mathematics, it provides cross-platform support for a wide range of tasks such as giving computationally interactive presentations, a multifaceted language for data integration, graphics editing, and symbolic user interface construction. An organized index of its functionality can be found here.

Many major educational and research organizations have Mathematica site licenses, and individual licenses are also sold. With Mathematica 6, a free player is provided for running programs published on the Wolfram Demonstrations Project website."

I would rewrite it as:

"Wolfram Mathematica is computer software for doing mathematics. It was originally developed by Stephen Wolfram and a team of mathematicians and programmers that he assembled and led. It is sold by his company Wolfram Research of Champaign, Illinois. Version 1.0 was released in 1988.

The default mode of interaction with Mathematica is via a front end user interface to what are called notebooks. Notebooks allow for the mixing of expository text, code, typeset calculations, and graphics. In the most recent version, 6, the notebook paradigm has been extended to include interactive graphics and dialogs. Without going into too much detail, the back end kernel is what drives the evaluation of user code and calculations.

Many major educational and research organizations have Mathematica site licenses, and individual licenses are also sold <ref name="blah">{{cite some neutral third party reference for this here}}</ref>."


-1. The wolfram demonstrations project article would probably not survive a nomination to articles for deletion... not that I am going to nominate it.

0. Promotional links are removed. These should be in an external links section at the bottom.

1. The name of the product is no longer Mathematica. It is Wolfram Mathematica. This is just a technical point.

2. Mathematica is a system for doing mathematics by computer. Everything else is secondary. Trying to list all of its features (to say nothing of the quality of implementation relative to other truly general computing environments) in the opening sentence is ... ridiculous.

3. "Besides addressing nearly every field of mathematics..." Mathematica does have broad reach in terms of mathematics, but a neutral third party source needs to be cited with <ref ...>{{cite ...}}</ref> if a statement like this is going to be made.

4. "tasks such as giving computationally interactive presentations" this illustrates what I will call "too many big words that mean nothing" in the context of someone reading the article who isn't familiar with MMA. It would be more clear to just say "tasks such as giving interactive presentations" and allowing the context of the article to let the user know what kind of interaction is going on. Besides, all interactive presentations on computers are computational. - Here the problem is only one extra word, but elsewhere...

5. The features that are listed should be explained to the point where someone who doesn't know the jargon will be able to understand. Lots of multi-syllable adjectives do not help unless the point of the article is to make people say "gee whiz, that sounds great". As it stands now, while reading the article I can barely understand what is meant by some of the things that are listed, and I already know what the new features are and what the marketing department has decided to call them.

ChrisChiasson 05:01, 6 October 2007 (UTC)

A few comments
Your comments on 2) Are not really right. POV follows...The phrase "A system for doing Mathematics by computer" that was a marketing line in the very early versions of Mathematica had been dropped by about 1994 because it was not an accurate description. The much less catchy "Technical computing system" replaced it because the majority of users were not "doing math" they were doing "simulation", "modelling", "software development", "engineering" etc and in later versions "publishing" or "reporting". Now these largely depend on maths but in a similar way to saying that all computing is, in the end, logic. To define it purely in terms of maths would mislead many who might be interested.
3) I think is a case of over summarizing. But there is a great danger to trying to be precise as the granularity required to not simplify will result in a very long list of topics.
I think what the writer was getting at in 4) was to try and distinguish between predefined interactivity (like animations, hyperlinks and navigation tools) and interactivity that calls live computations (eg a slide show where one of the slides runs a model in response to sliders, or calls live financial data while it is being displayed etc). I am not defending the choice of words, but I think that this was not simply big word overload.
I assume your complaint about COI was addressed at me. I would just like to point out a) That I have never hidden my associations (unlike most people apart from you, editing in my own name and linking to full bio from my user profile page). b) Most of my edits are factual corrections in a topic that is my area of expertise. c) The recent interaction that questioned my background, I think clearly shows an attempt to remove a Europe vs US POV and argue FOR NPOV.
JonMcLoone 17:36, 23 October 2007 (UTC)
Heh, saying that my "comments on 2) are not really right" and then subsequently saying that "POV follows" is putting the cart before the horse. "Mathematica is a general computing environment, organizing many algorithmic, visualization, and user interface capabilities within a document-like user interface paradigm." Other than the root word of the name, the opening sentence gives little indication that the software allows one to do math by computer, which is the primary reason one would bother to use Mathematica. Other software does everything else faster/better and for less (often for free). I think the latest bells and whistles are getting in the way of an accurate description. If you are saying it is the combination of doing math + other features that makes Mathematica important, you might want to consider that most software has some feature x + other features. The salient point about Mathematica is its strong math capability. You mentioned engineering and simulation. Yes, Mathematica is useful for this (because it includes a programming language and it can do math). However, that is not mentioned in the present opening sentence. A comment on what human activities Mathematica has applications to (and what features these are associated with) might be best added after a quick description of the front end UI. There are, of course, other deficiencies with the opening sentence. For instance, it doesn't mention that Mathematica is computer software (instead of, perhaps, some kind of integrated hardware + software package for doing ... ? ... inside a ... "document-like user interface paradigm").
3) is not about over-summarizing. The level of summarization is fine. However, it _is_ about WP:V and separating opinion from attribution thereof (WP:POV).
In 4), it doesn't really matter what the reason is for the big word overload. It is confusing/unclear and should be fixed.
Yours is the only COI that I have been able to confirm because I haven't bothered to look very hard. Even if you only add facts to the discussion, your contributions will still likely suffer from selection bias. I am 99% sure that if I ran the WikiScanner ( against this article, I would find many anonymous contributions in violation of WP:COI to this article from WRI. For the sake of argument, if you are editing this article, I should be editing this article to maintain NPOV. However, it would probably be better for both of us to just not violate WP:COI.
ChrisChiasson 00:34, 24 October 2007 (UTC)

Mathematica on the Web purpose

The Mathematica on the Web section is currently a bit pointless. Either it should be expanded to list more sites that are powered by Mathematica or use Mathematica syntax (,, etc) or Sloans should be moved down to the external links area and the section removed. Any opinions which way to go? JonMcLoone 13:46, 26 July 2007 (UTC)

I don't think the section is pointless at all. The use in Sloane's OEIS is an important endorsement. Can MATLAB or MathCAD say the same as Mathematica and Maple?
Since you obviously know some sites "powered" by Mathematica, you could just add them to that section (this is Wikipedia, after all). PrimeFan 23:30, 26 July 2007 (UTC)
OK, I did a re-write to enlarge this. There are more that I have not listed, but I don't think the section should grow too large. JonMcLoone 12:20, 31 July 2007 (UTC)

Mathematica Player is more restricted

Mathematica Player does, so far, only compute specially prepared notebooks (at Wolfram, see the Wolfram Demonstration project) otherwise it serves only as a viewer. There will be a Mathematica Player Pro available in the future. The beta version is supposed to be out in half a year. --Dieter.Wilhelm 20:53, 10 July 2007 (UTC)

Anyone can create an account to convert their own content to the active .nbp format via the website. 09:45, 10 July 2007 (UTC)

Pardon, but what is the "active .nbp format"? --Dieter.Wilhelm 20:53, 10 July 2007 (UTC)

Files saved in .nbp can be opened in Mathematica Player for viewing, navigating, printing and interacting with the dynamic content (sliders, buttons etc which invoke calculations) but can only be edited in Mathematica. Files saved as .nb can be opened in Mathematica Player for viewing, navigating and printing, but require Mathematica for editing and using dynamic content. Conversion from .nb to .nbp is currently offered as a free web service on 11:56, 11 July 2007 (UTC)

Thanks, stupid me, I thought you meant some Wikipedia format. And yes, I described these .nbp files as "specially prepared notbooks" and I think it's important to mention this restriction. By the way, is it possible to edit these wiki pages with one's own editor somehow? --Dieter.Wilhelm 16:39, 11 July 2007 (UTC)

I took your comment to be that only Wolfram Research could create files and wanted to get across that the tools are available to users. But yes they do need to be prepared, in the sense that they have to be saved in the right format. Sorry I'm not a wikipedia expert, so don't know about alternative editing 09:11, 12 July 2007 (UTC)

Screenshot request

Someone please post a nicer screenshot. Preferably one with expressions which are hierarchically nested. Ninjagecko 16:12, 13 December 2006 (UTC)

I would like a screenshot showing something in the notebook, some numbers, maybe a 3-D graph, something other than just a blank window. PrimeFan 23:41, 13 December 2006 (UTC) P.S. I'd do it myself but I haven't upgraded to the latest version.

How Lisp-like?

Can someone elaborate on how Mathematica is Lisp-like? (And by the way, I'm curious to know where Ar found the information that Mathematica was implemented in Objective-C, that's very interesting!) Dysprosia 00:53, 1 Aug 2004 (UTC)

I no longer know where I found the information a precise indication that it was written in Objective-C; I think it is common knowledge on MathGroup etc.. A hint can be found in the Background and Acknowledgments section of Version 1 of the book Mathematica: A System for Doing Mathematics by Computer:
Mathematica is a C-language program, about 150,000 lines long. ... The original source code of Mathematica was actually written in our object-oriented extension of C.
As for similarity to Lisp, there are many aspects one may cite. IMO, the underlying reason is that symbolic expressions are naturally represented as a hierarchy of sub-expressions where the zero-th part (the Head of the subexpression) determines how the remaining arguments are to be interpreted; the difference to Lisp is merely that instead of head[arg1, arg2] you write (head arg1 arg2), which is just a difference in syntax. Just as Lisp derives much of its power from the ability to control the time when arguments are evaluated, Mathematica does the same: In Lisp the distinction is between function and macro, in Mathematica it is the presence or absence of the Hold...-attributes. The similarities extend to control structures: e.g., the (rarely used) GoTo as well as Catch and Throw in Mathematica resemble their respective Lisp counterparts; Block works very much like let (except for the difficulty of constructing closures, which is something you can simulate with With). In both cases, symbols are central to the language for accessing the information that is associated with them, although the referenced data structures are actually independent of them (which is why building specialized Mathematica code at run-time in the form of, e.g., pure functions already holding large amounts of pre-calculated data - think of Currying - typically is very efficient despite the seemingly large expressions one so obtains). Add to this the impure functional character: Mathematica tries to imitate a functional system, and the functional style is very much idiomatic in Lisp, though the main reasons are different in either case (in Mathematica it is important for the semantics of "infinite" evaluation, in Lisp this is one way of reducing excessive copying, aka "consing"; the latter is, of course, also an issue for Mathematica efficiency). The Lisp heritage (some of which is discussed in a thread on comp.lang.lisp) can also be seen from the read-eval-print-loop that was still somewhat exotic at the time.
There are, however, also some very important differences, e.g., as far as scoping or performance characteristics are concerned. Also, rule-based transformations are not typical of Lisp, and Common Lisp at least has a much sharper distinction of the various times (load time, read time, compile time, run time...).
All this is just what comes to mind immediately. I don't think it would be good to put these things into the article, at least in the present form. Ar 14:15, 1 Aug 2004 (UTC)
That's very interesting stuff. It should perhaps deserve it's own section in the article, but you're right about not in the current form. Re the Objective-C thing, Objc is not a Wolfram Research creation, so it could still be a proprietary extension... Dysprosia 23:12, 1 Aug 2004 (UTC)
In fact, I was quite sure about objc, so the formulation in the Mathematica book was a surprise. So I now looked further: V3 of the book states in [

| section 1.12.4]:

The C code in Mathematica is actually written in a custom extension of C which supports certain memory management and object-oriented features. The Mathematica code is optimized using Share and DumpSave.
I will therefore go back and change the objc-part. Ar 20:41, 2 Aug 2004 (UTC)
Just to note, the difference in syntax is that of S-expressions (Lisp style with parens) versus M-expressions (Mathematica style with bracks). M-expressions were actually an early proposed syntax for Lisp, but were abandoned in favor of the S-expressions which have become so representative of Lisp.

Version history

Just curious, is there a place where Mathematica's version history is listed? PrimeFan 22:18, 7 September 2005 (UTC)

Wolfram Research has a version history here: Quick Revision History of Mathematica Robertd
Thanks. PrimeFan 16:58, 13 September 2005 (UTC)

How is about this overview ?

  • Short Version:

Release history

Version Platforms Release date
SMP (Symbolic Manipulation Program)  ? 1983 - 1988
0.x  ? 1986
1.0 DOS, VMS, … (?) 1988
1.2 DOS, Mac OS, NeXTStep, … , VMS (?) 1989
2.0 DOS, Mac OS, NeXTStep, … , VMS (?) 1991
2.1 DOS, Windows 3.1, Mac OS, NeXTStep, … , VMS (?) 1992
2.2 DOS, Windows 3.1, Mac OS, NeXTStep, … , VMS (?) 1993
3.0 Windows, Mac OS, NeXTStep, Linux, Sun OS, Solaris, IRIX, AIX, HP-UX, OSF/1 1996
4.0 Windows, Mac OS, Linux, Solaris, IRIX, AIX, HP-UX, … (?) 1999
4.1 Windows, Mac OS, Linux, Solaris, IRIX, AIX, HP-UX, … (?) 2000
4.2 Windows, Mac OS, Linux, Solaris, IRIX, AIX, HP-UX, … (?) 2002
5.0 Windows, Mac OS, Linux, Solaris, IRIX, AIX, HP-UX, … (?) 2003
5.1 Windows, Mac OS, Linux, Solaris, IRIX, AIX, HP-UX, … (?) 2004
5.2 Windows, Mac OS X, Linux, Solaris, IRIX, AIX, HP-UX, Tru64 2005
  • Long Version:

Release history

Version Platforms Release date
1.0 16bit:(?) DOS x.x
32 bit: VMS x.x
1.2 16bit:(?) DOS x.x
32 bit: Mac OS x.x, NeXTStep x.x, VMS x.x
2.0 16bit:(?) DOS x.x
32 bit: Windows NT x.x, Mac OS x.x, NeXTStep x.x, VMS x.x
2.1 16bit:(?) DOS x.x, Windows 3.0 - 3.11
32 bit: Windows NT x.x, Mac OS x.x, NeXTStep x.x, OS/2 x.x, VMS x.x
2.2 16bit:(?) DOS x.x, Windows 3.0 - 3.11
32 bit: Windows NT x.x, Mac OS x.x, NeXTStep x.x, OS/2 x.x, VMS x.x, NeXTStep x.x (Intel, Motorola), Sun SUN/OS x.x
64 bit:(?) Solaris x.x (?), SGI IRIX x.x, IBM AIX x.x, HP-UX x.x, Digital OSF/1 x.x(?)
3.0 32bit: Windows 95, Windows NT x.x - 4.0, Mac OS 7.1 - 7.5 (68k(?), PPC), Linux 1.2 - 2.0 (x86), NeXTStep 3 (Intel, Motorola, HP-PA RISC, SPARC), SUN/OS 4.1.1
64 bit:(?) Sun Solaris 2.5, SGI IRIX 5.3, IBM AIX 4.1, HP-UX 10.10, Digital OSF/1 3.0
4.0 32 bit: Windows x.x/98/Me, Windows NT x.x, Mac OS, Linux (x86)
64 bit:(?) Sun Solsris x.x., SGI IRIX x.x, IBM AIX x.x, HP-UX x.x
4.1 32 bit: Windows x.x/98/Me, Windows NT x.x, Mac OS, Mac OS X 10.0, Linux (x86, PPC)
64 bit:(?) Linux (Alpha)
4.2 32 bit: Windows x.x/98/Me, Windows NT x.x, Mac OS, Mac OS X x.x, Linux (x86, PPC)
64 bit:(?)
5.0 32 bit: Windows x.x/98/Me, Windows NT x.x, Mac OS X x.x, Linux (x86)
64 bit:(?)
5.1 32 bit: Windows x.x/98/Me, Windows NT x.x, Mac OS X x.x, Linux (x86)
64 bit:(?)
5.2 32bit: Windows 98/ME, Windows NT 4.0/2000/XP/2003 (x86), Mac OS X 10.2 - 10.4 (PPC), Linux (x86)
64 bit: Windows XP/2003 (x86-64), Mac OS X 10.4 (PPC G5), Linux (x86-64, IA-64), Sun Solaris 8, 9, 10 (UltraSPARC), Sun Solaris 10 (x86-64), SGI IRIX 6.5, IBM AIX 5.1 - 5.3, HP-UX 11, HP Tru64 UNIX 5.1

I very much dobut that version 2.2 was 64-bit on any platform, which is implied by the above table. The history at firsts mentions 64-bit on version 5. Drkirkby 20:46, 18 June 2006 (UTC) 10:20, 7 April 2007 (UTC)

POV? Mathematica is not robust nor reliable

This was recently added to the article:

Mathematica has a strong following in the academic market, especially undergraduate students, however industrial users tend to prefer more reliable and robust tools such as MATLAB and Maple.

Does this mean that Mathematica is not robust or reliable enough for industrial use?

Also, does this mean that at universities Mathematica is usually available but not MATLAB? Because that would be wrong, American universities usually have both programs available to their engineering students. Anton Mravcek 20:29, 4 November 2005 (UTC)

As an industrial practitioner of scientific computing for over a decade, I've never met anyone who uses Mathematica (though I knew plenty of them when I was in college). Matlab's numerical libraries are universally acknowledged as more robust, and people who do heavy symbolic manipulation have a strong preference for Maple.

--GaeusOctavius 20:49, 4 November 2005 (UTC)

In my experience, Maple is favored in math departments due to the large amount of purely symbolic manipulation, MATLAB is favored in more applied departments like engineering, and Mathematica has quite a following in non-computational physics. — Laura Scudder 22:30, 7 November 2005 (UTC)
For purely theoretical math and for "recreational" math, Mathematica is perfect. I guesstimate half of the contributors to the OEIS use Mathematica and provide Mathematica programs whenever they send in a sequence. PrimeFan 22:35, 8 November 2005 (UTC)
You may have some point about Matlab's numerical libraries, but to say that symbolic manipulation in Maple is somewhat superior to Mathematica is nonsensical in my opinion (Yes, I have used both). Just my 2c. Dysprosia 01:51, 11 November 2005 (UTC)
I can confirm Anton's statement about Mathematica in universities, at least in the case of Wayne State University. In the Undergraduate Library, the Windows XP computers have a folder called "Engineering Applications," which contains Mathematica 4.2, MATLAB 6.5, MathCAD 11, etc. (but no Maple). The computers in the College of Engineering, however, don't have Mathematica (but they do have MATLAB, MathCAD, PolyMath, etc.) When some engineering students tackled the problem of face recognition, they turned to MATLAB.
So just using WSU, I'm not sure this qualifies as "a strong following in the academic market, especially undergraduate students." Del arte 22:36, 12 November 2005 (UTC)

I have recruited mathematical software users for various math intensive corporate tasks - usually initial technical or financial project testing and development. What I have found is that Mathematica is the corporate preferred package for theoretical testing - primarily looking at various routes that can be taken, whilst Matlab is preferred for hands on development. I personally prefer Mathcad but corporate pressures being what they are the two main packages for maths within the corporate world are Mathematica - high end and Matlab - hands on. As for Maple this is seen as an academic use package and there has been little transition to the corporate market. Just check technical and high end recruitment sites and you will find this to be the case.

Authorship of Mathematica

The article says Mathematica was "originally developed by Stephen Wolfram". It is true that Stephen Wolfram initiated the project to develop Mathematica, but the first released version of Mathematica included contributions from a team of 8 developers: Stephen Wolfram, Daniel Grayson, Roman Maeder, Jerry Keiper, Henry Cejtin, Steve Omohundro and Dave Ballman collaborated on the Mathematica kernel (the computational core of Mathematica), while Theo Gray designed and implemented the front end that established the distinctive interaction style of Mathematica and provided the ability to create "live" interactive, executable mathematical notebooks. Some of these people were involved in the development of Mathematica for 2 years prior to its debut as a commercial product, so the expression "originally developed by" would surely apply to them as much as to Wolfram. My authority for this is personal recollection: I was one of the earliest employees of Wolfram Research, and I personally knew 7 of the 8 original developers (all but Omohundro). (I wasn't one of the developers myself, but I was one of the first 10 or so people hired when the company was being organized in preparation for the initial commercial release.) In the interest of historical accuracy and fairness, I suggest that the article text at least be amended to read "originally developed by a team assembled and led by Stephen Wolfram". I realize that doesn't flow as smoothly as the current wording; maybe someone else can find a better way to say it. I will wait a day or two for comment before proceeding with the edit. --Logician1989 06:23, 16 February 2006 (UTC)

I'll let you do the honours. You should reference this page (or some other) somewhere when you do, maybe even just in the edit comment, as a verifiable source. Dysprosia 08:23, 16 February 2006 (UTC)
Thanks for the link. I'm new to editing Wikipedia and am still learning the rules and customs. By the way, I noticed that the article describes Mathematica as a "computer algebra system". Swolf hated this term and forbade employees of WRI from using it. He said that "computer algebra system" placed undue emphasis on symbolic manipulation, and overlooked 2/3 of what Mathematica could do (high-precision, rapid numerical calculation, and graphics/visualization) -- and more importantly, obscured the fact that these three aspects of the system were tightly integrated with each other. The subtitle of the Mathematica book is "A System for doing Mathematics by Computer", and we were allowed to call Mathematica a "computer mathematics system" or a "computer math system" (although that suggests that Mathematica does "computer mathematics" as opposed to the "regular" kind, so was also frowned upon) but NOT a "computer algebra system". As an evangelist who spoke frequently to potential customers and large audiences, I had to keep this restriction firmly in mind. Nevertheless I realize that the terms "computer algebra system" and "CAS" are entrenched, and furthermore are used canonically in Wikipedia (as an article title, for example) as the designation for a class of software which certainly does (or should) include Mathematica, so I'm thinking I shouldn't change this usage in the Mathematica article. --Logician1989 16:54, 16 February 2006 (UTC)

Map vs. threading

I argue that using map is much more lucid than using Mathematica's inbuilt threading, in the example of "Map[Apply[Log, #] &, {{2, x}, {3, x}, {4, x}}]". Using threading isn't wrong, it's just less clear, and we should strive for clarity if we are to write an illustrative example. Dysprosia 00:37, 6 June 2006 (UTC)

The code: "Map[Apply[Log, #] &, {{2, x}, {3, x}, {4, x}}]" uses the terms "Map", "#", "&", each of which requires a somewhat lengthy definition. These definitions were completely absent from the pre-existing Wikipedia article containing this code. Therefore, the example was not readily comprehensible to someone who did not already know the subject well, making it an undesirable encyclopedia entry. Fixing this up by including lenthy definitions for these terms would make the example overly long, especially since this aspect of the program is unnecessary, as my rewrite shows.

On the other hand, the code which I wrote has a self-contained explanation following it. Moreover, my program is shorter, does not require any extraneous function definition, and it illustrates how the numerous options for Mathematica functions, in this case a third argument to Apply, produce shorter and cleaner programs.

For these reasons, my code should remain.


You haven't responded at all to the clarity or otherwise of using threading. It's obscure, and not all functions, especially user defined functions, support it. Dysprosia 13:38, 6 June 2006 (UTC)

And you haven't responded to using numerous undefined symbols in an example. As for the clarity of threading and your statement: "It's obscure," I disagree with it. This is only an opinion, as is your own statement. Indeed, it is just a question of style and cannot be proved rigourously. However, as I implied on my Wikipedia homepage discussion, if there were a Mathematica manual of style, then my book would be a good candidate, so my claim has an authoritative basis. For example, I consider your ad hoc function definition to be a good example of bad style, especially when it can be avoided by writing a simpler program. In conclusion, since I considered it obvious that your point was stylistic, I felt that objective issues, such as your use of many undefined symbols, had priority in the discussion.


The point about undefined symbols can be easily rectified by expanding the article in a reasonable fashion. If there were a Mathematica manual of style, your book would still be your opinion, and thus would not be quite "authoritative". Dysprosia 21:41, 6 June 2006 (UTC)

This appears to be an implicit admission that your version of the article was incomplete and that my changes made it self-contained. Normally, someone would accept that as being an improvement. Instead you make vague plans for a longer version. As for your second point, it is incorrect but I don't have the time or energy to explain to you these things that you should already know. I am starting to wonder whether Wikipedia even makes sense if everything comes down to this type of bickering. The only solution seems to be to appeal to a referee or editorial board.


If you find reasonable discussion about making reasonable improvements to the article that tiring, then this is a reflection on yourself, not on me. My second point is not incorrect -- like I mentioned on your talk page before you removed it (it is still in the article history), Wikipedia doesn't work on a "defer to the authority" basis, and furthermore, matters of style are fundamentally based on opinion and not on objectivity. When I get some time, I'll make an attempt to address both concerns and feature both methods in the article. Dysprosia 00:34, 7 June 2006 (UTC)

Mathreader License

The sentance

"Starting with version 3.0 of the software, notebooks are represented as expressions that can be manipulated by the kernel, and the typesetting features of the front end were deemed sufficiently important to warrant the availability of a dedicated reader software for displaying Mathematica notebooks, the MathReader software that is not tied to a commercial license."

is rather long, but I feel is also inaccurate too. There is a commercial license on MathReader, despite the fact the software is a free download. Drkirkby 00:16, 12 June 2006 (UTC)

Connections with other applications

The article says communication with other programs occurs with MathLink. But that is not the only way - one can use the file pointers stdin and stdout. i.e. to get Mathematica to evaluate things output from myprog1 one can use

myprog1 | math.

Is that not communication? I guess it is only one-way (myprog1 to math, and not the other way too). Do others think something like that should be added? Or perhaps 'bidirectional' inserted into the header/description.

MathLink is clearly sophisticated and quite complex - there is not always the need for such complexity. Drkirkby 07:32, 12 June 2006 (UTC)


I belive the Mathematica icon is for version 4, whereas the latest version is quoted as 5.2. It would seem sensible for a version 5 icon. But I have some concerns about exactly how an icon may be used (copyright), so are not going to add one myself Drkirkby 18:13, 25 June 2006 (UTC)

I have updated the icon. It classifies as "fair use". —Mets501 (talk) 20:44, 18 August 2006 (UTC)

Unfounded criticism

This remark (from the Criticisms section) just has to be from a programmer and non-mathematician:

In breaking with most popular programming languages, Mathematica indexes its lists starting from one. […]

Mathematica is first and foremost a tool for doing mathematics; therefore it makes sense to follow the conventions of mathematics. The observation that it is also a programming language doesn't mean that suddenly the conventions of programming should take precedence. For example, the upper left element of a matrix A is usually written A11; it would be a Bad Thing if Mathematica forced us to write A[[0,0]] instead.

The remark is also factually incorrect—you can index a list with index 0. What you get is the list's head, as already mentioned earlier in the article. So in a certain sense, Mathematica elegantly honors the conventions of mathematics and of programming.

Since the remark is totally unfounded as criticism, I removed it from the article.
Herbee 03:14, 27 August 2006 (UTC) (I'm a programmer, btw)

Currently, criticism section talks about the mailing list and usenet group of Mathematica. I think this is not a founded critisim. There are many other issues more important than that such as, interface, language dessign, scalability, documentation of implementation, efficiency, simplification traps. I think that Fateman's article (cited above) and Press and Teukolsky article[2] (see page 4) should be a guide for this section. 07 February 2007

Is every price tag inherently worthy of criticism?

In the Criticisms section, we have a fact that reads: ... Wolfram Research sells the software for a price of $1880 to $3135 for a standard license.

The nature of the criticism is not clear to me. (There's no citation, so I can't verify this.) Is the criticism that the price is not less than $1880? Or is the criticism that it has a price tag at all? If the former, I think this should either be removed as POV (whether or not this is an excellent is clearly a matter of opinion) or else cited as to who is making this specific criticism. If the latter, I think this should be removed on the basis of redundancy or just plain sillyness — should every commercial product in Wikipedia have a Criticism section added because someone doesn't want to pay for it?

Just thinking out loud before I remove it. Either way, we're missing a citation so the reader can verify where this criticism is coming from. And please consider that for each review of "it's too expensive", we may also be able to find an "it's an excellent value" review for a Praise section. That might escalate. Or maybe not. Anyways, thanks for your thoughts on this. --Ds13 16:12, 9 October 2006 (UTC)

You raise an interesting point. However, in the context of the full paragraph there, I would vote against deletion. As it also points out that the product is proprietary, a point to be had might be that while the product does a lot of good things, it only allows for the things which the designers want to allow. This would be at odds with, say, an otherwise similar but open source product. I admit this point does not come across much at all as written, but is an extraordinarily valid criticism. "I am paying such and such, and yet an arbitrary design decision prevents me from doing what I wish to do." A rewrite would (IMO) be far preferable to deletion.
As to citing prices: before deleting them, please try to find sources yourself; they're on the manufacturer's website (albeit are likely to change not infrequently). I always rather look first, then either i) correct what is wrong; ii) add ref to correct info; iii) as last resort, delete unfixable content.
Baccyak4H 16:41, 9 October 2006 (UTC)
I can't find a reference for the criticism that the single-user license "places the software out of the hands of many who could benefit from using it", so I've tagged this.
I've also split the criticism of being proprietary from the criticism of the Standard version costing too much.
Additional weasel-wording in this section includes: "a policy some find draconian" and "which some argue slows down the speed". --Ds13 18:36, 9 October 2006 (UTC)

Here are links [3] [4] to two software reviews complaining about the price. I didn't bother to include the random newsgroup comments regarding Mathematica's high price. If you know of any reviews claiming that Mathematica is an excellent value for the price, please let me know; I didn't find any during my search.

I don't believe that any software which charges a price should be criticized on that fact alone, but nor do I believe that any price set for a piece of software is automatically reasonable just because the market will bear it. I agree that finding verifiable citations is the way to establish which side of the fence Mathematica sits on. -- Four Dog Night 20:14, 9 October 2006 (UTC)

I didn't find any reviews that said it was good value. I guess it's just me, but I'll accept that. (Personally, I think that $140 for students as long as they're in school is a great value. And any for-profit entity that needs to spend the $1,880 for their license is probably spending tens of thousands in hardware and, especially, salary to operate the system, so the difference between $1,880 and free may not be as significant for that target buyer as it might seem.) Anyways, that's my POV and there doesn't appear to be a reliable source that feels the same way.
I've bolstered the "proprietary" criticism with some context and a link to comparisons with competitive software, after an anonymous user blanked it. Thought technically, that criticism is still without reference to a reliable, notable source — it almost appears as an original argument. Thoughts? --Ds13 15:57, 10 October 2006 (UTC)

Here is the abstract of a paper by Richard Fateman and Derek Lai:

Users of computers for scientific and mathematical computation have become more aware of computer algebra systems through recent commercialization of the technology. However, the proprietary nature of most such systems makes the software unavailable to computer scientists and systems developers for "dissection" and for certain kinds of experiments or applications. In an attempt to provide appropriate software for such purposes, and especially for interaction in the Common Lisp environment, we have developed a simple mathematical display package. This program produces conventional notation - raised superscripts, fraction bars, and similar features, from an internal notation that is quite natural in Lisp. This module fits into the model begun by earlier programs at Berkeley consisting of a "clone" parser for one common proprietary system (the Mathematica (TM) language), and a simplifier for rational functions.The entire package is written in Common Lisp, and some of its main features are described in this document.

The actual paper (click on the "full text" link) goes a bit further regarding the problems of proprietary CAS systems.

P.S. Just FYI, my POV is that $800 (instead of $1880) would be a reasonable full list price. But either way, it is out of my price range, so I will be sticking with the free stuff. -- Four Dog Night 19:10, 10 October 2006 (UTC)

Interesting you cited Fateman. He has on several occasions posted to MathGroup on how one can write some code that does not do what it is documented to do. He would then often state how unacceptable this was, to the effect of this isn't in the documentation, and I cannot see under the hood. Someone else (name escapes me) does that a lot as well, quite a bit less adversarially I might add (and both use remarkably contrived constructions). I am not sure how to use this to better the article, but felt it worth mentioning. Baccyak4H 19:37, 10 October 2006 (UTC)
Ironically, I can't read the paper due to the proprietary nature of its ownership and/or distribution. ;) I agree with your point though, especially when the user of an algebra package is expertly capable of reading/using/modifying/evaluating its source, then being open can be a significant benefit. But I suspect the portion of users who need a computer algebra system and who are actually capable of expertly reading/modifying/evaluating its source code (were it to be made available) is very small. --Ds13 19:58, 10 October 2006 (UTC)
I don't know what I would have done to have special access to that paper, but who knows. Interesting. Fateman also wrote a technical critique of Mathematica in 1991. I don't know to what extent the problems he describes still exist in the current version of Mathematica. -- Four Dog Night 23:46, 10 October 2006 (UTC)
I don't think that price should even be an issue in this debate. One may acquire the student version (if one is a student) for a substantial discount. Further, if one needs Mathematica then it may be argued that one will have the means of securing a license regardless the cost. (Research grants do wonders to provide the ardent mathematician with powerful computers, state-of-the-art software, and the odd research assistant or two.) For that matter, given the necessity of a PC in today's world, one could consider any computer prohibitively expensive for the poorest of people. Should entries on PCs criticize them because they are not free? Eyes down, human. 03:07, 29 January 2007 (UTC)
WP isn't the place to debate whether Mathematica's price is "reasonable". We can, however, present the facts and let users decide for themselves. The other major, supported, commercial CAS is Maple, which costs roughly the same. Macsyma (alas) has not been supported for years, and MuPad, though significantly cheaper, is not widely used (for whatever reasons). Of course, free/open source systems cost $0. I have no axe to grind here -- I worked on the original MIT Macsyma, and now contribute to the free Maxima project. As for Peter Coffee's comment about its high price (and "and unconventional user interface", by the way) limiting its wide adoption, it hardly seems worth mentioning. If BMWs were cheaper, I bet more people would buy them, too. --Macrakis 16:01, 29 January 2007 (UTC)

I cannot summon to mind a single example anywhere else on wikipedia where the differences between pricing from one country to another are made an issue of. Certainly, many such situations exist, but they are highly dependent on things like current exchange rates. Perhaps the subject of varitions in pricing by country deserves its own article. Cut why it sholud be important to mention here when it isn't anywhere else escapes me. --Pleasantville 16:29, 7 June 2007 (UTC)

His example is also highly selective. Even using his chosen comparison with Maple, you find, for example that the student price in the US is 40% higher than Maple, but in the UK it is 20% lower than Maple. This is much more complicated than he suggests. The factual approach would be to list both prices and remove POV comment. JonMcLoone 10:46, 15 June 2007 (UTC)

Why not just create a table with the price in various locations for various users and remove the criticism?ChrisChiasson 12:58, 9 October 2007 (UTC)

Preview release

The main page says the preview release is 6. But is this so? Where is the proof? I can't find a mention on the Wolfram web site. —The preceding unsigned comment was added by Drkirkby (talkcontribs) 10:24, 7 April 2007 (UTC). Drkirkby 10:25, 7 April 2007 (UTC)

I heard a talk on the new version of Mathematica recently. I guess I do not know for sure the qualifications of the person giving it but he must be a beta tester or something. I believe he is a math professor. Any way, this won't be proof but... he said basically things such as "they released 3.0, 3.1, 3.2, 4.0, 4.1, 4.2, 5.0, 5.1, 5.2... so what comes next." But, he also said that not even he has been told what the next version number is going to be for sure, that is Wolfram has not told him. He still seemed pretty confident and seemed to have heard people say this. New features are pretty sweet. StatisticsMan 08:51, 22 April 2007 (UTC)

Source citation issues & software in the case of Mathematica V.6

I reverted an edit by an unregistered user using the IP # regarding v.6 computations of NIntegrate for lack of citation of a verifiable source. He proposes to give a piece of Mathematica code as his citation.

My general understanding of the standards of sourcing in wikipedia is that this criticism would need to be published in the media for it to meet Wikipedia standards of sourcing, and that giving snippets of code would fall under the heading of "original research"; also that such code would be a primary source and that the Powers that Be on wikipedia discourage the use of primary source material.

However, things may work differently in articles about software. How is sourcing handled in Wikipedia software articles?

(Further documentation about NIntegrate in V.6 is on the Wolfram site at [5].) Pleasantville 20:14, 23 May 2007 (UTC)

Criticism section

The criticism section is not very useful as it is. It only contains explanation of why don't various criticisms apply. If editors cannot agree on what is and what isn't appropriate in this section, then it is better removed, isn't it? Wikipedia shouldn't be a "forum" where people debate whether Mathematica has some flaws or not.

There have been at least two iresputable facts in the criticism section
i) The cost is considerably higher outside the USA.
ii) Forums and mathgroup mailing list are moderated.
These are not subjective like "Its not as easy to use as Matlab, Maple or whatever you like". But still they get removed. It seems to me WRI want to control too much of what is written about Mathematica (or course, that is a subjective comment, as its only my opinion).
I think some of the criticisms should be put back, and people refrain from deleting those which are not subjective. 23:37, 28 May 2007 (UTC)

Yes, the newsgroup is moderated. But why is this fact objectively wrong? Moderation has both advantages and disadvantages ... of course it does matter which messages are rejected ...

Anyone is free to start a new, unmoderated mailing list or forum, and there have been several attempts, but unfortunately nobody is using them ...

Whether the newsgroup is wrong or not is perhaps less relavant, but it is a critism which has been raised many times. The section was called 'critisms' rather than 'faults'. And as for the pricing, I really can see no justification for removing that comment, when it was shown to be 80% or so more expensive outside the USA. The comment whne it was removed was 'everything is more expensive in the UK', but that comment is just not true. Many pieces of software have very similar prices if in UK pounds, Euros or $US. Mathematica is very expensive outside the US compared to the US. For an electronic download, there can really be no justification for this.

Because a criticism has been made, does not make it valid. One could equally move "moderated forum" to a section called "Benefits" and explain how the newsgroup is free from spam, off-topic posts, flames, etc Such arguments have been made too. It does not follow that electronic delivery implies that prices must be the same in different markets. Electronic delivery does not change the cost of local language/local time zone support, developing for international OSs, local legal and tax issues etc Th poster proves my original point that things cost more in the UK by citing Maple, which is priced higher in the UK albeit by less on his chosen example of Single Machine, Windows, Professional license. See counter example above. Give the facts: US and Euro pricing, and let the reader decide if that is fair price for themselves. JonMcLoone 11:07, 15 June 2007 (UTC)

There has been a suggestion that the Criticism section be "integrated to achieve a more neutral presentation." There doesn't seem to be any actual sourced material there to integrate. --Pleasantville 10:21, 4 October 2007 (UTC)
The first paragraph is entirely a criticism of a previous obsolete version of Mathematica so is irrelevant now.Greenmatter 08:09, 5 October 2007 (UTC)