Player Pro: Unleashing Mathematica’s Development Potential
Mathematica has increasingly had many elements of a great development environment, particularly since Mathematica 6. Its versatility, modern programming language, Workbench and automated interface building combined with tremendous computational abilities and symbolic architecture make it uniquely suited for quickly building powerful technical applications of any scale.
What about the subsequent deployment to your users? For some time, webMathematica has offered an innovative approach, suiting the range of cases where running off a centralized server and interfacing through a browser is what’s wanted. But server-based deployment is not the best methodology for all scenarios. And up until now, local deployment of Mathematica applications has needed each user to have a full version of Mathematica.
Today that changed. Both economical and powerful, Player Pro can be the runtime for almost any Mathematica application, with developers “building in” what is Mathematica’s engine to their applications, or with users equipping themselves independently with the Player Pro runtime. For the first time, developing with Mathematica doesn’t have to mean deploying with Mathematica too. Or, putting it another way, Mathematica was the development environment and the runtime all in one. You’ve always needed Mathematica to run Mathematica-made applications. Now you don’t.
Actually, this is more than a story about Mathematica. This is about a change in when and how applications are used, about technical empowerment, about balancing between development and deployment costs. It’s a change that empowers a far wider range of technical people to produce applications, instead of locking that function away with the programming team—only to be used when an application is critically needed. It’s somewhat analogous to how search engines empowered people to find most information they wanted themselves rather than needing to get a librarian to help, and therefore only bothering when having the information was critical.
Traditionally, development systems have traded off between ease of development and effectiveness of deployment. Those with easier development have tended to have expensive or tricky deployment. The more usual case is tricky, expensive development but with cheap or ubiquitous deployment. In essence you either have to “compile out”, have a runtime with only some of the capabilities of the main product or make sure all your users are using the same tool as you did for development.
By giving Player Pro the Mathematica engine, we’ve in a sense made it the ultimate runtime—immediately able to run almost any Mathematica application without change, for a fraction of Mathematica’s cost, yet with the ultra-high-level development environment Mathematica offers. It shares Mathematica’s enormous, self-contained library of capabilities but limits access to them to be through the application that’s being run—that’s the main way it’s distinguished from Mathematica.
Before I wrap up, I don’t want to forget to make what’s perhaps an obvious point about how far back a development environment’s workflow should start: not with building an application from a model but upstream, with taking an idea and developing the model or simulation. This upstream part has so often been disconnected from application development by the available tools that in terms of workgroups in an organization it’s often disconnected too. The Mathematica development environment’s workflow starts right at the idea stage—as it famously always had—but now flows seamlessly through to final application deployment. It’s the first high-level, start-to-finish technical development workflow.
There’s one barrier to “Mathematica the development environment” that I think will take a little time to come down: remembering to think of using it… I hope you’ll take a cue from this blog post (and my video). And if you’re a Premier Service subscriber, get our reminder in the form of three free copies of Player Pro so you can try out this new workflow with your colleagues.