Stephen Wolfram is killing Mathematica

One of the saddest consequences of Steven Wolfram’s descent into megalomaniacal insanity (vis his decision to save science from itself by reinventing it in the image of a popular science book from the 1980s) is the continuing decline of Mathematica, his greatest (and, he seems intent upon forgetting, only) accomplishment.

Why the return to bitter posts? The week of my life I’ll never get back trying to get Mathematica‘s pitifully bad graph theory functions to yield correct results. I never thought I’d see the day when I considered MATLAB a superior product to Mathematica for doing something like network theory, but that day has come. I could go into great detail on the poor design of Mathematica‘s Graph object, but I’ll just leave the reader with the following object lesson on the perils of letting one’s ego interfere with one’s day job:

This is what happens when you decide to reinvent science but instead rediscover incompetence.
This is what happens when you decide to reinvent science but instead rediscover incompetence. (Note: the second graph has a lower “shortest path” despite losing an edge.)

Another nice bug is the fact that WeightedAdjacencyGraph[WeightedAdjacencyMatrix[g]] often returns an error, despite the obvious fact that it should return the original graph (at least topologically).

Seriously, Wolfram. Are there many more important mathematical topics today than graph theory? You can’t throw a copy of Mathematica these days (and I plan to) without hitting somebody working on a topic for which graph theory plays a central role. The fact that the interface to Graph[] is an unholy mess is nothing compared to the fact that it doesn’t even return correct results when things like GraphDistance[] are applied to a graph which has been manipulated. When Mathematica starts returning mathematically incorrect results, something is wrong with the world. That thing, I believe, is Stephen Wolfram himself. It’s time for him to move on from Wolfram and let somebody else run the show.

5 responses to “Stephen Wolfram is killing Mathematica”

  1. I think Wolfram is perpetually in the “kid genius” mode – he had great expectations for himself, as did everyone around him. Mathematica was cool. But he’s been ruined by his own “potential” and mainly serves as a cautionary tale to the rest of us now.

    • Sorry for the late reply. Mucked up the whole “e-mail me when comments happen setting”. I think you’re right about him being in kid genius mode well into his senility. And you are also right on to use the past tense with Mathematica and “cool”. I don’t know what the hell happened, but Mathematica went completely off the rails with 8.0. Now with 9.0 the big innovation is prompts for what next to do with your computation. Perfect for when you can’t decide when to factor or just start plotting! Maybe the big feature with 10.0 will be a return to mathematically correct results…

  2. Actually there aren’t many tools out there that offer a comparable breadth of graph-related functionality. I really doubt that you can use MATLAB for this (!!).

    I agree that unfortunately Mathematica’s graph related functionality has some serious quality issues … I’ve complained about this many times before. I also noticed that when using EdgeDelete on (weighted) graphs, things tend to get broken, and a silent wrong result is really unforgivable, and should warrant an imminent bugfix release.

    (If you haven’t done so yet, please report this bug to Wolfram support, the more voices complain, the higher the chance that something can be done.)

    You can also try my package IGraphR which makes it very easy to call igraph from Mathematica. Since I don’t fully trust graph-related results form Mathematica, and since these results are usually hard to verify, I usually compare them to igraph. My package doesn’t support weighted graphs yet, but there are usually workarounds such as sending weights explicitly to igraph.

  3. RandomRoadGraph is not a Mathematica function in either version 9 or 10. I can’t tell if the problem is in your code or Mathematica’s. I don’t do graph theory much, but the bits I use seem to be OK.

    • that function is my code, but that’s not the point. it simply produces a starting graph. everything after that is mathematica code, and it’s clearly operating incorrectly. the post was written a while back, so it may have been fixed.

Leave a Reply

Your email address will not be published.