Sunday, July 21, 2013

Path Dependence in Tools, or Why I Use Mathematica When Everyone Else Uses Python & R

Nearly every job posting I see requires or desires experience in Python or R or both.  They have clearly won the programming language race for data science applications.  Sadly, I'm just getting started with them, because three years ago I made an impulsive decision that leaves me competent and skilled in Mathematica and not in the others.  The easy path is to continue using it on each new project.

I was taking a class in Social Network Analysis and we were allowed to use any programming language or network library that we wanted.  The professor strongly suggested Python and NetworkX but I had already been using Mathematica for two months for another application.  I stumbled over the installation process with Python on Mac, having to start over three or four times and still never getting it to work properly.  (Since that time, I discovered the relative joy of the Enthought distribution.)  I gave up in frustration and switched to Mathematica, which had decent network analysis functions at the time.  In addition to network analysis, I used it for web page scraping and text mining, so my experience and skill Mathematica with increased significantly.  It was also my go-to tool when I had a social network problem on my candidacy exam, which subsequently became a class paper and now a conference paper.

Since then, a new version has come out -- Mathematica 9 -- that adds significantly more functions related to network analysis, Markov chain, R integration, and others.  Aside from the individual functions, the main strength for me is that it is integrated, or nearly so, with built-in visualization. (Some things, like neural networks and combinatorics, still require adding libraries.)   This is especially valuable in prototyping, experiments, explorations.

Of course, I'm in the process of learning Python and R, both because of the features and benefits they offer and, more important, the career benefits and "positive network externalities".  But I'll continue using Mathematica as long as I have a valid license.  (It's expensive for everyone but students.)

No comments:

Post a Comment