More and more I hear about Engineers having Python on their desktops in addition to the other complementary analysis tools we know of: MATLAB, R, SAS etc. We don't yet have a specific interface to Python like we do for these other software programs but I'm keen to gauge interest. (No promises, though!)
I'd be curious if any of your customers is:
- Currently using Python for solving some analytical problems.
- Currently has Python in their analytical toolboxes.
- Currently has any pains around the use of Python where JMP may compliment -- DOE, easy data visualization, optimizing simulation models, UI-design etc.
I think that Python is not a competitor to JMP -- being a general programming language. Although with some IDEs intended for science and engineering uses (e.g. Anaconda), it might be thought to be a competitor in some cases. I am working on some positioning and thoughts. Please feel free to make comments and suggestions.
Python is a popular general purpose programming language which is well suited to a wide range of problems.
Python – with the right set of add-ons – is comparable to domain-specific languages such as R or MATLAB. If you are wondering whether you should bother with Python (or another language), some considerations includes:
You might want to consider R if:
• You want to apply statistical methods. The statistics library of R is second to none, and R is clearly at the forefront in new statistical algorithm development – meaning you are most likely to find that new(ish) procedure in R.
• Performance is of secondary importance.
• Free is important.
You might want to consider MATLAB if:
• Commercial support, and a clean channel to report issues, is important.
• Documentation and organization of modules is more important than raw routine availability.
• Performance is more important than scope of available packages. MATLAB has optimizations, such as Just-in-Time (JIT) compilation of loops, which is not automatically available in most other packages.
Having read the reasons to choose another package, you may wonder why you should consider Python.
• You need a language which can act as an end-to-end solution so that everything from accessing web-based services and database servers, data management and processing and statistical computation can be accomplished in a single language. Python can even be used to write server-side apps such as dynamic website (see e.g. http://stackoverflow.com), apps for desktop-class operating systems with graphical user interfaces and even tablets and phones apps (iOS and Android).
• Data handling and manipulation– especially cleaning and reformatting–is an importantconcern. Python is substantially more capable at data set construction than either R or MATLAB.
• Performance is a concern, but not at the top of the list.
• Free is an important consideration – Python can be freely deployed, even to 100s of servers in a compute cluster or in the cloud (e.g. Amazon Web Services or Azure).
• Knowledge of Python, as a general purpose language, is complementary to other languages.
So the question is where does JMP fit in?
• JMP has world-class Design of Experiments (DOE) tools (Custom Design, DSDs, Covering Arrays, Space-filling-designs) that simply are not available in Python packages. The synergy here is to use JMP to create the experiments needed to run a simulation or program in Python, collect the responses and then do the analysis in JMP.
• Exploratory tools to quickly look at data generated from Python programs. Quickly build graphs using the Graph Builder, or custom dashboards using the Application Builder.
• Access to many of the most powerful modeling tools in JMP and JMP Pro to quickly make sense from the data generated in Python programs.
• Simulate more efficiently with Design of Experiments, co-optimize multiple responses and perform trade-off-analyses, do further Monte Carlo simulation.
So while not as integrated as the JMP interface to MATLAB and R, JMP and Python can live on engineer's desktops providing the ability to get more done in a day than simply Python alone.