What are some real-world applications of Mathematica?

Posted 6 years ago
31605 Views
|
55 Replies
|
95 Total Likes
|
 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)
55 Replies
Sort By:
Posted 6 years ago
Posted 6 years ago
 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 6 years ago
 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] 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 ] 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 ]  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."
Posted 6 years ago
 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 3 months ago
 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 6 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 6 years ago
 I felt exactly the same regarding point #2...
Posted 6 years ago
 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 6 years ago
Posted 6 years ago
 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 6 years ago
Posted 6 years ago
 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 6 years ago
 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.
Posted 6 years ago
 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 6 years ago
 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 6 years ago
 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 6 years ago
 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 6 years ago
Posted 6 years ago
 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 6 years ago
 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 6 years ago
 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 6 years ago
 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 6 years ago
 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
Posted 6 years ago
 Yeah it is different, but if one is totally fixated on Matlab, one will not publish it in Mathematica CDF files....
Posted 6 years ago
 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?
Posted 6 years ago
 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 6 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 6 years ago
Posted 6 years ago
 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 6 years ago
 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 6 years ago
 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 6 years ago
Posted 4 years ago
 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.
Posted 4 months ago
 I also recently discovered this great way to deploy!
Posted 4 months ago
 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 4 months ago
 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 6 years ago
 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 6 years ago
 I suppose the free cloud plans may be useful for someone who just wants to try out the language...
Posted 6 years ago
 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 6 years ago
 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 6 years ago
 In Mathematica, symbolic manipulation is part of the core functionality. In Matlab, it is an add-on.
Posted 6 years ago
 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 6 years ago
 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 6 years ago
 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 6 years ago
 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 6 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 6 years ago
 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 6 years ago
 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 6 years ago
 What about the annoyance of having cells, structures, and arrays (matrices?) which are just 'list' in Mathematica.
Posted 6 years ago
 Yes, it was the cells and structures that drove me crazy in the probabilistic graphical models course.
Posted 6 years ago
Posted 6 years ago
 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 6 years ago
 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.