Wasted as in not fulfilling its potential even a little bit.
Mathematica is a very niche product. It isn't even very relevant in academia or in engineering. But it could have been if Wolfram hadn't hobbled it with unproductive restrictions. It could have had an audience of millions, and that audience would have brought it more value than a single company is capable of creating through a community.
Just look at Python. It is just a language. And a not particularly good one at that. ALL of its value comes from the community. Compared to Python, Mathematica isn't even a rounding error in terms of value created.
Imagine if Mathematica had been at the core of the last 15 years of data science, machine learning and whatnot? Imagine if the work and the value that went into the Python ecosystem had instead gone into Mathematica. Imagine if even just one of the many things Mathematica can potentially do well had become the go-to way for doing things.
But it didn't. Because Mathematica is fundamentally incompatible with the way communities work.
Just look at Python indeed. As you say it's a much worse language than many others that were equally available to anyone. And yet somehow it's at the the core of the last 15 years of data science, machine learning and whatnot.
If Mathematica had been open-sourced twenty years ago it wouldn't have taken the place of Python. It probably would be even more niche today - and worse.
> It probably would be even more niche today - and worse.
Maybe, but a better successor would've evolved out of it.
Matlab had Octave as an open source alternative. Not used much, but it inspired the creation of Julia. Based on how fast it's evolving Julia will be the superpowered-grandson-of-Matlab :)
The Mathematica/Wolfram bloodline will unfortunately die off at some point... lots of ideas will be lost and time will have to be spent to reinvent them from scratch atop a different platform... sigh...
(Kind of reminds of the Smalltalk story... in the 80-90s Java won bc. all the practically usable Smalltalk implementations were closed-source and had very bad pricing... We could've had much better OO+interactive languages instead if an open-and-free alternative of it existed... Instead we have ugly Java/C# or slow Ruby in that space.)
Forgetting that Java tool vendors are ex-Smalltalkers?
Including the JIT and GC that powers OpenJDK, which was only made freely available on Java 6 version.
Also that Sun went bankrupt trying to push Java everywhere, while the other Java vendors (and Microsoft with .NET Core), learned to only open the core part, while the crown jewels are kept commercial.
> Maybe, but a better successor would've evolved out of it.
> Matlab had Octave as an open source alternative. Not used much, but it inspired the creation of Julia. Based on how fast it's evolving Julia will be the superpowered-grandson-of-Matlab :)
That's a very contrived argument!
If Matlab has inspired the development of other products without ceasing to exist so can (maybe has) Mathematica.
> much worse language than many others that were equally available to anyone
I've been there during the Python take over and world and it's not my recollection of how it went.
Which are those superior languages that you are talking about?
An important property of Python is that while it may not excel at many things, it's good or decent at everything. Unlike specialized languages like R for example which sucks at everything which is not operations on numbers.
The consensus at the time was that one should only use Perl/Tcl for legacy reasons. And that these languages should be replaced with Python.
A few examples, there were countless articles like these:
2000 Eric Raymond (!) - Why Python?
> It was at this point I realized I was probably leaving Perl behind. ... For anything larger or more complex, I have come to prefer the subtle virtues of Python—and I think you will, too.
To clarify, I was mentioning Perl/Tcl as existing alternatives that were "equally bad" as Python - not necessarily better. In any case, the fact that a teaching language like python ended being used for numerical computing - a task that it was not suited for - is accidental.
lush was sadly dynamically scoped at a time the lisp universe in general had agreed lexical scope was the way to go. I feel like it could have gotten a lot more traction if it wasn't for that. (also if I remember correctly its desktop gui libraries were windows only)
2003-02-19: Rejoice, rejoice! Thanks to Leon, the CVS version now compiles and runs on Windoze under Cygwin. Be sure to read the README.cygwin before installing. What works: the interpreter, the compiler, the dynamic loader, X11 graphics and events. What doesn't (yet) work: external packages such as GSL, SDL, OpenGL...
I think that's a very important point: if you invest time in writing software to solve domain-specific problems, it is a lot better if you can do that in languages that have a hope of making it out of the lab and into software you can run as part of a processing chain or in applications.
A library written in a language usable for implementing whole applications is far more useful than, say, a Matlab project, which you then have to translate into some language before you can actually use it in software.
Python is indeed such a language.
(That being said, Python is a poor language choice from a software engineering point of view because it doesn't have a decent path-of-least-resistance to properly distributing software without burdening the user. I do a fair bit of embedded programming, and it has lead me to the conclusion that Python is a terrible tooling language. I've also had colleagues struggle with what happens when data scientists who are more scientist than software engineer write stuff in Python. It is messy, time consuming and frustrating to actually use the resulting software.
But from a language perspective, yes, Python is a better solution than languages that are narrowly scoped)
Python ended up at the core of data science because it was capable of serving a community. A community that produced comprehensive computational libraries, which, combined with the low threshold for getting started, made it more accessible for an audience that is interested in computation first and programming second.
This is largely the same audience as for tools like Matlab and Mathematica.
And to serve that market it didn't have to be a good programming language. You won't find most data scientists discussing the finer points of functional programming or OO. They'll be discussing what mathematical techniques to use or what stages to string together in order to achieve the computation they want. If you have ever worked with typical data scientists, most of them aren't even half way competent software engineers.
What Python shows is that community beats technical excellence. By orders of magnitude.
Whether or not Mathematica is a better language is irrelevant as it doesn't have the properties required a large community contributing value for free.
We can't know if Mathematica could have taken the place of Python if it was open sourced, because it wasn't open sourced. But it given that it had a more potent programming model, it could have led to a very different path from model to running software, for instance. And it could have made distributed computation arrive a lot earlier.
But it is actually quite a bit more challenging for Mathematica than that since its licensing terms are stricter than products you might compare it to, like Matlab. I don't think Mathematica would even have to be open sourced to be more successful - it would just have to be a less unattractive value proposition. Compare the revenue of Mathworks vs Wolfram Research, for instance. And then take into account that Mathematica has a much more potent programming model that could have far wider applicability than Matlab.
And keep in mind: Matlab doesn't even have a programming model as potent as Mathematica.
I think that the smartest thing Wolfram could have done would have been to open source the language, the runtime, and a reasonable standard library. Then they could have built a business on top of that of reasonably priced interactive software with GUIs, visualization tools, developer tools to make stand-alone applications, server applications for distributed computation and a SaaS solution for customers who want to run computation in the cloud.
And it isn't like Mathworks didn't miss the boat too. But they are still an order of magnitude more successful than Wolfram Research. Which still makes Wolfram Research the slowest kid in the class in terms of unrealized potential.
> We can't know if Mathematica could have taken the place of Python if it was open sourced,
I'm pretty sure it wouldn't have, not with it's current lispy syntax. There is ton of empirical evidence that overt functional style is unnatural for the human mind, especially beginners. Which is why there is no large scale use of any such language.
The fact that it's not wide spread is the empirical evidence.
> Clearly, there is an obstacle to the acceptance of FP. I think I know what it is. The functional paradigm is an unnatural way for human beings to think. People normally view the world as comprising objects. Nobody views the world as comprising functions, unless he is trained to do so.
> When it comes to functional programming, a lot of people start with, “But that’s totally unnatural!” Functional programming is compared to working “backwards” and some complain that it’s more about solving puzzles rather than working with code.
Those sources seem to talk about the functional paradigm, when your original claim was about lisp syntax.
It took me reading Practical common lisp to appreciate the Lisp origins of Python (down to documentation strings and a lot of other details).
As a counter datapoint, I have seen people responsible for designing custom parts in Autocad (back in the day when you had to issue commands) master the lisp syntax without giving it a second thought. I found it weird for 5 minutes when I was maybe 12-14 (we had some course about it in school, I don't remember exactly)
> Whether or not Mathematica is a better language is irrelevant as it doesn't have the properties required a large community contributing value for free.
The issue is that other languages which were better and more appropriate for scientific computing _had_ those properties. Or maybe these properties are very specific to python and then an open-source mathematica wouldn't have made a difference either.
> And it isn't like Mathworks didn't miss the boat too. But they are still an order of magnitude more successful than Wolfram Research.
Depends on your definition of success, of course. You focus on adoption but that's not the only goal. The company is an order of magnitude larger but that doesn't make the product an order of magnitude better.
Well, then let's look at some indicators of success.
In terms of adoption Mathematica is even less of a success than if you measure financially. And adoption is a key factor when evaluating whether or not you want to use a programming language for non-trivial projects. It impacts your ability to recruit, access to knowledge (books, forums, evolved practices), usable solutions to common problems (libraries) and even more or less existential questions like whether or not the language will be maintained. Python ticks all of those boxes. Mathematica partially ticks perhaps one of those boxes. And note that this is before we even consider if Python is any good as a language.
If you were to invest in developing a non-trivial system in Mathematica, how enthusiastic do you think investors would be if you nailed your flag to the Mathematica ship? It would not represent good risk management.
Then there's where things are heading. The number of jobs as "data scientist" or "statistician" of some description is growing sharply. It may gain Mathematica a trickle of new users. But the really big gains have been for languages like Python or Julia. Worse still, people tend to move away from software like Mathematica or Matlab, moving to languages like Python and Julia. In fact, it wouldn't surprise me if just the growth in Julia alone over the past couple of years is greater than the total paying userbase of Mathematica.
Single digit, or even low double digit growth in a field that has doubled a few times in the same period isn't success. It is everyone else outrunning you. Fast. And I have seen up close and personal how people who find themselves in that situation will rationalize it with "but we're growing".
Is it a success that it is "good"? For some value of good? Well, a lot of people think Lisp is good. And yet after being around for many decades it is still so hard to find developers to maintain Lisp codebases. I've seen about half a dozen major systems written in Lisp being scrapped once one or two key employees leave. Sure, the systems may qualify as good, even great - but that doesn't help when it becomes a business liability? In the real world it doesn't.
I would have loved for Mathematica to succeed. But it hasn't. And I suspect it won't. Even if it were open sourced right now, I seriously doubt it would bear much fruit the first decade or so. If at all, since the big audiences are focused elsewhere.
Wasted as in providing a continuously improved product to the thousands of paying customers that fund this effort?