Statistical discovery with JMP at the 25-year point
Oct 4, 2014 9:00 AM
For you, today is Oct. 4. At JMP, we call it Sept. 34. We had been determined to release the first version of JMP by the end of the third quarter of 1989. But, as it turned out, we needed a few extra days to make our own deadline. So we “extended” the quarter.
Today, JMP is 25 years old. This milestone led me to reflect on its startup, evolution, current state and future.
Most of the design principles adopted at startup remain our design principles today, though we have added a few new ones. As JMP grew from a very basic package to one with wider capabilities, we managed that growth carefully so that the product stayed agile and the product surface didn’t become too complex.
Along the way, important growth themes for JMP have included exploiting the user interface, addressing the specific needs of engineers, advancing the state of the art of fields such as experimental design, and addressing the new challenges of big data with new power in large memory and multiple cores. Central to all our work has been the graphical user interface (GUI), enabling interactive exploration, making discoveries and understanding what the data is saying.
In the last 25 years, the field of statistical methods has transformed from a small specialty to a key enabler of both advancing the technological and quality frontiers and of making better business decisions, as based on informative data.
Original Design Goals
When JMP was first released in October 1989, the original goals of JMP were:
Find the best ways to exploit the emergence of the GUI point-and-click interface of the Macintosh.
Find the best statistical graphics to go with each statistical method.
Provide a new product that was relatively inexpensive and easy to use, and would serve as an entry-level step for SAS and for those who didn’t need a product as big as SAS.
The SAS Perspective
In the late 1980s, SAS had just completed a huge project to port SAS to personal computers, which involved translating millions of lines of code from PL/I-G to C. We had to maintain complete compatibility with previous versions of SAS, which had a large installed base of SAS language programs. Even when we took tiny steps, such as trying to require quotes in title statements, we found that we had to backtrack to complete compatibility.
So JMP became an experiment to go where SAS wasn’t playing. We wanted to explore the design space with a new product [Blue Ocean strategy]. JMP needed to be as different as possible from SAS and still serve a viable market. SAS had a programming language, so we made JMP not have a language. SAS stored data by rows, so JMP stored it by column. SAS handled big data, so JMP was limited to in-memory and originally 32,767 (i.e., 215-1) rows. SAS was a very wide, powerful product, so JMP became a much smaller, focused product. SAS aimed to sell to business, IT and applications development, so JMP aimed to sell to scientists and engineers.
The Macintosh Perspective
In 1984, the Mac appeared. By the late 1980s, Apple was starting to gain traction in the industry with the GUI, and Microsoft was investing big and embracing it with its Windows project. Everyone believed that the industry was transforming again. We had just gone through huge transitions: from mainframe MVS to mainframe CMS, from mainframe to minicomputer, from printer output to graphics output, from editing terminals to full-screen interactive terminals, and then from minicomputers to personal computers. Another upheaval with the GUI was emerging.
Programming to the GUI was supposed to be different from programming for a language interface and static output. We couldn’t just port SAS to a GUI, though we could reuse the subroutine library from SAS.
So what feature set would be big enough to serve the small market of Mac users at the time? We picked a set of typical analytical routines and put them in a very contextual Analyze menu.
The Statistics Perspective
The statistical initiatives of the time included Tukey’s Exploratory Data Analysis and the emphasis on graphics, punctuated notably by the Anscombe Quartet published in 1973. It became important to look at your data in a graph.
The American Statistical Association started a Statistical Graphics section and started publishing the Journal of Computational and Graphical Statistics. This coincided with the availability first of bitmap graphics terminals and then of graphics-enabled personal computers, so graphics became easy as well as popular. I remember the excitement of reading about the Gabriel PCA Biplot, the scatterplot matrix, brushing, rotating, mosaic plots. Pioneers included John Tukey, John Hartigan, William S. Cleveland, Michael Friendly, Lee Wilkinson. The hunt was on to design a graph to go with each statistical method. This hunt led to such JMP innovations as the general hypothesis leverage plot, comparison circles, the 3D spinning biplot and many more.
The Evolution of JMP
So with fanfare at the SAS Users Group International (SUGI) meeting in spring of 1989, we unveiled JMP on the Macintosh. This was a very small product compared to the JMP of today, but it had a nice set of initial features all linked to interactive graphics. That was just the first of many steps.
Early on, we found that engineers became an important customer segment for us. We added control charts, elementary design of experiments (DOE), and survival features. The Profilers became extremely valuable additions to the fitting platforms. This was also when we started hearing about the Six Sigma movement becoming so important.
As Windows emerged as not only a competitor to the Mac but also as the dominant host platform, we ported JMP to Windows.
Modern DOE came to JMP when Bradley Jones joined our team. He pioneered a long series of innovations in design of experiments, and continues to do so.
We completely rewrote JMP in C++ and gave it a modern display interface and a scripting language (JSL) for the fourth version of JMP.
We invested in data visualization, adding Graph Builder, dynamic Bubble Plots, Data Filters and more.
We continued to improve the application development process, with a better editor, App Builder, the debugger and script profiler, JSL namespaces, and add-ins and the JMP File Exchange.
We exploited interfaces to SAS. At first, this meant just providing file import and export, but later we created increasingly sophisticated direct interfaces.
As our user base grew, we developed various specialty areas: reliability modeling, process quality and consumer research. We also continued our investment in design of experiments where we lead the industry.
For many years, JMP was used mainly in the US and Japan. Now use of JMP has spread to Europe and China, where we expect to grow fast.
We learned to adapt to big data, making JMP faster and more resilient. We added multithreading wherever it fit well.
We increased our involvement in customer engagements through users groups, online communities, customer care and more.
JMP has grown from a limited product with a limited audience to a mature product with a wide audience. As the awareness of the value of analytics advances, JMP is well-poised to grow quickly in the next few years.
JMP will continue to be a desktop product, as opposed to becoming a client-server or cloud product. But the desktop has never been more capable than it is now, and we expect the desktop to remain important for many more years.
Happy birthday to JMP! JMP is 25 years old now, very healthy and hardy and still growing fast. We thank all of our users for helping us make JMP into what it is today.