Message Boards Message Boards

8
|
49048 Views
|
55 Replies
|
95 Total Likes
View groups...
Share
Share this post:
GROUPS:

What are some real-world applications of Mathematica?

I originally posted this on Stack Exchange, where it was suggested it would more appropriately be posted here. The only "real-world" application that meets the specified criteria offered so far (twice) has been Wolfram Alpha (I am not entirely sure that it meets the second criterion - would you choose to develop WA in WL, if you didn't have a bunch of WL experts and a WL development platform at your disposal?). In any event, I am interested in hearing about other real-life applications....

I have a theory, which I am in the process of writing about in a blog post, that other than in applications in mathematics (symbolic logic), Mathematica's primary usefulness is in encouraging a kind of intellectual dilettantism. (Of course, one man's dilettantism is another man's New Kind of Science: i.e. the speculative endeavors of a fertile, creative intellect might readily be mistaken for actual (scientific) achievement by less agile minds.)

I don't want this conjecture to be true: I'm as much a buyer of the hype around Mathematica as the next man. But I have noticed that, in practice, Mathematica somehow fails to live up to its apparently unlimited potential for encapsulating creative thought-product across an almost unlimited span of human intellectual endeavor. In my own work in finance, for instance, it has generally proved much less useful than other products such as Matlab. And, in general, when I look at the examples cited by Wolfram in its "customer stories", my reaction to many of them is: "Sure, you can use Mathematica to do that. But why would you, when there are much better alternatives available?". To take one such customer story from the field of 3D CAD, I don't understand why anyone would prefer to use Mathematica for such a task, rather than a specialist product like Solidworks.

I am aware of applications where the use of Mathematica is fully justified. In my own work, I have used Mathematica to price complex derivatives products, a field in which it excels. Likewise, I am somewhat familiar with Phil Zecker's work at EQA Partners, where he produced an outstanding risk management solution using Mathematica. In both these cases, however, there is no standard, specialized alternative offering in the field of risk management, as there are, for example, in engineering, CAD, app design, or music. In these areas, it seems to me, Mathematica is like a Swiss Army Knife: sure you can use it to dabble in almost anything; but I have screwdrivers, knives and corkscrews that do a better job for their specific purpose.

In any event I am looking for counter-examples of real-world applications to refute my hypothesis about Mathematica. By "real-world" I mean specifically applications in which:

(i) money changed hands (e.g. a commercial product was sold, or consulting fee earned) ; and

(ii) an alternative solution was considered and Mathematica preferred for specific reasons ("it was the only software we could afford or that was available to tackle the job", is not a valid reason to qualify the application as real-world, according to this definition)

POSTED BY: Jonathan Kinlay
55 Replies
Posted 5 years ago

Hey guys, just to revive this topic. I am a mathematics graduate and I have used Maple and Matlab as the university offered the license for both. I used to use Wolfram-Alpha and wasn't familiar with Mathematica, however, I got a copy of it in 2016 and started practising with linear algebra, complex analysis, number theory, several variable polynomials and general calculus. During my learning curve, I found it quicker to master and ended up doing none maths stuff like linguistics, animal data, country info, forex trading etc. I became hooked and have continued to use it even though I am not a researcher or physicist. I like how it is a blank sheet and hey presto you put the Mathematica syntax of anything properly, boom here is your answer. Comparing to Maple, I liked Maple but hated the fact you have to load a package e.g (with LinAlg) or (with differential geometry) whereas Mathematica you just type your wolfram syntax on the page and boom Bob's your uncle. With Matlab, you type in the editor sheet and then run the code..... I used it for numerical analysis and some linear algebra. Haven't bothered with it since my 2nd year and never used the symbolic toolbox.

POSTED BY: Tonde Kush

Jonathan, I think that in my initial response I concentrated too much on what I consider some of the weak points in Mathematica and did not emphasize some of its tremendous capabilities and what I love about it. When I read your last post and many of the others the useful applications seemed to be calculating something in this or that specific field. It is like Mathematica is a super graphical calculator and has been used to obtain results and plots in a number of different applied fields. I would like to approach your question from a different point of view. Mathematica also has superb capabilities in two less considered general areas.

1) The clear presentation of technical information and concepts.

2) Building and accumulating long-term ACTIVE and useful knowledge.

It's not enough to calculate a result or carry out a derivation or devise a proof. It is also necessary to present the results forcefully and clearly. Mathematica provides important tools in this area. As an example of the kinds of considerations that occur here I'm copying out one section of an essay in my Presentations application on Writing Presentations:

"Much of what I do is influenced by the graphics books of Edward R. Tufte: The Visual Display of Quantitative Information, Envisioning Information and Visual Explanations. Tufte deals principally with representations of data; we wish to extend consideration to representations of scientific and mathematical concepts using classical writing combined with the active and dynamic capabilities of Mathematica. This vastly increases our abilities to present information and also the possibilities of bad design. Here are some maxims and guides I have gathered, some of them from my experience and some of them straight from Tufte.

1) Try to formulate a clear idea of what information is to be conveyed before designing a presentation.

2) Designing and executing a presentation will often (despite maxim 1) lead to discoveries, new insights, or even flaws in our basic ideas so be prepared to redesign theory and presentations.

3) Be honest.

4) Do not simply copy the forms of pre-Mathematica graphics and presentations. They were designed for much inferior static media.

5) When appropriate combine graphical, symbolic and numerical data in one dynamic display.

6) Humans understand actions better than static displays. Particular actions that illustrate the use of particular principles (for example the application of a particular axiom) are better than animations.

7) A dynamic presentation requires a fixed background such that the action illustrates the concept. As a specific example, a dynamic graphic requires a fixed PlotRange. A dynamic manipulation of an equation would have as the fixed background the truth value of the equation.

8) Significant ideas will almost always require multiple presentations combined with textual discussion. That is why I am dubious of the Demonstrations project and the use of a single Manipulate statement.

9) Always examine a presentation for ways to simplify or eliminate extraneous items. Anything that does not support the message obscures it.

10) A useful technique for a presentation is the use of check boxes to turn various elements of the display on or off. Certain parts of the display may pertain to only certain steps in a derivation or a presentation. By toggling them the reader can more easily identify them and by turning them off when not needed the rest of the discussion will be clearer. We in effect obtain many versions of a diagram in one space.

11) Strive to calculate everything. It proofs your work, provides you with future tools, and impresses the reader.

12) Bring the material to the reader where he is using it. Don't make the reader jump to a different part of the document.

13) Use sectional organization and grouping with minimal scrolling. Put some presentations in temporary windows on the side of the notebook so they can be examined while reading the discussion.

This is an exciting new medium. We have much to learn about how to use it effectively so these maxims may change or be expanded."

I'm still standing by my guns on Mathematica graphics. They're good but could be much better and easier. It doesn't matter how many lines of code it takes. A one-liner might be difficult to understand or to devise. Nor does it matter what other programs have. The question is: can the Mathematica graphics paradigm be improved? The answer is a definite yes. And without changing most existing usage because high-level set-piece plots could still be provided as standard constructions from accessible primitives. And a sophisticated user could have far more and easier control, if desired, by working with the primitives.

As for building and accumulating active knowledge: Mathematica supplies unique and extremely useful capabilities. This is the use of Applications as I described in A Mathematica Style. This isn't my idea. It's something that WR designed and I'm just reminding you of it. Here are some places it can be useful: a student studying some course; a scholar writing a major work (I would call them actomes for 'active tome'); university courseware; a research project; development of a commercial application. There is nothing else like it. There is no competition. It is not just a single document, or numerical result, or demonstration or plot. It's a comprehensive collection of active routines in packages, notebooks, papers, style sheets, palettes, documentation and tutorials. It can be constructed over time and with experience and learning. It's useful. It's the very opposite of "dilettantism".

As for those who don't have Mathematica: too bad for them. It's for "the happy few". Maybe they aren't that few.

In an earlier post I raised the question: What do you think Stephen Wolfram would say about the strengths and potentiality of Mathematica? I will likely hazard a guess as to the answer to this question in another post. For now, I am able to provide some kind of answer based on solid facts, rather than simply on speculation. At least, we can be reasonable sure how Stephen Wolfram would have answered that question 25 years ago, because he did just that, in an article in the Mathematica Journal in 1990 entitled Who Uses Mathematica?

After an interesting review of some market research findings, Stephen concludes:

The overwhelming majority of people said that they used all of numerical computation and that they used graphics and algebra extensively. Calculus and matrix operations were next in rank

This summary is both re-assuring and troubling at the same time. Firstly, reassuring because Mathematica's core strengths as identified in WR's market research 25 years ago continue to be seen as such today: i.e. symbolic manipulation (algebra) and graphics. I am less sure about "numerical computation", however. It didn't come up explicitly in this thread. I suppose that the most likely explanation is that the use of numerical methods in Mathematica is so ubiquitous these days that we simply overlooked it; but, it might just be that numerical methods are seen as less important than some of the other features added to the product since this article appeared, such as interactivity, for example. Or it could be that rival products have superseded Mathematica in the field of numerical analysis since the research was carried out.

More troubling, for me at least, is that despite the frenzy of development activity over the quarter of a century, a process that Stephen Wolfram has described on more than one occasion as rapidly accelerating, Mathematica's perceived core strengths don't appeared to have evolved that much - they remain pretty much as they were in 1990.

Now, of course, a great amount of that effort, perhaps the majority of it, has been expended in enhancing those core capabilities - for example in areas such as mathematical finance, image processing and graph theory. But there have also been significant efforts to extend Mathematica's capabilities into new areas, such as music, CAD and machine learning, for example. The jury is still out on how successful such efforts have been, or will prove to be, over time. For now, some of them at least appear to be no more than short term dalliances, a case of "if we build it they will come", or even "we built it because we can" , rather than a response to the real needs of actual Mathematica users. It is this that creates the impression of "dilettantism" that I pointed to in my original post.

POSTED BY: Jonathan Kinlay

David Keith's post is illuminating in terms of describing his successful application of Mathematica in his work. Several of his points chime with my own experience, where I have found Mathematica to be a great prototyping tool. I think the key to Mathematica's usefulness lies in its core capabilities, so aptly described by David in his post, as follows:

One very important reason for that is that, at its heart, it is a symbolic math tool. For me, the first step in looking at most problems is to look at the mathematical dependencies. This means looking at equations and relationships in symbolic form. After that, even more intuition can be gained by trying real numbers and viewing these relationships graphically. Mathematica excels at both these tasks.

Likewise, Bianca Eifert also pointed out the usefulness of Mathematica's graphical capabilities for the preparation of figures for publication.

To define Mathematica's core capabilities only in terms of symbolic logic and symbolic manipulation, as I have done above, appears to be too narrow. David and Bianca are quite right to highlight Mathematica's graphical capabilities also, which are indeed exceptional.

I am tempted also to add Mathematica's facility for creating dynamic user interfaces. These capabilities, too, are outstanding. Where this falls down, however, is with the difficulties presented in getting such content in front of a non-Mathematica user. CDF is a great attempt at a solution to this problem, but too often fails in practice (and anyway requires the user to download and install additional software). Web and cloud-based solutions may be a better attempt, but entail further investment and development effort.

In summary, while no doubt WR would argue strongly in favor of Mathematica's capabilities across a much broader spectrum of applications, the product appears most effective in providing solutions for problems that entail:

  • Rapid prototyping
  • Manipulating mathematical symbols and equations
  • Graphing the results

I am somewhat uncomfortable with the limitation imposed by the first of these points, because it plays down Mathematica's capability to produce extremely polished, industrial strength solutions (see several of the Applications described on the WR web site for examples). However, I suspect that for the great majority of Mathematica users, the main benefit lies in prototyping rather than producing the kind of large-scale application more usually developed in languages like C++, or Java. Very happy to hear opposing views on this point, however.

POSTED BY: Jonathan Kinlay
Posted 8 years ago

I have degrees in EE, math, and physics, and have worked in engineering disciplines for about 45 years. My work has included electronics engineering, embedded system programming, material science, optical engineering, and physical modeling. The first years were done with Fortran and a slide rule. The last 20 with computer tools which have become more capable each year.

For the past 10 years I have worked mostly as a consultant in optical design and physical systems modeling. I use Zemax OpticStudio for lens design and Comsol Multiphysics (an FEA tool) for mechanical, electrical, and thermal modeling. They are each better at what they do than Mathematica.

I have been a Mathematica user for a bit over 20 years -- since version 2.

First, if all Mathematica did was "encourage a kind of intellectual dilettantism," it would be well worth the price. I have been an intellectual dilettante my whole life. Always interested in some new thing, often around science and mathematics. For me, it's the only kind of life worth living. And Mathematica's contribution to this has been enormous. And this has been a very practical endeavor. These entertaining explorations have almost always found a use in some later for-pay endeavor.

However, to specifically address the question, here are some practical uses I have made of Mathematica:

  1. Optical design tools rely heavily on optimization capabilities. But you cannot just give them some arbitrary starting point and expect good results. The first part of the job is to use prior work or first principals to define a design which roughly meets the various system requirements. Optical matrix methods are well suited to this. I use Mathematica to describe propagation of a few trays through a trial layout. I can even include unknowns in the symbolic description and solve for them to gain insight, or to solve roughly for element positions and focal lengths.
  2. With the same tool set, once an optical design has been done, it needs to be toleranced to predict the performance which will actually be obtained given manufacturing uncertainties. I use Mathematica to analyze the output of Monte Carlo runs to develop survival statistics which relate yield to the choice of specifications and binning.
  3. In the most recent release of OpticStudio, there is a .NET API. I will certainly continue to use the tools user interface for design work ans simple analysis. But I am now driving OpticStudio from Mathematica using NET/LINK for more complicated analyses of design behavior.
  4. In another job a few years ago I was modeling a piece of semiconductor equipment as it goes through heating and cooling processes. For this purpose, the system was adequately describe as coupled heat reservoirs, each of uniform internal temperature, coupled by thermal conductivities. Its really an easy problem of 1st order diffeqs. A complicated tool could have been used, but I had a useful model, with T vs time graphs, in minutes.
  5. For the same company, I spent a great deal of effort analyzing defectivity in a wafer-scale manufacturing process, seeking cause. Mathematica is a great tool for that.
  6. I recently needed an amplifier capable of driving a 10 uF load capacitance from DC to 50kHz. I used Mathematica's control system tools to design a feedback network to stabilize a commercial audio power amp IC for those specifications. At the start of my career, this would have been done with Laplace transforms and a slide rule. With Mathematica, the step response of this design on my oscilloscope looked just like the graph output by Mathematica.

This is a few of the concrete uses I have made of Mathematica in the past few years. But it does not come close to describing it's true usefulness. It somehow gets opened up early in any piece of work, and not closed until the end of the day. One very important reason for that is that, at its heart, it is a symbolic math tool. For me, the first step in looking at most problems is to look at the mathematical dependencies. This means looking at equations and relationships in symbolic form. After that, even more intuition can be gained by trying real numbers and viewing these relationships graphically. Mathematica excels at both these tasks.

I also have had the experience of seeing Mathematica fail to take hold in an engineering group. It seemed to center around three issues. The first was a threshold between starting up and obtaining a result. I have seen a lot of engineers trying to get a simple graph for an afternoon meeting go to Excel in frustration. Or because they had trouble importing data to begin with. These issues have been getting better, but WRI needs to do a better job of providing start-up training online. The collection of training videos on the Wolfram site needs a complete overhaul. The second issue is making the transition from a procedural language (like C) to the functional programming paradigm. This is something that is difficult to demonstrate in a completed notebook -- it's about the process, not the end product. The third issue is the deplorable lack of debugging tools. This is especially a problem when you need to develop a large single function in a single cell. (a result of the functional paradigm) The usual suggestion is to insert print statements. REALLY? This is how we debugged our Fortran programs 40 years ago. Modern programming tools have had good debug environments -- single step, watch lists, breakpoints -- for ages. And engineers are used to this. This has been completely neglected by WRI. Workbench is poorly documented, and so lacking in commitment and support that you have to ask for a beta Workbench 3 just to get it working with version 10. There is a built-in debugger, which is also poorly documented. I inquired about it from tech support a year or two ago -- They suggested I use Workbench. This is a very important issue. New engineering users which encounter such a primitive debug environment will consider the tool disqualified. Mathematica is a great tool. Getting new users over the threshold, to the point where they see benefits, should be a priority.

Best regards,

David

POSTED BY: David Keith

Frank, if I were to summarize as follows:

Mathematica's distinct competitive advantage lies in symbolic logic and symbolic manipulation and its principal areas of application are those in which such features are of primary importance, such as mathematics and mathematical finance. Everything else is just "me-too" functionality, of no special significance.

Do you think Stephen Wolfram would agree? What do you think he would argue?

POSTED BY: Jonathan Kinlay

I'm not an expert in Matlab. I've used it for a couple on-line courses, including convex programming and computational neuroscience.
I think that Mathematica's symbolic manipulation is a distinct advantage but I think there are other advantages. Mathematica supports procedural, rule based and functional programming. Matlab only has procedural programming. Also, in Matlab, the core data type is a 2nd rank matrix of real numbers whereas Mathematica is more general. I started an online course on probabilistic graphical models but dropped it because I got frustrated with trying to deal with higher than 2nd rank objects in Matlab.

POSTED BY: Frank Kampas

What about the annoyance of having cells, structures, and arrays (matrices?) which are just 'list' in Mathematica.

POSTED BY: Sander Huisman

Yes, it was the cells and structures that drove me crazy in the probabilistic graphical models course.

POSTED BY: Frank Kampas

Frank, I would certainly argue that symbolic manipulation is a core competency of Mathematica and an area in which it enjoys a distinct competitive advantage. Question is, is there anything else?

POSTED BY: Jonathan Kinlay

Many! What about calculations with regions? How about GPS data and plotting them on maps?

How about the integrated knowledge? You need the viscosity of ethanol? Boom there it is! You need the wind direction in honolulu in christmas eve in 2004? here you go! You need the volume of dodecahedron? Done! largest building? check! Mountains? Yes! Bridges? jup! All the stuff you can imagine for any element or isotope? Sure thing! genomes, planets, volcanoes, countries, cities, calendars, aircrafts, airports, dictionary, ...... This is EXTREMELY useful. Not only do you have acces to it directly, it also is immediately in a format that you can work with, no need to import files and 'decode'....

POSTED BY: Sander Huisman
Posted 8 years ago

My co-question in this regard: do someone think that the very concept of 'symbolic manipulation' is friendly for anybody outside WRI (sub)world? I'm not saying about attempts to make "introductory explanations" with the concepts of the same flavour.

POSTED BY: Timur Gareev

Bianca - oh, I forget to thank you for the anecdotal evidence in favor of Mathematica in the context of physics research.

I wonder, is Mathematica the market leader in that field, would you guess? Is it a mix of the usual suspects? Or is there some dominant market player, like Solidworks in CAD?

POSTED BY: Jonathan Kinlay

No idea, sorry. I'm sure it strongly depends on the sub-field (I'm in theoretical solid-state physics) and the university or the "tradition" of the research group. We use a lot of Fortran because there is an existing code base and it makes very little sense to translate it; we also use both commercial and open code from other groups which is all written in Fortran. One of our projects is in C. Any code that has to be fast has to be compiled, so those two would be the natural choices. Smaller pieces of code like scripts for analysis are a mix of different shell flavors, awk, Python, Mathematica... basically depending on who wrote it and whether it's supposed to run on a Linux cluster or on a Windows pc. Gnuplot is also quite popular for quick plots as well as publication figures, and a few people like Origin. As for Matlab: No license -> no usage.

POSTED BY: Bianca Eifert

In Mathematica, symbolic manipulation is part of the core functionality. In Matlab, it is an add-on.

POSTED BY: Frank Kampas

Bianca,

I largely agree with your point about Mathematica providing a framework for add-on products, rather than a stand-alone application. (That said, I am not 100% certain that WR would agree - or, rather, I think they would like it not to be true, somehow: perhaps through the use of CDF or cloud-based applications.)

Anyhow, everything you said applies equally to competitor products like Matlab. So the question becomes, what are the specific advantages of Mathematica in relation to its immediate competitors? In which areas of application does it excel? Are there any? Or is the Swiss Army knife analogy apposite?

POSTED BY: Jonathan Kinlay

You're absolutely right, my points above won't give us new insight when comparing Mathematica to Matlab. You know, it's really very telling that we instinctively consider Matlab to be the direct competitor (and I'm sure it's true if you do some market research). Because if we actually considered the Wolfram Language "another programming language", then we'd compare it to Python, Ruby, R... Maybe not to C or Java, but any of the highly abstracted interpreted languages would seem like a natural point of reference.

I do believe that Wolfram Research wants to go in a direction of establishing the Wolfram Language as a language, I think that's quite obvious. Let's see what becomes of that. It's a great tool by any name.

Personally, I can't give you any thoughts on Matlab because I've never used it - quite simply because my university has no site license, and it doesn't seem sufficiently different from Mathematica to make me want to buy a personal license. (Certainly not when there are so many languages out there that I can learn for free.)

POSTED BY: Bianca Eifert

As far as Matlab vs Mathematica, it should be noted that there are free online courses that teach Matlab and others which use Matlab. In many of these courses, a temporary license is provided. I've suggested to the sales team that Wolfram Research do something similar but have been told that the videos provided on the web site are just as useful. I don't agree with that statement.

POSTED BY: Frank Kampas

I suppose the free cloud plans may be useful for someone who just wants to try out the language...

POSTED BY: Bianca Eifert

I've read this thread with great interest, and just wanted to say that I feel @Eric Rimbey has touched upon a very important point. We can't really compare the Wolfram Language to other programming languages in a context of commercial software development.

With other languages, you can create a stand-alone application that your customer buys and uses. Emphasis on stand-alone. There may be all sorts of challenges on the developer's end of things: Packaging interpreters or libraries with the final product, or buying additional tools to do something-or-other. But the customer shouldn't worry about any of this. (Shouldn't even notice it, ideally.)

With the Wolfram Language, the user basically needs a Mathematica license. Is your application amazing enough to push that additional cost and hassle on the customer? No? Well, then you can only sell to existing Mathematica users. That means that the developer is confined to producing add-ons to an existing software suite. There's nothing wrong with that at all, but it's a completely different market compared to software development done in other languages.

In some fields, this may not matter because Mathematica is wide-spread already. In other fields, CDFs or a web service doing some computation on the seller's servers may suffice, and a stand-alone program isn't even the target. Those are the fields where you will find successful Wolfram Language applications.

By the way, this is what people usually mean when they say that the Wolfram Language isn't really a programming language.

Edit: I would like to emphasize that for all the other cases of "money changing hands", this is not particularly relevant. I just wanted to comment on the "programming language" aspect of Mathematica.

POSTED BY: Bianca Eifert

You can produce Wolfram Language stand-alones applications that run without license via wolframscript. Apparentely very few people know it, and even less people know how to do it. I run my wolframscripts everywhere I can with no license.

I also recently discovered this great way to deploy!

POSTED BY: Jack I Houng

Jack, ditto:

Are you able to give some specific example of how Wolfram script enables you to deploy stand-alone applications? I'd like to dig into it a little more, as it may be that I (and others) are missing a trick...

POSTED BY: Jonathan Kinlay

Are you able to give some specific example of how Wolfram script enables you to deploy stand-alone applications? I'd like to dig into it a little more, as it may be that I (and others) are missing a trick...

POSTED BY: Jonathan Kinlay

Szabolcs, yes I caught the distinction and blurred it, deliberately. Because I was trying to frame the question in a broader context - how widely in Mathematica (WL) used in physics research, generally? You said that your

impression as a physicist is that should be a significant percentage

Well, thats the point. My impression as a professional econometrician might be that Mathematica is widely used in econometric research. But that impression would be wrong. How do I know what? Because it is customary for researchers in that field to mention in their research papers the software used in the research (not always, admittedly). And, as I mentioned, I know quite a number of them.

Sander's experience mirrors my own in this regard, it appears.

So the question stands: can anyone (an academic researcher in physics) offer any anecdotal evidence about the usage of Mathematica in that field?

POSTED BY: Jonathan Kinlay

I'm a PhD student in physics, and in our group, we use Mathematica to analyse data and prepare figures for publications. We don't publish as CDF, because the relevant journals want PDF. We could certainly go the extra mile and offer a CDF for download as supplementary material, but so far I haven't seen that. (Haven't specifically looked for it either though.)

We also use Mathematica in teaching, mostly because the excellent documentation system makes it so easy to grasp for complete novices, and because it already comes with all the functionality that you might have to install separately in some other languages. (Like graphics capabilities in 2D and 3D, or all sorts of specialized functions.)

POSTED BY: Bianca Eifert

Eric,

Let's dispense with any continuing misunderstanding of the criteria I specified to qualify an application as "real-world". I did NOT say that the application had to be "re-sold" in order to qualify. What I said was that "money changed hands". This could involve re-selling (and I gave several specific examples of such applications in subsequent posts) or it could involve consulting fees. That deals with the straw-man objection that my criteria would disqualify Excel as a real-world application - because vast sums of money have been earned in consulting fees in relation to projects in which the deliverables included an Excel workbook and/or VBA code. As if that was not enough, I went on to make clear that "money changed hands" also included applications that were developed by paid researchers, because their salaries constituted money changing hands. Enormous sums are expended on the salaries of Wall Street quants, almost every one of whom, in my experience, makes extensive use of Excel. So - subject closed.

You asked what my perspective is. It is to find an answer to the simple question: what is Mathematica for?

I went on to make the specific point that, yes, of course, you can treat Mathematica as a Swiss Army knife, capable of duplicating what can be achieved in Excel, Powerpoint, Solidworks, or any number of other software programs. But if that is ALL Mathematica is, then frankly it's pretty unimpressive; because not only are there existing, often less expensive products that can do these things - but they can often do them more easily, or better than Mathematica. Sure, you can manipulate a spreadsheet and do Pivot Tables in Mathematica; but why on earth would you? Just because you can?

So the question I am really asking is: what are the core elements of Mathematica that make it unique, exceptional or which give the user a competitive advantage vis-a-vis other software tools? And I went on to ask the question, are there any such competencies, other than mathematics itself, specifically symbolic logic?

POSTED BY: Jonathan Kinlay

David Park's post contained a lot of interesting points. But one comment in particular caught my attention, because I found it rather shocking:

I haven't done a thorough search but I suspect that you won't find a single Mathematica notebook or CDF document on physics archives.

Can this really be correct, does anyone know? Can it really be true that Mathematica's penetration of the market for physics research is so limited?

I would find it quite remarkable that Mathematica has enjoyed so little success in a field so closely tied to its core competencies. But perhaps I shouldn't be surprised; no less shocking to me is how few professional econometricians and statisticians make regular use of Mathematica. I am not claiming for one moment that no professional researchers use Mathematica to do econometric or statistical analysis - just that I don't know any amongst my quite wide circle of contacts in those fields. They all use something else: Matlab, Gauss, RATS, Stata, etc. This is despite the fact that Mathematica has all the necessary capabilities (and more) to carry out this kind of research.

So there may be something interesting going on here, which I suspect has less to do with the technical challenges of the product (which of us has not struggled with the idiom, from time to time?) and more to do with WR's business model. There is a lot more to say on that topic, but first I would be very interested to get some qualitative feedback from subject matter experts about their experience of the usage of Mathematica in their own field of expertise.

POSTED BY: Jonathan Kinlay

It is quite limited indeed; I, myself, have used it throughout my bachelor, master, PhD and now postdoc. But I was already using before in high school too. But I'm one of the few who uses Mathematica, 'everyone' is obsessed with Matlab! And also books tend towards Matlab... I think it is because a lot of people think Mathematica is only for equation solving, and have no idea it can do (almost) everything Matlab can do.

POSTED BY: Sander Huisman

Honestly, I think it's plain old intertia. When first walking into an environment (class or research group) where either Matlab or Mathematica is used, most people won't use the respective other program just for the heck of it. They will use what everyone else is using, which makes a lot of sense (learning and exchange). Matlab and Mathematica are just too similar to steal users from one another in significant numbers, they can both only hope to get to the newbies first and gain a foothold that way.

POSTED BY: Bianca Eifert

True indeed! My previous university switched from Maple to Mathematica 1-2 years ago. So now students will 'grow up; with it (I guess). Though for the experimental physics I've seen very little usage of Mathematica, for theoretical, yes, lots of use!

POSTED BY: Sander Huisman

Can this really be correct, does anyone know? Can it really be true that Mathematica's penetration of the market for physics research is so limited?

David is referring to publishing documents or articles in the CDF format. This is something completely different from using Mathematica as a physicist, and it's different again from publishing Mathematica packages related to physics.

It is very hard to estimate how many physics journal papers may have used Mathematica during research because Mathematica is not typically acknowledged. My impression as a physicist is that should be a significant percentage ...

Regarding packages related to physics, just take a look at hepforge: there are plenty of Mathematica packages there. https://www.hepforge.org/projects

Yeah it is different, but if one is totally fixated on Matlab, one will not publish it in Mathematica CDF files....

POSTED BY: Sander Huisman

Physicists may use Mathematica for calculations, using notebooks as scratch pads or programming sheets. But then they copy out the results and insert them into a LaTex file to eventually produce PDF files, which they load up to the physics archives. They don't use it that much for communication - something it can be really good at. This is mostly my guess so maybe others can give more data. And perhaps there are a few who can see Mathematica applications as a long term development platform but it's a little like the density of intelligent live in our galaxy. Why aren't they here?

One problem may be that there are not enough technical people who have Mathematica. You can't count on communication in general with Mathematica notebooks. CDF documents were supposed to be the solution. In my opinion they are not good enough yet. It is not possible to send packages and style sheets with a CDF document and any one who has developed capability with added routines will probably use them. Of course, once many people see good CDF documents they will probably go to Mathematica - so why not just go to Mathematica notebooks in the first place?

There is a need for people to see good long term applications for accumulating capability. There may be good ones out there but they may also be quite private. Who wants to share their proprietary expertise?

The reason to choose CDF over PDF would be a desire to include interactive functionality. But if you publish a paper as a PDF, you can still offer a link to additional material: A Youtube video, an app on your website, or maybe a publication on the Wolfram Demonstrations Project (hey, why not). And yet, with a traditional paper, you're on the safe side: People who think that the interactivity is too flashy and maybe not entirely super serious can just ignore the link (relax, it's just a footnote, the actual paper is totally super serious).

That aside, most researchers are just not free in how and where they publish: If it's not in the "usual suspects" group of journals (preferably with a high impact factor) and you can't find it through the field-relevant search portal, you might as well publish on the sidewalk. In chalk. Before the rain.

For more informal communication (e.g. direct exchange between coworkers), a Mathematica notebook will often do just fine, and generating a good-looking CDF is a bit of an unnecessary step. And if your coworker doesn't use Mathematica, you're better off finding a data and presentation format that both of you can actually edit.

POSTED BY: Bianca Eifert
Posted 8 years ago

I totally agree with this post and it seems to me that I share same (positively inclined, by the way) concerns with Jonathan. There is 90% of the concern on the part of business model and communication strategy. I would say, it seems there is a lot to be done to UNDERSTAND the behavioural patterns of new (potential) users, especially in corporate (!!!) sector. I'm not quite sure that target users are well-defined at all - there is a nice mixture of cure-it-all and niche ad-hocery. Self-reference criterion is almost always a poor adviser, but I remember a lot of caveats on my road to Mathematica (absolute independent on any background or tutors advices). I believe that I've passed the starting 'death valley' of the road, but looking back, I feel surprised that I passed them. And these are not only technical issues. So "sleeping potential" of MMA is a great task for research, as marketing so academic. (I'm not saying here about simple QWERTY effects and network externalities that are obvious form many posts).

POSTED BY: Timur Gareev

I would just like to comment on this one:

I would say, it seems there is a lot to be done to UNDERSTAND the behavioural patterns of new (potential) users, especially in corporate (!!!)

Actually, if the corporate world was such a relevant target market, Excel Link would not be an add-in, let alone sold as an extra (now that it is managed/owned? by WRI).

Have Player Pro, or Enterprise signed CDF, communicate with Excel (or a CAD system, or a ...). Have a message appear, near the clock / notification bar, each time the kernel is launched, saying "your computations are now being powered by the Wolfram Language" (or every x minutes on a non pro, non Enterprise signed scenario). And all that large amount of several hundred/thousand employees companies that just have one single Mathematica license, will, at the very least, see a considerable growth on the amount of potential users that have heard of the Wolfram Language.

Afraid of someone duplicating all functions of Mathematica, by just "re-branding" them into an Excel add-in? As for the CDF restrictions, if it is illegal, wouldn't that be enough? Or, actually, wouldn't it be a complete marketing success if it happened? Is the Wolfram Language potential paying market really the type of market that will put itself into illegal scenarios? Before CDF, we had to have our dynamic content distributions signed directly by WRI. Would that reduce the fear factor? (although, not sure how many corporates would be accepting that...)

The Private Wolfram Programming Cloud is another technology that seems to have been packaged to enter into the corporate world by the front door, while we, in the corporate world, know that the most successful entry is made by the insiders... Make a free version and sell tokens (similar to the public cloud, but with the price reflecting the fact that processing hardware and maintenance is by the client). This makes it by-pass all sorts of budget check-points, while it is gaining momentum. A lot of software is more and more based on tokens (from the very small vendor to the several times "bigger" than WRI offering vendor). The current starting cost not only needs to get approved by two hierarchical levels (on the companies I know), but also needs to be on the year budget from the start... This makes its entry extremely difficult. Make it accessible by the passionate (that will just put $25, from his own wallet, to give it a try), and make it grow, with time, to the full time no token product.

Just my 2 cents... (the amount of times I discussed, in the past, the above corporate related topics, have probably already accumulated to a Dollar...)

POSTED BY: Pedro Fonseca
Posted 8 years ago

Jonathan,

I hesitate to respond, because I'm not sure I understand your perspective. Your two criteria for "real world application" seem contrived on purpose to make it difficult to satisfy them. Your item (ii), for example, is self-contradictory. If there is no other application that does the job better than Mathematica, then why shouldn't Mathematica get credit? And item (i), is a very rigid, specific bias. Is Excel not useful in the real-world, because most users don't re-sell Excel "applications"?

Again, I'm not sure what your perspective is, but you seem to want to compare Mathematica (or Wolfram Language) to development languages/platforms that generate stand-alone applications. Perhaps that is a direction Wolfram is heading toward, but I've never viewed Mathematic in that light. Mathematica IS the product/application. There are myriad problems for which Mathematica offers a space for exploration, solution, invention, analysis, etc. At the end of all of that, if there is no stand-alone application to sell, then you dismiss it as not real-world and therefore (I infer) not particularly valuable. That's fine if that's your perspective, but why should I feel compelled to accept your perspective? Or, to put it bluntly, what's your point?

I've seen Mathematic in contexts that I consider real-world: Public school education, Private professional training, Generating assets for book publishing, Engineering problem solving, Alternative to Excel, Alternative to PowerPoint, Data analysis, Prototyping.

These observed real-world usages are mostly "accidental", in that I'm not really in a position to hunt for Mathematica in the real-world, and so I suspect that others could expand this list greatly. I don't think anyone is making a claim that Mathematica is a silver bullet that solves all real-world problems, nor that Mathematica's breadth of functionality is such that no other applications will ever be needed. So, again, I'm curious about the point you're trying to make, what actual relevant question you're trying to ask, or what methodology suggests your specific criteria.

POSTED BY: Eric Rimbey

I wanted to point up a couple of additional "real-world" applications with which I am familiar.

1) DataModeler. Evolved Analytic's genetic programming add-on makes use of Mathematica's facility with symbology to perform symbolic regressions. It is in many ways an ideal application, since its plays to several of Mathematica's strengths in symbolic representation, while adding real value to the core product.

2) UnRisk - Another Mathematica add-on that focuses on derivatives pricing (which in many cases can be handled very effectively in Mathematica as close-form analytical solutions). It looks to me as if WR made a deal to incorporate UnRisk's functionality into the core product around version 8.

Other examples are listed here.

POSTED BY: Jonathan Kinlay

Frank - your application qualifies on every level, I would say. I for one would be interested to learn more (perhaps in another post?) about the distinction you seek to draw between variability and uncertainty.

POSTED BY: Jonathan Kinlay

variability is a natural phenomenon. uncertainty is in the human mind. today it rains, tomorrow, it doesn't. that's variability. a forecast of 40% probability of rain illustrates uncertainty. Mathematica was used to "deconvolve" uncertainty from variability. http://scitation.aip.org/content/aip/proceeding/aipcp/10.1063/1.54746

POSTED BY: Frank Kampas

I used Mathematica for the launch risk analysis for the Cassini mission to Saturn. Perhaps that should be regarded as an "other-world" application. My role was the uncertainty analysis. I used Mathematica for prototyping calculations and for separating variability from uncertainty.

POSTED BY: Frank Kampas

Thanks for posting it here. I think the discussion it generates is interesting. StackExchange would not have given room for such a discussion. I wanted to make sure you understood that your post was not closed on SE because people object to it. It was closed because the format didn't fit.

There are some terrific replies here, which I want to spend time thinking about before responding. However, I did want to answer Sander's point about my "weird" definition of real-world, because it has come up elsewhere.

The definition is somewhat strained, I agree, but deliberately so - one of the concerns I expressed about Mathematica is that it may encourage a kind of "intellectual dilettantism". One way to distinguish between genuinely useful endeavor (whether commercial or research-oriented) and dilettantism is that the former creates value (hence worth paying money for), while the latter typically does not. I would argue that genuine academic research falls within the ambit of my definition, since academics are paid researchers (albeit paid quite poorly, in many cases). While I agree that the end-goal of academic research is publication rather than financial reward, the former is generally regarded as part of the job-description ("publish or perish").

That said, even if we allow that academic research falls within the scope of the definition, I can allow that the wording is deliberately skewed towards commercial applications. This, too, was deliberate, because Wolfram's success depends no less (and perhaps more) on its penetration of commercial markets than its adoption in the academic world. (The reason is probably self-evident: commercial organizations tend to pay full-freight; academic institutions do not). Wolfram itself recognizes this. As evidence, I would point to the fact that most, if not all, of Wolfram's "customer stories" involve commercial applications.

To sum up: it may be that one ultimately draws the conclusion that the real benefit of a product like Mathematica is to be found in its applications in academic research. But I would suggest that is not a view that would likely be acceptable to Wolfram, even if it were true.

POSTED BY: Jonathan Kinlay

I think you have to give an example in order to say if it will be worthwhile to code it in the Wolfram Language, or if another (C#, LabView, Excel, Matlab, Python,...) if better suited. I specifically added also not-real programming languages like LabView and Excel. If one wants to work a lot with tables in a grid like pattern, than Excel might be much more useful than to use Mathematica or Matlab. Also LabView can be incredibly useful if one wants to control a lot of external apparatuses. The coding (drawing) is very slow and not very coherent and often leads to spaghetti code... but in some things it is far superior. If you want to make a simple program that does some image-analysis, Mathematica might be a very good place. However I would not use it controlling external apparatuses; simply too complicated. Or if you want to make software that periodically creates graphs from live data, Mathematica might be very useful to do that!

I think all the graphs that are made by it and published in all the journals are all good examples of real-world use I would say! Or all the theoretical derivations made using it, also very good real-world usages. Or the courses in Calculus that use Mathematica to get students familiar with integration and differentiation, again, very good real-world use. If you're talking about real-world application deployed online (like WA), yes those are limited, but all the small little ones that are not 'deployed', but rather small script that people run to edit/analyse/view/process data; I'm sure these are used in a lot of places.

POSTED BY: Sander Huisman

I find your definition of "real world" kind of weird:

"money changed hands" surely does not equal real-world. Because now you exclude basically all academics! A HUGE number of academics do there analysis using Mathematica/Matlab/...... without getting money for it! It is to publish something. But not directly getting money.

I'm one of the very few in the group that I'm working in that uses Mathematica, but if I compare speed of building software to do analysis, Mathematica trumps any Matlab implementation. Nearly all the code is shorter, more legible, and much faster to implement. I generally have little programs done while the others are still struggling to import some data or so.... Of course that varies a lot on what you do exactly!

POSTED BY: Sander Huisman

I will not go directly to the application topic, since I think that some background is of interest. Also, I don't have one specific application, but I will actually be talking of the application I do of it. So, I'm on the category (from David Park answer):

There are many more who use Mathematica in their work but many of them say it is very difficult to get others in their company to use it.

I work at the engineering department of a big commercial company, on the area of water treatment (we design, build and operate water treatment plants). I'm not a programmer, and my formal training (and day to day work) is on sanitary engineering (a specialization of environmental engineering).

Our typical engineering tools are MS Office and CAD softwares (besides some other specialized commercial softwares for very specific tasks, plus an ERP, etc.)

On most of my use of Mathematica, I can't say that it would be the unique solution, but, for me, it is the most productive solution, both in time and cost (which is the same thing, but also not exactly).

I basically started to use it as a MS Excel substitute, or an Excel on steroids. Excel is probably the most used tool in the engineering environment. It is so ubiquitous that, when a client, partner or supplier asks for some particular calculation share, they are expecting a MS Excel spreadsheet, and nothing else; no need even to discuss on it. But, as soon as we want to evolve on our use of this calculation tool, it starts to become too much of software engineering (inventing strategies to accomplish things that it was not designed for) and not our own field engineering. I think of this limitation as equivalent to trying to build the ultimate slide ruler, linking lots of sliders, rotating disks, translation curves, etc., into a single cardboard..., when computers are available... (its a mental image I have..., that kind of graphically shows the absurd limitation). I have tried Matlab several times in the past, but never found it adequate for my needs (I guess it depends a lot on the details of what the person exactly does).

Introduced to Mathematica 5.2, I started using it more and more, and, at the same time, adventuring more and more on computation fields that I would not have dreamed of. And yet, I have been working on the same engineering field for the last 17 years.

While using Mathematica, I started to see my thinking process change, I would even go to the point of saying: radically change. I passed from one variable to full space exploration, and from (fictitious) exact engineering, to taking into consideration uncertainty and measuring the risk.

Here's a time sequence that, while being false/simplified, in someway explains the use I gave and give to Mathematica:

  • prototyping tool for algorithms being programmed in VBA (simple programming)
  • exploration of analytical solutions for some differential systems (true CAS)
  • package development for some calculations, substituting Excel on the daily work, but not package selling (automation, more sophisticated programming work)
  • Dynamic interfaces for client exploration of our design concepts (Dynamic, Manipulate, etc)
  • CAD interfacing for direct calculation of 3D networks (graphs functionality, etc)
  • analysis of temperature, humidity and wind direction at multiple sites. As a funny example, for instance, checking wind direction predominance, to determine floating debris accumulation points, on slow flowing water systems. (use of the online curated databases)
  • image processing of 2D data acquisitions from laboratory experiments (use of the image processing capabilities)
  • machine learning algorithms for multiple tasks, including on image data / film processing (use the machine learning new capabilities)

Obviously, this is a very short list, and does not exactly reveal all the uses I gave to it since version 5.2. But I think that one interesting thing it reveals is that, along the addition of functionality, I have added the new fields into my daily work AND NEED, while still being on the same job.

Would I have guessed that, one day, I would be applying machine learning and image processing to my daily work? Definitely not. It is not my core field, and very far from it. So, is it a real need or a need that I have invented? I think that there's no actually distinction of those two, but I can say that the use is real, and the cost (learning curve) / benefit has been extremely advantageous (when I say learning curve, I'm thinking on it being so short for the new fields that are added, that I can just apply them without actually thinking that I'm learning them). Do I really learn this new fields to the point that I can say that I master them? As with most other tools, in order to avoid mistakes, its application needs some intelligence. But, I think that the equilibrium I'm getting is of extreme benefit.

You mentioned CAD capability. Does it make sense or not that Mathematica goes in that direction. I can say that I'm eagerly waiting for a more complete regions framework (mesh and non mesh being mixed by boolean operations, etc.), and for it to be faster, for a very specific need I have on the CAD world; and I can say that I'm pretty much at ease with CAD software, working, on average, at least one hour per day, and having programmed some add-ins for some CAD packages). Of course that Mathematica is (currently?) extremely far away from covering the functionalities of CAD tools. And also that CAD tools are currently very far away from covering computational environments' functionalities. And, although connection seems the obvious solution, some particular applications (like mine), work better if the integration is absolute. I'm even thinking on candidating to the next Wolfram Innovation Summer School, to help me on one of my less standard projects.

So, although I haven't mentioned on my list: Regions, FEM, and other of the new stuff, I know that for a lot of them it is just a matter of a few more months for me to start to need them... Some I haven't used because they are still not well fine tuned. Others, like FEM, are a little away from my preference, which would have been FVM, but still a good addition, for which I have practical uses in mind.

But, for instance, why don't I just use a specific image processing tool from the market? I think that the answer is integration. If it is integrated on a well known environment, I can just start using it, with a very favorable learning curve, and mixing up with other fields, without being a programming specialist.

To answer directly to your post:

applications in mathematics (symbolic logic)

Not my case

Mathematica's primary usefulness is in encouraging a kind of intellectual dilettantism

I don't think that this is my case. I apply it to real life cases, from which I take monetary benefit, on a very competitive environment.

of the hype around Mathematica

I have always found it interesting that one can use superlatives for a lot of products, including a lot of software products used on the engineering field (of any kind and any cost), and yet, for some other products, its use is judged abusive and offensive. I guess this comes from the duality and the distance, on many aspects, between the commercial and the academic world.

Mathematica somehow fails to live up to its apparently unlimited potential for encapsulating creative thought-product across an almost unlimited span of human intellectual endeavor

I think that all tools are doomed to fail on such a big phrase. But, I give credit for trying, and also, for not being so far away from the target (in relative terms). Considering that I make real use of some functionalities that I never thought I would be using, I think that the tool has achieved something. Do I see shortcomings? Yes. A lot. And yet, I just keep using it.

(i) money changed hands (e.g. a commercial product was sold, or consulting fee earned) ; and

Working in a commercial environment, on the modern world, while producing something that doesn't bring money back, is currently impossible. So, my work with Mathematica is being consciously paid for.

(ii) an alternative solution was considered and Mathematica preferred for specific reasons ("it was the only software we could afford or that was available to tackle the job", is not a valid reason to qualify the application as real-world, according to this definition)

Alternative solutions are constantly being used by my peers. I have used alternative solutions, and I'm forced to go back to them from time to time. And I can't emphasize more the "forced" word.

And, from David Park's answer:

1) Mathematica and the Wolfram Language are difficult to learn.

I think that difficulty is relative. I think that it has to be seen as an effort / benefit ratio. What happens is that the effort is not always possible. But passing away from the benefit is less and less affordable.

One thing they might do is to give users freer access for adding to the documentation, maybe like Wikipedia

I agree. Like two sections: WRI and Community section

3) Mathematica is not as stable over versions as they nonchalantly claim.

Probably true. I, myself, prefer a good design to a backwards compatible design. I think that this depends on how you use it. If we make a lot of development on it, having to review it every single time there's a new version, can indeed be annoying. It's not my case, and I actually wish they were more actively correcting not so well design features.

6) Diffuse effort. Instead of perfecting the "Application" model for building capability over time, Wolfram Research has been drawn into many other endeavors.

Indeed. Although, its clear that what is currently presented is a product that can cover many more user applications, and that, because of it, starts to get more known. Eventually new users bring money, and money brings development resources. I think that adding new entire fields, from one version to the other, is great. It is probably the balance between the maintenance of the existing ones and the development of new ones that is not fine tuned. On my personal case, what borders me is the fact that many bug reports (the ones that are really bugs), take so many versions to get fixed (and I'm talking of bugs that do have a fix, and not bugs that are on the edge of human knowledge). I have hope on the new momentum the fast release track has brought, and I'm just hoping for that equilibrium to be found.

So, some conclusions:

  • I use it on a commercial environment.
  • It allows me to do things that I couldn't do before using it.
  • It has been fun to follow Mathematica development, and to belong to its community of users.
  • Some fine tuning (including less bugs, etc), is in need...
  • ... and yet, there's still a lot of functionality and entire fields that I'm missing.

And, as Conficius said:

Choose a job you love, and you will never have to work a day in your life.

Mathematica helps a lot on that direction.

POSTED BY: Pedro Fonseca

"Intellectual dilettantism", I like that! I tend to call it "Geeky bagatelles".

I've sold around 300 copies of several Mathematica applications and done a little paid consulting - but it is far from a living. I know there are people who have appeared on this forum who earn money through Mathematica consulting. There are many more who use Mathematica in their work but many of them say it is very difficult to get others in their company to use it.

Then we should keep in mind that research and exploration, even if not profitable now, may have a significant impact on the future. "What is the use of a new baby?" and "Someday Sir you will tax it." and all that. Just from reason and knowledge of Mathematica's features it should have a greater impact.

But it's not having a significant impact. Just one example is the publication of physics documents. I haven't done a thorough search but I suspect that you won't find a single Mathematica notebook or CDF document on physics archives. Mathematica notebooks with their active and dynamic capabilities should, by all rights, blow static PDF documents out of the water! But Mathematica hasn't even gotten its toe into the water.

The real question then is: Why doesn't Mathematica have a greater penetration in science, education and the commericial world? This is a problem to be solved. If Wolfram Research doesn't see it as a problem then it won't be solved. Mathematica aquires more nice features with each version but this hasn't solved the problem. Here are some of my suggestions, for what they're worth.

1) Mathematica and the Wolfram Language are difficult to learn. This is mostly because of the sheer size of it. The core is pretty good and the edges are pretty ragged. WRI has done a lot with documentation, but they could still do more. One thing they might do is to give users freer access for adding to the documentation, maybe like Wikipedia. More practical examples might help a lot. Just formalistic usage and then jumping to a complicated "Neat Example" is not always sufficient. To give an example: while answering another recent posting on Wolfram Community I started using the ExtractArchive routine. This sounds very nice. It can extract a zip file and install an application on the user's computer. But then it turned out that it was very limited. There can be no files in the existing extraction folder else it completely fails. This means it cannot update an application, such as can be done if one downloads a zip file and unzips it with WinZip. I checked its options and found CreateIntermediateDirectories, but without any explanation of what that means. One can't delete the application before using ExtractArchive because there may be important files there that are not updated. One has to do a little research project to find if a routine works or not, and sometimes it doesn't. There are too many routines like this that just pretend to be useful but in fact are not.

2) Mathematica graphics is extremely difficult, cumbersome and convoluted! It is a major negative. I've communicated with many people who complained about it. Its main flaw is that it's designed from the top down with scads of plot routines with little correlation. Lots of choices but if you don't want to accept one of their choices you are pretty much stuck. The sad thing about this is that Mathematica opens the possibility of more innovation in graphical presentation but their paradigm chokes it off. My best selling application, Presentations, was based on the idea that in graphics "everything is a graphics primitive". It would extract the graphics primitives from higher level plots so that you could directly combine them with other primitives and graphical directives. The paradigm was more like drawing on a sheet of paper, one thing after another by specifying the primitives. Users seemed to like it a lot.

3) Mathematica is not as stable over versions as they nonchalantly claim. I think I read a claim that Mathematica 10 would run a Mathematica 2 notebook. Maybe, but not necessarily a Mathematica 7 notebook. The graphics paradigm comes to mind again. It is not at all uncommon to extract information from a graphic by extracting primitives. Roman Maeder was showing how to do it back in Mathematica 2. However, WRI keeps adding new graphical structures and changing the old ones and that breaks a lot of code that depended on it. Sometimes it might be worth the price but often it's just ad hoc. And sometimes WRI introduces new problems. An example is that Graphics3D has an option Lighting. It no longer works. Instead Lighting options must be put in the specification of each surface drawn. Serious Mathematica users cannot live with this kind of stuff.

4) "Mathematica somehow fails to live up to its apparently unlimited potential for encapsulating creative thought-product ..." Exactly, but there are only a very few who think this way. I've written an essay at my web site where the second sentence is: "This essay is directed to individuals who are using Mathematica to develop a base of knowledge and a set of capabilities centered on some subject matter." It's a way to accumulate knowledge and capability, preserve work and communicate with colleagues. Perhaps it is too difficult for most users. Although the basic layout has been designed by Wolfram Research, and its a good one, they have not entirely smoothed the path. For example, many users have difficulty with style sheets. Style sheets for an application should be in the application. Mathematica will find them. But they confuse users with an Install Style Sheet button that will not install the style sheet in the application. Before Mathematica 6 there was a documentation system that was available to everyone because it simply used a txt file - not as good as the present system but not bad either. The documentation system is no longer available to everyone but only those who have Premier Service. It uses Wolfram Workbench 3. This is not even a regular product but is obtained by special request. That indicates to me that there are probably not many users actually using it.

5) The Wolfram Research business and pricing model gets ever more complicated. I know of one academic who, because of complications, just chucked Mathematica because they didn't have what they needed when they needed it. Another part of the business model is the question of who is going to develop the Applications: Wolfram Research or independent developers? I think it should be independent developers because Wolfram Research can't be experts in everything. By not strengthening and easing the core part of Mathematica for creating Applications they are losing this resource. When I looked into marketing some of my Applications at WRI they wanted 80% of the sales price, just for providing a blurb and download link. That's ridiculous, this isn't book publishing! I went with the Kagi store, which takes 10% and provided better service.

6) Diffuse effort. Instead of perfecting the "Application" model for building capability over time, Wolfram Research has been drawn into many other endeavors. Many of them have excellent merit but altogether it may be too much to chew at once. Some of them are a bit silly such as converting 140 character Wolfram Language programs for Twitter. And why should all Mathematica computing be drawn to the cloud, instead of just retrieving small pieces of information?

2) Combining graphics is as easy as Show[{graphics1,graphics2,graphics3,..}] which is quite easy I would say ;) I've made many many Graphs in Mathematica, and never had a problem, and where necessary I made my own plot routine, which you can, really easily. I don't know any other products that supports such a customisable and wide variety of plotting routines! You can also write by default 'like a sheet of paper' right?

Graphics[{Blue,Rectangle[{0,0},{3,4}],Red,Point[xydata], Green, Line[xydata2]}]

I would say it is not 'extremely difficult' at all! very easy, just combine the primitives and plots you like using Show/Graphics/Graphics3D ! that's it!

3) I'm not sure what you are talking about, Lighting -> Neutral works as it should:

Graphics3D[Sphere[],Lighting->{{"Directional",Orange,{{0,0,4},{0,0,0}}}}]

and has always worked like this as far as I can recall. As far as extracting parts of graphic, I always remind myself this will be version specific, the primitives it creates might be different per implementation. So if you rely that it produces Rectangles, but now it gives rectangular Polygons (in another version), that should be easy to catch in subsequent version using a new rule. But I always try to stay away from these practices, it can be done, but that doesn't mean it should be done... You should customise directly using the plot routine and then combining with e.g. Show, or Epilog/Prolog.

4) Isn't the entire documentation available online?? http://reference.wolfram.com/language/ ?

POSTED BY: Sander Huisman

Sander, You show simple examples that work, but then if one deviates a little from them they don't work. here is a simple graphic done in Presentations using graphics primitives.

Draw2D[
 {{GrayLevel[0.8], Rectangle[{\[Pi]/4, -1/2}, {3 \[Pi]/4, 1/2}]},
  {Red, Draw[Sin[x], {x, 0, 2 \[Pi]}]},
  Text["Sin", {\[Pi]/2, 0.8}],
  {Darker@Green, Draw[Sin[x + \[Pi]/2], {x, 0, 2 \[Pi]}]},
  Text["Cos", {\[Pi]/2, 0.0}, {-1.5, 0}]},
 Frame -> True]

enter image description here

It's pretty simple. You just draw one thing after another. The curves are converted to graphics primitives. We can set up the applicative graphic directives before drawing the curves. To me this is intuitive. I don't know how others feel.

A newbie might not know he has to put directives in an option or that he has to wrap primitives in Graphics. But let's say he figures that out and learns about Epilog. He might try this:

Show[
 {Graphics[{GrayLevel[0.8], 
    Rectangle[{\[Pi]/4, -1/2}, {3 \[Pi]/4, 1/2}]}],
  Plot[Sin[x], {x, 0, 2 \[Pi]},
   PlotStyle -> Red,
   Epilog -> Text["Sin", {\[Pi]/2, 0.8}]],
  Plot[Sin[x + \[Pi]/2], {x, 0, 2 \[Pi]},
   PlotStyle -> Darker@Green,
   Epilog -> Text["Cos", {\[Pi]/2, 0.0}, {-1.5, 0}]]},
 Frame -> True]

It doesn't work. The Text items don't appear. Why not? I have no idea why they both are missing.

The newbie has to figure out how to do it as follows - with a lot of graphics level jumping.

Show[
 {Graphics[{GrayLevel[0.8], 
    Rectangle[{\[Pi]/4, -1/2}, {3 \[Pi]/4, 1/2}]}],
  Plot[Sin[x], {x, 0, 2 \[Pi]},
   PlotStyle -> Red],
  Graphics[Text["Sin", {\[Pi]/2, 0.8}]],
  Plot[Sin[x + \[Pi]/2], {x, 0, 2 \[Pi]},
   PlotStyle -> Darker@Green],
  Graphics[Text["Cos", {\[Pi]/2, 0.0}, {-1.5, 0}]]},
 Frame -> True]

Or this, which changes the AspectRatio used:

Show[
 {Plot[Sin[x], {x, 0, 2 \[Pi]},
   PlotStyle -> Red],
  Plot[Sin[x + \[Pi]/2], {x, 0, 2 \[Pi]},
   PlotStyle -> Darker@Green]},
 Prolog -> {GrayLevel[0.8], 
   Rectangle[{\[Pi]/4, -1/2}, {3 \[Pi]/4, 1/2}]},
 Epilog -> {Text["Sin", {\[Pi]/2, 0.8}], 
   Text["Cos", {\[Pi]/2, 0.0}, {-1.5, 0}]},
 AspectRatio -> 1/\[Pi],
 Axes -> None,
 Frame -> True]

Here is a case with a Lighting option in Show. Again, you showed a simple case that worked. But this does not work. The Lighting specification is not used.

Show[
 {Plot3D[Sin[x + y^2], {x, -3, 3}, {y, -2, 2},
   PlotStyle -> Lighter@Brown,
   Mesh -> None],
  ParametricPlot3D[{x, Sin[x + z], z}, {x, -3, 3}, {z, -2, 2},
   PlotStyle -> Green,
   Mesh -> None]},
 Lighting -> "Neutral",
 ImageSize -> 300
 ]

enter image description here

The Lighting option has to be inserted into both of the surface plots. Why? Why can't we have a one overall Lighting specification for the entire graphic?

Show[
 {Plot3D[Sin[x + y^2], {x, -3, 3}, {y, -2, 2},
   PlotStyle -> Lighter@Brown,
   Lighting -> "Neutral",
   Mesh -> None],
  ParametricPlot3D[{x, Sin[x + z], z}, {x, -3, 3}, {z, -2, 2},
   PlotStyle -> Green,
   Lighting -> "Neutral",
   Mesh -> None]},
 ImageSize -> 300
 ]

enter image description here

Maybe you consider these things as trivial bits of knowledge that the user should have known. But as David Keith wrote; "I have seen a lot of engineers trying to get a simple graph for an afternoon meeting go to Excel in frustration."

I challenge you to make the last graph of yours in Excel and in 10 'lines'! I think you just proved that it is really easy, all your examples are like 10 lines! I don't know any other software that can do that and still be reasonably readable and adjustable with such low amounts of lines.

Yes sometimes you have to wrap a Graphics around, and yes it is better to stay away from Epilog/Prolog if you combine some graphics, there is always room for improvement. But knowing that, i think it is very easy. I think your examples proof my point more than disproof it...

POSTED BY: Sander Huisman

What David Park writes is totally sensible: the built-in Mathematica syntax for graphics has definite limitations, especially for the newbie (and sometimes for the expert, too).

As to his example with the disappearing Text given in the Epilog of a Plot when combined with a Graphics inside a Show, the documentation for Show does provide the reason, under the "Possible issues" category, namely: "Show uses the options from the first graphic."

POSTED BY: Murray Eisenberg
Posted 8 years ago

David, just some thoughts:

(1) Difficult to learn. Mathematica was, for me, one of the easiest programming languages to learn. The sheer size of it, as you say, makes it time-consuming to become familiar with all of its functionality, but that is a completely different issue, in my opinion, than learnability.

(2) Difficult graphics. I'd really like to know which graphics-oriented applications you use that are easier than Mathematica. Granted, in specific contexts, like CAD-CAM, there are very powerful niche applications that outshine Mathematica in one sliver of functionality, but I've never worked with an application whose general graphics capabilities are broader or easier than Mathematica. And there is a great deal of what you call correlation. Mathematica's graphics functions all follow very strong patterns and conventions. There is a real disconnect here, because I don't recognize Mathematica at all in your criticism. Frankly, I don't know how it could be more like "drawing on paper"--that's almost literally how it feels to me.

POSTED BY: Eric Rimbey

I felt exactly the same regarding point #2...

POSTED BY: Sander Huisman

One thing they might do is to give users freer access for adding to the documentation, maybe like Wikipedia.

I would like to express my support to this idea. One example of another company doing this is the case of MySQL. Here you can see the official documentation for the SELECT statement and it is followed by user comments. Sometimes the comments end up being an essential to understanding the official documentation.

In regards to the original question of this thread, I work at an engineering company and I use Mathematica for:

  • Fully automated reports generation and sending my email
  • Development of tools for our internal use that run with the CDF Player (this requires the Enterprise license.)

And yes. I am sure that this could be done with different technologies, but I am also sure that it would take much longer to develop (if ever developed).

POSTED BY: Gustavo Delfino
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract