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 hadnt made his presentation in Mathematica, it being important to eat ones own cooking.
I have no idea whether or not the story is true. But in a sense, it doesnt matter myths are often developed as a means of articulating an organizations 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 dont 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 Wolframs 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:
lets try to define what we mean by computational thinking. As far as Im 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 thats 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 Ruskeepaas Mathematica Navigator eventually bit the dust some time in the late 2000s. The reason for this phenomenon is not hard to understand, within the context of Wolfram Researchs 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. Wolframs 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 Wolframs 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: its 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, Wolframs 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 products capabilities over the last two releases.
In conclusion, I believe that Stephen Wolframs 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 Wolframs great accomplishment will be very exciting indeed.