There is a story about Wolfram, perhaps apocryphal, but nonetheless instructive. It is said that a Wolfram employee made the mistake of presenting some analysis in the form of a spreadsheet. Stephen Wolfram, so the story goes, rounded on the hapless fellow and demanded to know why he hadn’t made his presentation in Mathematica, it being important to eat one’s own cooking.
I have no idea whether or not the story is true. But in a sense, it doesn’t matter – myths are often developed as a means of articulating an organization’s core values. In this case, the story tells us something important about how Wolfram Research sees itself and its mission.
If you ask a user what MatLab is, they will probably tell you something like “a high level programming tool for doing technical computing”, or something like that. Some users of Mathematica might give a similar response to an analogous question about the Wolfram Language. According to this view, all programming languages are simply tools, a means to an end, to be selected according to the requirements of the computational task at hand. A spreadsheet program is an appropriate choice for analyzing tabular data, a database for storing more voluminous or complex data sets and a scientific language like MatLab or WL for performing high level modeling and analysis.
I don’t think Wolfram Research sees itself in that way. Based on his writing and the several presentations he has given over the years, my sense is that Stephen Wolfram’s vision is altogether more ambitious. I am not aware that Wolfram Research has a mission statement, as such, but if it did it might be something like: “To provide a comprehensive framework for computational thinking” and, as a rider, “to establish the Wolfram Language as the Lingua Franca of computational thinking”.
What does that mean? One can hardly do better than read what Stephen Wolfram has to say on the subject, most recently in his latest blog post “How to Teach Computational Thinking”:
“let’s try to define what we mean by “computational thinking”. As far as I’m concerned, its intellectual core is about formulating things with enough clarity, and in a systematic enough way, that one can tell a computer how to do them. Mathematical thinking is about formulating things so that one can handle them mathematically, when that’s possible. Computational thinking is a much bigger and broader story, because there are just a lot more things that can be handled computationally.”
The creation of the necessary architecture of hardware and software to provide a comprehensive framework for computational thinking is a vast and ambitious project, an undertaking entailing enormous risk and potential reward. How well has Wolfram Research succeeded?
Let me begin by making an observation that puzzled me for some time which is that, unlike for MatLab, the supply of books on Mathematica is relatively sparse. A considerable number were printed in the 1990s, but, with notable exceptions, the supply appears to have tapered off over the succeeding decades. Even more recent and very popular books such as Heikki Ruskeepaa’s Mathematica Navigator eventually bit the dust some time in the late 2000’s. The reason for this phenomenon is not hard to understand, within the context of Wolfram Research’s mission, as I have understood it. If your goal is to facilitate computational thinking in all its forms, you must strive towards the outer limits of knowledge. And if you are going to do that within a single lifetime, you are going to have to move at a very aggressive pace. Hence, each new release of the Mathematica software contains hundreds of important, new features and functions. This makes the task of keeping up extremely challenging, for both users and authors. For the writer of Mathematica texts, the effort involved in maintaining the currency of the work must be significant. It is surely far easier maintain a book abreast of the latest developments in C++ or Java and so sustain the royalty flow.
If you cannot rely on external authors to fill the gap, it becomes even more important to have world-class documentation for your product. Unfortunately, in the past, maintaining the system documentation current and in good working order appeared at times to be something of an afterthought for Wolfram: sample code and examples that were created for prior releases would quite frequently fail, as function syntax was updated. This has now changed, as I discuss below.
Moving forward at the breakneck pace witnessed at Wolfram over the last decade or two has presumably created a plethora of other challenges for the organization: financing the growth; recruiting the right caliber of staff; and maintaining quality control, to mention just a few. Occasionally, I felt that some of the product releases might have been more thoroughly tested before launch. At times, I wanted to tell Wolfram Research: “Slow down! Give the poor user time to catch his breath. Work on your quality control and documentation”. Wolfram’s response to the problem appears to have been just the opposite: “Speed up! Reach the goal as quickly as possible – things will slow down naturally of there own accord once we get there”.
At some point in the process, however, around the time of the Mathematica 9 release, the very smart people at Wolfram Research began to recognize and work on these issues. My guess is that more staff were hired to beef up product documentation and quality control, and to develop examples to illustrate the application of the new features contained in each release. The result has been a significant improvement in the user experience in versions 10 and 11.
As I contemplated the question of Wolfram’s mission and strategy over the years, it struck me that there are important lessons to be learned from other major initiatives, such as Wikipedia, arguably an undertaking of comparable ambition and scope. That Wikipedia has largely succeeded in its goal is due to one key factor: it’s free, and has therefore been widely adopted, very rapidly. The same can be said of the success of the programming language C, which became successful, not because of the desirability of its rather ugly syntax, but because penniless students preferred a costless alternative to mainstream offerings.
The important lesson here is that to accomplish a project of such scope the organization must enlist the support of a vast army of volunteer contributors. Mathworks came to this realization long before Wolfram Research, with the result that the Matlab online user forums have been for many years a rich source of useful code and programming advice. Wolfram finally got the message a couple of years ago and its online community is already making a valuable contribution as a supplementary source of ideas and support. With the launch of its Programming Lab Open Cloud service, the organization also appears to have come to the recognition of the power of “free” as a means of building the franchise.
With the release of Mathematica 11 my sense is that the end goal is at last in view, albeit distantly. While there is no sign of it yet – quite the opposite, in fact, in this release – it is now possible to imagine a time, not too far off, when the pace of development begins to slow. I can envisage this happening quite soon in the field of time series and econometric modeling, for instance. When time series were first introduced in Mathematica, there were so many gaps in the functionality that using it to teach a graduate course in the subject would have been problematic, compared to alternatives such as Matlab, Gauss or RATS, which contained all the necessary features. In version 11, however, probably around 90% of the required functionality for graduate level instruction are available as standard, with a few surprising exceptions remaining to be addressed (such as Johansen cointegration tests, and impulse-response models, for instance). It is not hard to imagine that, by version 12 or 13, Wolfram’s effort in those disciplines will be largely completed. The same is also true of, for instance, 3D printing, a discipline in which Mathematica has made enormous strides in version 11. Here too, once can envisage dispensing with other software hitherto necessary to complete the steps in the process that earlier versions of Mathematica did not encompass.
I would be interested to hear from users about their experience of version 11 in the own disciplines and areas of interest. At a guess, I expect many of them would report similar advancements in the product’s capabilities over the last two releases.
In conclusion, I believe that Stephen Wolfram’s great vision may finally be on the verge of realization. In part this is because the relentless pace of development has brought the Wolfram Language to the point where it is within striking distance of the end goal, across a very broad swathe of computational disciplines.
It also appears to be the case that someone at Wolfram Research has been thinking very hard and strategically about the critically important support infrastructure, filling in the gaps in product capabilities, improving the scope and quality of the documentation and working on virtualizing the boundaries of the organization to co-opt the user base to assist its efforts.
One cannot say for sure, but I suspect that the results flowing in the years ahead from Wolfram’s great accomplishment will be very exciting indeed.
The subtitle of the original Mathematica book is "A System for Doing Mathematics by Computer". That was an ambitious goal back in the 1980s -- and it still is -- and there is a large part of Wolfram Language dedicated to fulfilling that vision.
However, as you point out, Mathematica's mission has evolved from that beginning. Computational thinking is one of the genuinely new ideas of our century. I am not entirely happy with the term 'computational' , since it tends to turn off the liberal arts types who could really benefit from this approach to seeing the world, but I do not have a good alternative. Keith Devlin teaches a MOOC on Mathematical thinking, and I pointed out that the course really deals with critical thinking in general, not just mathematics. He agreed, but there really is no good alternative we could think of.
I, too, am pleased with the current direction in the development of Mathematica's capabilities. There are still gaps in the documentation, annoying bugs, etc. I see progress in this area as well. For example, Wolfram Workbench has been broken for several releases of Mathematica. However, almost all the functionality that we needed in Workbench has been incorporated into Mathematica, including stack trace in version 11. The only major feature that is missing is the ability to create Documentation Center-style documentation, and I suspect that that will be coming 'soon'.
I think that the pricing model for Wolfram products is a red herring. Sure, free is nice, but you get what you pay for. The on-line iterations of Wolfram Language are free to get started, and the cost is reasonable for more functionality. The student license for the desktop version is less than the cost of a maths textbook. I have a commercial license, and maintaining it is 'cheap' compared to the benefit I get. (Granted, the initial cost in 1989 was not what it is now.) The Raspberry Pi is approaching third-world 'cheap', and you get an entire computer to boot.
The only problem I have with today's Mathematica -- and it is a happy problem -- is that it is too big to master. With early versions, I could get the feeling that I understood the language (although not the maths in all cases). Today, the program is simply to vast. The advantage that Wolfram Language has is that it is integrated (no add-on packages) and the paradigms transfer from one area to another relatively easily, so if you understand one part of Wolfram Language, it is not too hard to pick up another.
You may be right about "free": with the low cost of the home edition the barrier to acceptance is already very low indeed.
At the end, you touch an increasingly important problem in epistemology. Focusing our efforts in increasingly specialized fields enables us to get to the coal face in reasonable time (say, over the course of a doctorate). But, it is becoming apparent that there are disbenefits - the span of human knowledge is so vast that it is hard to transfer learning from one field of discipline to another, or to integrate knowledge across different fields. And yet there can be enormous potential in the cross-fertilization of disciplines (e.g. from physics to finance, to produce financial engineering).
This epistemological problem is growing more acute and increasingly difficult to solve; but I believe a solution lies in the field of AI, where, in principal, machines will have access to knowledge across a wide range of specialized fields and the processing power to be able to integrate them, where appropriate. Amongst other things this will require, or lead to, the ability of machines to program themselves (meta-programming).
Cue WolframLanguageData, new in version 11:
gives the value of the specified property for the Wolfram Language symbol entity.
Which, coupled with machine learning capabilities, opens up the possibilities for meta-programming in WL.
" I am not aware that Wolfram Research has a mission statement, as such, but if it did it might be something like: “To provide a comprehensive framework for computational thinking” and, as a rider, “to establish the Wolfram Language as the Lingua Franca of computational thinking”. i think the mission statement is best stated as "To implement whatever computations Stephen wants". Happy Thanksgiving.