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.