MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Developing Applications using Mathematica

  • To: mathgroup at
  • Subject: [mg77122] Re: Developing Applications using Mathematica
  • From: David Reiss <dbreiss at>
  • Date: Mon, 4 Jun 2007 03:51:15 -0400 (EDT)
  • References: <f3r96l$t5f$>

Hi Mark,

Since no one else has chimed in on this perhaps I will take a crack at
it.  I think though that some of what I will say involves a bit of
conjecture and also is tingled by what I have been doing lately
(  However perhaps it can lead to
an interesting discussion, and also perhaps attract some additional
comments by the good folks at WRI.

Your questions are particularly pertinent now that Mathematica 6 is
out.  The lines that were somewhat blurred previously are now blurred
fully, and the expectation is that deployed applications with
Mathematica will become quite commonplace as time moves on from the
May 1st release of M 6.

Of course I am particularly interested in this from both a personal
and business perspective because of
which I intend to continue to develop--it's the main tool that I use
to interact with Mathematica, and it's also the main tool I use to
stay within Mathematica as much as is possible so that I can do my
work the most efficiently (and also, I have to say, the most

As for the question in your second paragraph--taking that first--I
suspect that the long term plan for Mathematica Player is exactly what
you are asking about.  In the past WRI made use of a technology for
creating Custom Mathematicas, and this was what they used for creating
Calculation Center, NKS Explorer, Mathematica Teacher's Edition, and
so on.  I suspect that the plans for Mathematica Player--making use of
the interface elements of Mathematica 6 (and in particular functions
such as Deploy that allow one to **distribute** interfaces in a way
that they cannot be modified other than the specified  interface
elements such as buttons, check boxes & c) --are to allow for the
creation and deployment Mathematica applications that do not require
the purchase of a full-blown Mathematica.  Of course the initial
examples of some of this that simply make use of Manipulate are the
1300 plus small applications that are on the Demonstrations site.

So, in a word, I think that the answer to your second paragraph's
question is "yes."  After this, there are additional words and
questions  that have to do with when WRI will have the infrastructure
(including legal License specifications) in place to anoint
applications intended to be run under Mathematica Player for various
potential  types of distribution.   Getting Mathematica 6 out was
quite a feat, so I expect that having the full infrastructure for
deployed applications based on Mathematica 6 and mathematica Player in
place is one of the things that is intended for sometime in the
(hopefully near) future.

There are two questions, I think, in your first paragraph.  One has to
do with building applications in Mathematica directly and the other
has to do with building applications that rely on Mathematica for
their internal computations.  Also perhaps a third is the use of
Mathematica to prototype an application.

One of the most obvious ways to use Mathematica is through
webMathematica.  I have created several such "enterprise" applications
in the past for customers or employers.  Usually these are to some
fairly definite specification rather than as a general-use "tool
box."  Of course behind the scenes is a Mathematica package that
provides the functionality, and in that sense it is a toolbox that can
be expanded arbitrarily with a webMathematica deployment making use of
it if an HTML rendition of a user interface can be created that suits
its needs.

webMathematica is quite powerful, and if the interface that you need
for a deployable application is not too sophisticated and only needs
the elemental HTML form entities, then quite powerful applications can
be created and deployed--and they can quite easily be linked to a back-
end database using Database Link if need be  (which is what I did in
one of the webMathematica apps that I created for a client).

Another way, of course, is to create an application that requires a
Mathematica Kernel and FrontEnd to run.  All traditional add-ons are
like this, and though I don't know WRI's pricing for network or site
licenses, the cost per CPU process will certainly not be anything like
the price of a single license for a individual Mathematica. And, if it
is unlikely that more than some small fraction of the 1000 users will
be using the application at any one time, then a network license with
the number of processes optimized to the expected traffic would
possibly make sense.

Another possibility comes to mind (and again is one which I have used
in the past).  This is that Mathematica is an ideal environment in
which to prototype the functionality of an application (as my daughter
might say "well, duh!").  And, again, with the interface elements of
Mathematica 6, this extends well beyond the internal algorithmics to a
very arbitrary space of possible user interfaces.  And I suspect that
there will be considerable exploration of the space of possible user
interfaces that will be catalyzed by Mathematica 6.  (And this may
well blossom as a field in itself.) This is both because the creation
of user interfaces is **very** easy in Mathematica 6, and also because
how one might think of user interfaces is greatly expanded from what
one has been able to do in the past.

After all, in Mathematica, user interfaces are expressions, as is
everything else.  And this is the most powerful, and new, aspect of it
all.  Exploring user interfaces--the space of user interfaces is
indeed very NKS-like, which is certainly not surprising.

To be fair, in Mathematica 5.x (and earlier) there were user interface
elements that were quite powerful because of the fact that they are
(and they are still there--Notebooks and buttons) themselves
expressions.  And in I took these
tools about as far as I could to expand the reach of Mathematica into
areas that are helpful to folks.   But the new elements in Mathematica
6 will allow me to take this **much** further.

So this also gives a sense of my experience with creating "non-
academic" applications.  It is very doable, and the scale can be quite
broad (( has about 50,000 lines of
Mathematica code).

And I think that the option of deploying applications intended for
broad deployment would be best done using Mathematica 6 and
Mathematica Player.  This would also --given the speed with  which one
can create applications in mathematica--make the turn-around time for
modifications and enhancements very much quicker than with any other
technology that I know of.

It would be nice to hear from the gentle (and incredibly hard working)
folks at WRI what the possible time line is for this approach.

I am sure that discussions with the WRI partnerships group could make
the possibilities for this  clear enough so that you to make a
decision on whether and how to bring this idea to your organization .

Of course I'd be happy  to help with this if you wish. (Consultants
always have to say that...)

...hmmm, I seem to have gone on here a bit in a very bloggish way.  I
think that I will also place this note on

  • Prev by Date: Re: Iterating List
  • Next by Date: Re: integrate issue (5.2)
  • Previous by thread: Re: Developing Applications using Mathematica
  • Next by thread: Re: Developing Applications using Mathematica