Group Abstract Group Abstract

Message Boards Message Boards

22
|
54.8K Views
|
79 Replies
|
109 Total Likes
View groups...
Share
Share this post:

What is Mathematica For?

POSTED BY: Jonathan Kinlay
79 Replies
POSTED BY: Gareth Russell

Those "specialist alternatives" often contain modules pieced together by graduate students with no background in numerical analysis, and consequently led to a proliferation of errors spanning decades. Then by demand of specialists, some of the erroneous approaches have found their way into commercial software. Ecology has its share of this, including fantasies such as Bayesian Clustering.

http://wireilla.com/papers/ijcsa/V12N4/12422ijcsa01.pdf

POSTED BY: Richard Frost

Most users of phylogenetic software do not understand what it is actually doing, nor therefore the potential for inferential errors, let alone actual algorithmic or coding mistakes. Which is part of a larger discussion that goes well beyond phylogenetics. But how to solve the problem?

POSTED BY: Gareth Russell

Much of biology has become mathematically inclined over the past 40 years. Early on, Biology departments started teaching their own mathematical analysis courses - in part because math departments refused to add pair-joining and pseudo-metrics to their course curricula. This has not been the case with other math-oriented majors - they require their undergraduates to take the junior level numerical analysis course, and their graduate students to take applied math analysis + numerical analysis II.

POSTED BY: Richard Frost
POSTED BY: Todd Allen

I invested in WL a long time ago, and resist learning other languages because WL is so productive.

Yeah, I'm in the same boat. I suppose I feel isolated a little, but not in the 'peer review' way. One of the nice things about WL is that I can provide a single notebook that explains all the computational pieces in enough granular detail that anyone with basic skills should be able see that it does what we say it does. And I myself can do basic R, although that is hardly relevant because in my field R is used mainly for stats, via packages. What's needed is that I understand the stat methods and when they are appropriate. I'm not going to unpick the algorithms in, say, a linear mixed effects package.

I actually like coding my own versions of discipline-specific tools, such as those in the VEGAN package. It makes me feel more confident that I know what they are doing, and what the output means.

POSTED BY: Gareth Russell

The "R" package contains both unsound individual modules plus procedures that combine otherwise valid modules into an erroneous computation chain. Somewhere along the line, biology professors started equating "knowing how to program" with "knowing what to program".

POSTED BY: Richard Frost

Want to help me make a new and better version in WL?

POSTED BY: Gareth Russell

Gareth, such an effort would involve eliminating several existing functionalities - so potential users would have to be educated as to why that is the case.

In my perspective, this suite of functions would be invoked by WL and perhaps a WL GUI app for novices; i.e. the R scripting interface would be eliminated.

Further, I'm a fan of commercially supported scientific software so I'd like to see Wolfram involved. This would mean that some of the software development monies went Wolfram instead of graduate students. This would also ensure the package did not become another free-for-all collection of erroneous modules.

Just to be clear - I have no grievances with community-based "non-computational" software. For example: LaTeX.

For the immediate future I'm heavily invested in a genomic ID and ancestry project for fruiting perennials. I'm willing to consider your proposal though. For further discussions feel free to contact me via the email posted on the webpage on my Profile.

POSTED BY: Richard Frost

The functionalities you've listed only scratch the surface. For example, consider the interconnectivity to devices. Mathematica is used as a controller for laboratory apparatus, as a receiver for remote sensing applications, and so on. Take a stroll through the main Language Documentation webpage and you'll find more capabilities you missed.

With regard to LaTeX, it's remarkable that Wolfram provides any support at all to something that is not a product but rather an ever-growing collection of TeX macros. As Peter points out, there is serious support for TeX. You can also use the Mathematica "Copy As" (select, right click) to paste Mathematica output as TeX and paste it into your TeX document. If you need something fancier, then use your programming skills to generate TeX within Mathematica and write it to a TXT file.

POSTED BY: Richard Frost

Mathematica supports LaTeX with TeXForm, and if you press Ctrl+4, you can type TeX into Mathematica. Stephen Wolfram describes in his blog post where he announces the release of Mathematica 12.2 how you can enter TeX into a notebook.

POSTED BY: Peter Burbery
POSTED BY: Jonathan Kinlay
POSTED BY: Richard Frost
Posted 3 years ago
POSTED BY: Dave Middleton
POSTED BY: Jonathan Kinlay

In my experience, a proprietary solution can be worth having. CDC had a great Algol compiler and the Cray Research Fortran compiler was the best bar none. Every now and then I see a bit of that style in the Mathematica error diagnostics.

I don't enjoy reading requests for a less proprietary WL platform in the same paragraphs with requests for internal details of algortihms. If you want to know what was method was used you can look it up in the documentation. Beyond that seems to be some sort of claim of entitlement that does not exist.

POSTED BY: Richard Frost
Posted 3 years ago

Hi Tom,

I think a technically educated person should be writing with a word processor, doing reports with a spreadsheet, and thinking with a technical computing language as an extension of their thought process.

This strikes me as too prescriptive. Fifty years ago you would have had to write, perhaps: "a technically educated person should be writing with a fountain pen, doing reports using a pocket calculator and hardly thinking at all about technical computing languages, unless they are computer scientists".

The point is: time moves on. If you work at Wolfram Research I imagine you (try to) do everything in WL, whether it be writing text, producing some analysis, or programming an application. Certainly that's my understanding of Stephen Wolfram's expectation, anyway. For myself I do a large proportion of my work in WL, including carrying out analysis, creating presentations, and programming applications. It's very convenient to use a common UI and tech stack for all these varied tasks: it save shifting from one application to another, having to be concerned about file format compatibility, etc.

A technical computing language is not the right tool for producing commercial computer applications.

I understand your point, but I expect that there are legions of Fortran programmers, to say nothing of the good people at WR and Mathworks who would heartily disagree with you. And indeed on the pages of this post several examples are given of commercial applications developed in WL (including one or two of my own).

To your point, however, it's obviously a significant challenge to develop a commercial application in WL, even though it can be and has been done. I certainly wouldn't regard the development of commercial applications as a forte of Mathematica, in they way that, for instance, symbolic programming clearly is. Which goes to the topic of this post - i.e. what is Mathematica for? And I would have to concur that the development of commercial applications is not one of those things - although I am quite sure that Stephen Wolfram and others at WR would strongly disagree.

My answer: “it’s an extension of one’s thought process.”

This is a bold claim for any programming language/technology platform, including Mathematica. Could one not make a similar claim about C++, Java, or Julia? I suspect that, unless you are a professional developer, probably not. Mathematica has certain unique features that make it a natural fit for the rapid exploration of ideas, in a way that certainly isn't true of most other computer languages that I am aware of.

I think that your description encapsulates what Stephen Wolfram may be aiming for: a kind of cognitive sand-pit offering a plethora of computational tools that provide a unique way to explore ideas, whether experimentally, graphically, or analytically, that will assist the process of developing them into functional algorithms.

POSTED BY: Updating Name

Fifty years ago you would have had to write, perhaps: "a technically educated person should be writing with a fountain pen, doing reports using a pocket calculator and hardly thinking at all about technical computing languages, unless they are computer scientists".

Fifty years ago I had a programmable HP calculator, was writing with a word processor on an HP portable, doing reports with Lotus 1-2-3 (spreadsheet) on the portable, and programming in octal, Algol, Macro (assembly language), Basic, and Fortran on time-sharing systems. I was not a computer scientist nor had I taken any C.S. courses in college. These activities were typical among my colleagues.

POSTED BY: Richard Frost

You may want to revise your 'way-back' time. Lotus did not come out until 1983. The HP-35 debuted in 1972, but the programmable HP-65 came out in 1974 -- at a whopping $795 -- equivalent to $4k in today's dollars. HP portables no earlier than 1987.

I started coding in 1972, and it was on a timesharing PDP-5. No personal computers at all -- Altair 8800 debuted in 1974. I got an HP-35 shortly after it came out, which meant that I could ditch my slide rule and log/trig tables. Most of us who learned to code in those days didn't take CS, because most schools didn't offer them. (I was a maths major, so I did have numerical analysis.)

So, 50 years ago (1972), I was writing on a typewriter (an IBM Selectric if I did so at work), doing calculations with my slide rule or walking to the Medical School computer facility -- or by hand, and when I did learn to code, used Assembly and BASIC. C came out in 1972, but I did not have access to a computer the compiler (etc.) would run on until the late 1980s.

SO, no need to make the 1970s 'better' than it was. It was the wild frontier.

I wasn't referring to consumer products. We bought these systems from laboratory suppliers or the build-it yourself versions from Heathkit. Fountain pens were a rarity - we all used ballpoint.

POSTED BY: Richard Frost
Posted 3 years ago

I think a technically educated person should be writing with a word processor, doing reports with a spreadsheet, and thinking with a technical computing language as an extension of their thought process.

I observe that people don’t think about things much. If they do, they use a spreadsheet. And that may be too complicated for some. The market for technical computing language may be limited to what I think of as “practicing PhD’s”. Mathematica makes it practical to think about a problem in terms of differential equations, for example, but one first needs some understanding of calculus and not everyone does.

I have recommended Mathematica to others but so far none have been able to use it well enough for it to be an extension of their thought process. It’s a steep learning curve. I have been using Mathematica since version 1.

A technical computing language is not the right tool for producing commercial computer applications. They are two very different things. This is not good or bad, just two different things. And tools for commercial computer applications are well developed. I had an application where I was writing c-code for a microcomputer. It needed a digital filter. I used Mathematica to simulate the data and to design a digital filter. Expressing the filter as c-code was trivial.

My typical Mathematica notebook often starts with some simple notes on a topic. It extends to some “proof of concept” analysis. Then expands from there. This was the development pattern in a recent activity where I extracted telemetry data from a GoPro MP4 file and used it to analyze sailing performance.

My answer: “it’s an extension of one’s though process.”

Years ago, we may have understood that an analysis might be theoretically doable, but we did not have tools to do it. Now with a technical computer language as an extension of one’s thought process we can. The possibilities for expanding understanding become endless. Perhaps we should put more emphasis on teaching a technical computing language. It might enable people to use, for example, calculus in a meaningful way.

POSTED BY: Tom Compton
Posted 3 years ago

We should leave Wolfram Alpha out of this discussion about programming languages. This is not a programming language at all, but a search or - if you like - answer engine. You can't do anything in it that could be called "programming".

POSTED BY: Werner Geiger

Hi Wener,

I am not sure I agree, for two reasons.

Firstly, the question was "What is Mathematica for", not "What is the Wolfram programming language for". i.e the question was intended to be a little more general. Indeed, as you yourself have pointed out, there is an

impenetrable jumble of products and licenses

i.e it's getting harder to identify the precise boundary lines between each product offering. I believe this is termed "confusion marketing". i.e. it's a deliberate marketing tactic.

Secondly, a major thrust in recent years has been to embed computable data / entities and related functionality within the WL, for example in geographics. I believe Stephen's vision for "Mathematica" is as a blend of computable data and programming capability. Indeed, access to Wolfram Alpha is itself embedded in Mathematica, as you know.

I recently programmed a prototype of a game that makes extensive use of computational geographics data. It would have taken many times longer to program that in e.g. Python, as a great deal of time would have been expended in data retrieval and wrangling. In Mathematica, it was relatively easy. That's a good example of why it makes sense to include computable data in the technology stack.

POSTED BY: Jonathan Kinlay
Posted 3 years ago

You are right. Your question was "what is Mathematica good for".

I mistakenly narrowed that down to programming languages. Perhaps I was misled by the word "Mathematica". After all, I don't really know what the word means. What was obviously meant was "what is the Wolfram System good for"?

Of course, Wolfram Alpha is a very important and valuable part of the Wolfram System.

POSTED BY: Werner Geiger

I think Mathematica is good for writing computational essays. Stephen Wolfram has a blog post on this.

POSTED BY: Peter Burbery

Every language is an algebra.

POSTED BY: Richard Frost

I agree that Wolfram Alpha is becoming indispensable. I think Wolfram Alpha is used by math students, math teachers, science students, and science teachers.

POSTED BY: Peter Burbery
POSTED BY: Jonathan Kinlay

I am a Wikipedia editor and I think Wikipedia is a good reference.

POSTED BY: Peter Burbery

The universities I'm familiar with have site licenses, typically at the department or laboratory level. Also, the Mathematica pricing for students appears in line with textbook prices from my perspective.

The main hindrance I see for students is with department level inbred thinking that community-based free software is better in all regards. However, in biology these projects have become the largest source of research errors in modern history:

http://wireilla.com/papers/ijcsa/V12N4/12422ijcsa01.pdf

POSTED BY: Richard Frost
Posted 3 years ago

Maybe it's different in your country. I am in Germany. And I am not only talking about students in maths or engineering, but social and many other sciences that have at least to do much with statistics and probabilities.

POSTED BY: Werner Geiger

I'm aware of research units in university social sciences and liberal arts with Mathematica installations.

POSTED BY: Richard Frost
Posted 3 years ago

A Wolfram|One Personal licence for Student costs EUR 333/Year (!). This is for one user, two installations. Euros are about the same as US dollars. This is a price never acceptable for students. Unless they have rich parents.

POSTED BY: Werner Geiger

What about the cost of a Mathematica (desktop) student license in your country?

POSTED BY: Richard Frost
Posted 3 years ago

The prices for student Mathematica desktop licenses in Germany:

enter image description here

POSTED BY: Hans Milton

Given the prices of textbooks, I believe that is very reasonable.

POSTED BY: Richard Frost
Posted 3 years ago

I reviewed again the German prices for Student's Wolfram / Mathematica. I found three products/licenses for Students: enter image description here

They range from 104 €/Y to 333 €/Y. The cheapest one does not include the cloud (which probably is not very important, since everybody stores and synchronizes their files within other clouds, namely OneDrive for Windows users).

I could not really tell the difference is between Mathematica Desktop (181€/Y) and Wolfram|One Personal (333 €/Y) (I have the latter, but - strange enough - for 271 €/Y).

I don't even know what the difference is between Mathematica and Wolfram Language. I look at "Mathematica" as just the former name of "Wolfram Language" and abbreviate it as "WL".

Putting it all together, possibly a student could live with Mathematica Desktop for 104 €/Y. "Possibly" because I assume that this does not include any product upgrades which would make it pretty useless. If that is true, he would have to pay at least 181 €/Y, possibly 333 €/Y.

POSTED BY: Werner Geiger
Posted 3 years ago
POSTED BY: Werner Geiger

I think the ability to do symbolic math is underrated. I'm a hobbyist programmer, and I once encountered a problem that really did require to do symbolic math. I really, really didn't want to do the calculations with pen and paper so I bought a Mathematica license. Since then, I've learned to appreciate the capabilities of the language and the elegance of its design.

POSTED BY: Lucien Grondin

Yes, I completely agree. I used MMA to help solve a very challenging problem in stochastic calculus many years ago and find it invaluable for scratch-pad type quant work, or more complex research in mathematical finance.

POSTED BY: Jonathan Kinlay
POSTED BY: Peter Burbery

Indeed.

POSTED BY: Jonathan Kinlay

Mathematica has been the platform of choice for sensors-to-animation production by the film industry for decades. A colleague of mine is a system administrator at one of the sites.

POSTED BY: Richard Frost
POSTED BY: Jonathan Kinlay

The famous example are the animations added to the actors in Pirates of the Caribbean.

POSTED BY: Richard Frost
Posted 3 years ago
POSTED BY: Eric Rimbey
POSTED BY: Richard Frost
POSTED BY: Jonathan Kinlay

Hi George,

as far as I know the Wolfram Engine is already ported to iOS for the App "Wolfram Player" but not embeddable in a custom application.

https://apps.apple.com/us/app/wolfram-player/id1059014516

POSTED BY: Philipp Winkler
Posted 3 years ago
POSTED BY: S. M. Wirker

I think the complaints about cost are misplaced. Wolfram products are in high demand and so I don't believe the price is going to come down.

POSTED BY: Richard Frost

Having said that, the Wolfram Engine would not be regarded as a complete solution by many:

(i) production systems developed using the WE require a production license and distribution of the WE runtime module

(ii) it entails development of the system in another programming language (which calls the necessary functionality in the WE).

In other words, in this mode of usage the WL alone is insufficient to create a production system. It is necessary to be proficient in another programming language such as C++ or Python to create the complete application. From that perspective, the WE is just another library (albeit a powerful one).

POSTED BY: Jonathan Kinlay

My thoughts on this topic, besides that it should recieve more public discussion, are twofold.

First, I am not sure whether I will buy Mathematica once I exit academia. As long as I have a 'free' license though, I'm hooked. I think both mathematics and computer science students have a hard time approaching MMA even though it has tremendous potential to benefit both kinds of people†. I like to tell them that MMA is the worlds best software rapid prototyping tool; or when I'm being cynical, that MMA is both good for nothing and good at literally everything††. Frivolous yet powerful things are often the most compelling and fun...

Second, can MMA ever have a practical use†††? I think besides small niches, there is exactly one possibility. I haven't played with it's C code generation very much, but it seems like it's mainly limited to producing 'zombie routines' that must hook into a kernel. The symbolic nature of WL admits, for instance, a search over all possible algorithms to achieve a task. I think a richer library of code generation tools/examples plus an expanded code generation interface (i.e. x11 calls, various windows dlls; think of existing gpu and ffmpeg functionality) could start to make WL useful for 'actual code development'.

†In many lower division math classes, the entirety of homework can be automated in MMA. Document scanning, equation parsing, equation solving with steps, typesetting and printing. Literally the whole process: it's a thing of beauty. Applied computer science students, once relieved of worrying about the nontrivial trivialities of modern software, can appreciate the beauty of theory.

††Good for nothing in that it's useless for producing anything dynamic (i.e. production software), and good for everything in that it's capabilities are wiiiidespread and richly interconnected and as a result can produce amazing static visualizations, sounds, videos etc. Most academic publications are entirely static--most of scholarship is just prototyping ideas--such that MMA is the perfect scholarly workbench.

†††Again, practical in the sense of providing a directly valuable service--there's some economics word I'm looking for. One might say I'm asking for the well crafted code that goes into the kernel to be freely given up. Instead, I'm suggesting that the symbolic power of WL could be suited for automatedly writing lots of code--I would only be able to give examples if I were to embark on this as a project.

POSTED BY: Adam Mendenhall

Adam,

I think my view is quite well aligned with yours: Mathematica is unparalleled in its facility for doing mathematics and its interactive nature makes it an outstanding choice for doing research, experimentation and prototyping. Which thereby also makes it an excellent pedagogical tool.

If we were to draw a line here and say: "this is what Mathematica is for", would that be so bad? Does its current inadequacy as a platform for developing production systems render it useless? No of course not, not at all. Why should it? After all, I have never heard anyone complain about R's shortcomings in the same area - why should Mathematica be held to a higher standard?

Well, I think there may be a couple of reasons (in addition to cost, of course):

Firstly, if we dispense with the notion that Mathematica can ever become a platform for doing series development work in a production environment, it means that you have to become highly proficient in at least one other language. And given the scope and complexity of WL, and of the other language one may be obliged to learn (e.g. Python, Java, C# or C++ ), a developer can be forgiven for thinking that they may as well save some time and effort and just focus on the second language, which can do everything (although perhaps not as elegantly as WL, in some areas).

Second, Stephen Wolfram's boundless enthusiasm and ambition for the WL leads one to hope that perhaps, eventually, a way will be found to remedy the WL's deficiencies and make it suitable for development of production systems. This is, after all, what Mathworks appears to have achieved with Matlab/Simulink, enabling Matlab code to be translated into production-suitable C++.

However, I suspect this is just a pipe dream: there are all kinds of structural reasons why a similar translations capability would be next to impossible to achieve in WL (beyond the very limited extant ability to compile simple functions).

POSTED BY: Jonathan Kinlay
POSTED BY: Kay Herbert
POSTED BY: Jonathan Kinlay
POSTED BY: Philipp Winkler
POSTED BY: Jonathan Kinlay
Posted 5 years ago
POSTED BY: Hans Milton
POSTED BY: Jonathan Kinlay

I recently spent almost two weeks to install keras(the most star count deep learning framework on github) to my gcp compute engine linux debian machine, keras now bundled with tensorflow2, only can run inside docker container, docker itself is cloud native technology, and I also spent great portion of time to install the gpu support in docker, now everything seems ok to go. The Capability to package app inside docker to run seems the way to go in cloud era.

POSTED BY: vincent feng
Posted 5 years ago
POSTED BY: Rohit Namjoshi
POSTED BY: Philipp Winkler

@Philipp Winkler, about bugs, the recently released Wolfram Research Issue Tracker:

https://redmine.wolfram.com

is a good sign for the path forward on this.

POSTED BY: Kapio Letto

Hi Kapio,

I know about redmine. Actually I am a heavy user :) and it is definitely a step in the right direction. Direct contact with QA and sometimes with the developers helps a lot. Still what I would really appreciate is that development cycles are dedicated for bug fix only releases like version 12.1.1. Just polishing the existing stuff. There are also a lot of things fixed in regular releases but because of the new features almost always some regressions end up in the release.

POSTED BY: Philipp Winkler
Posted 5 years ago

I think Mathematica is far behind Python. Since I have used Python, I seldom use Mathematica. Python is much more powerful than Mathematica in data processing.

POSTED BY: Wenguang Wang

Wenguang,

I happen to agree with you. But what would you say are the specific data processing capabilities that Mathematica lacks, or is inferior to Python, from your experience? Can you give some examples?

POSTED BY: Jonathan Kinlay
Posted 5 years ago
POSTED BY: Updating Name

I always enjoy using Mathematica for serious and less serious work. Don't want to spend all time on finding the right python libraries and check there vitality etc when most absolutely necessary. I think Mathematica is fantastic and thoroughly enjoy listening to Stephen wolfram's discussions with his outstanding team. I mean I don't know any other cto doing that. I also believe that Wolfram is really looking for "stuff" that is actually useful for his customers. Other languages have also great features and sometimes better syntax but that doesn't matter. The flexibility is incredible. I also enjoy the documentation and all the crosslink to other fields that might be useful. You always learn from it. No other languages has given me more pleasure programming than this Wolfram language. I once played with low code software mendix in combination with sap software. I didn't really like it. Low code for sure but many many many clicks and different windows.. Not for me.

POSTED BY: l van Veen
POSTED BY: Jonathan Kinlay
Posted 5 years ago

Jonathan, the answer is very simple:

"Mathematica is for Stephen Wolfram to do his NKS-stuff on."

Other features are put in from time-to-time and as is deemed necessary to make Mathematica sufficiently saleable to support Stephen so he doesn't have to get some other less enjoyable occupation while he pursues NKS.

;-)

B

POSTED BY: Bernard Gress
POSTED BY: Raspi Rascal

Hi Raspi, in some ways I think you are an ideal Mathematica user - a total convert: MMA with everything! And I get it - it's a wonderful sandpit environment for every kind of experimentation.

But in broad terms, my thinking is that this is what Mathematica really is: a means of doing fast research, experimentation and prototyping - but not necessarily for production systems.

If you are not a professional developer that probably doesn't matter at all - everything is an experiment, or recreation! But for a professional developer, getting systems into production and making sure they are battle-ready is a critical part of what you do for a living. And its in this context that I see the greatest challenge for Mathematica - making WL applications that are sufficiently bullet-proof to hand over to an end user (rather than, say, a research co-worker).

BTW what do you use Raspberry Pi for?

POSTED BY: Jonathan Kinlay
POSTED BY: Raspi Rascal

You mention using your RPi to access Mathematica remotely. But cant that be done just as easily and more effectively by accessing MMA on your PC via remote desktop when you are travelling)? Is there something specific about the RPi implementation of MMA that makes it more accessible for remote work?

POSTED BY: Jonathan Kinlay
POSTED BY: Raspi Rascal
Posted 5 years ago
POSTED BY: Ronnie M
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard