MathGroup Archive 2012

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

Search the Archive

Re: A new FrontEnd

  • To: mathgroup at
  • Subject: [mg128134] Re: A new FrontEnd
  • From: "djmpark" <djmpark at>
  • Date: Tue, 18 Sep 2012 03:40:59 -0400 (EDT)
  • Delivered-to:
  • Delivered-to:
  • Delivered-to:
  • Delivered-to:
  • References: <k21kj2$9vq$> <13343837.52372.1347855737715.JavaMail.root@m06>


What you're interested in is what I'm interested in and I think it is a very
reasonable thing to ask for.

I believe the solution already exists - it's called Mathematica for readers
and Mathematica + Workbench for writers. 

The problem is that everyone that should have Mathematica doesn't have it.
If they did, the economy of scale would probably reduce the price to a
pretty reasonable level. In Canada the Province of Ontario (If I remember
correctly) buys a copy of Geometer's Sketchpad for all secondary and college
students. If our country did less bragging and actually cared about
technical capability they might consider something similar with Mathematica.
I know many will raise objections to a proprietary technology becoming
"universal", but if the technical community can embrace the proprietary
Adobe PDF as a widespread publication medium I don't see why they can't also
embrace WRI technology as a widespread alternative medium (and MUCH

I don't see why, within a single organization, Mathematica couldn't be made
available to all who need its use.

I used to think that something like CDF would be a good solution. However,
all these "Mathematica without Mathematica" solutions inevitably cripple it
enough to severely limit their usefulness. They also divert the energies of
WRI. There is nothing like the real thing. Why not polish that?

Notebooks can be written for readers in such a way that they don't have to
know much about the detailed use of Mathematica. (Opening and closing
Sections, operating controls. They might be enticed into learning more of
its use by the examples.)

I have tried to develop methods in Presentations to hide code and present a
document that reads like a classical technical paper but has all the
advantages of an active and dynamic medium. And you can do a lot of this
with regular Mathematica if you want to make the effort. The difficulty is
getting it into "Mathematica without Mathematica" documents.

One technique is to hide display code in Initialization sections, which are
deemphasized by light gray headings say, and then accessing them through
buttons in Text cells.  Another method is to write the code where it is used
in a notebook but then closing the Input cell (Alt+CPO). The only trouble
with this is that if you delete Output cells before transmitting the
notebook, the reader may not see and evaluate the closed cell. It's possible
to add an "Eval" button with a Tooltip to the text that will alert the
reader to the cell and select and evaluate it.

Another technique is to generate displays in a separate window next to the
notebook. (You can't do this in notebooks in browsers, and I'm not certain
about CDF documents.) This allows the reader to scroll an extensive
discussion in the notebook while keeping the diagram or presentation in

Presentations also has a facility for Sidebar notebooks. This is a way of
generating a side discussion without obtruding unnecessarily on the main
discussion. The sidebar notebook is activated by a button in a Text cell and
hidden in condensed form within the mother notebook.

Presentations also has a HiddenNotebookData construction for placing "boiler
plate" data or specifications in the notebook without taking up a lot of
visual space.

Another standard method for hiding code and data is the use of packages.
"Mathematica without Mathematica" solutions are generally not friendly to

Workbench with Mathematica is the solution for writers because it allows
them to bundle together notebooks, packages and documentation to produce
powerful Applications for users and readers. It allows writers to organize,
preserve and make accessible their work. It's the fruit of their labor - it
deserves it.

It's easy to provide a table of contents at the top of a notebook by writing
a Text cell with links to the various sections. Or a notebook or Guide page
within an Application with links to a set of notebooks. With sectional
organization within a notebook I don't think that a Table of Contents is
really necessary. Neither would an index be needed in a notebook, or a PDF,
since we already have the more powerful Find. This is confusing the
characteristics of various media.

If you want to publish regular technical books you can do that now using
Mathematica. An example is John Browne's Grassmann Algebra. It will be on
Amazon in several weeks, and is available now on its Amazon CreateSpace

The material was all developed within Mathematica notebooks. Mathematica was
used to beautifully typeset the book. There is a 13 page TOC, a 20 page
Bibliography, and a 9 page index that I believe were produced with Author's

Technical publication is going through a chaotic revolution, but good
solutions that work are available now.

David Park
djmpark at  

From: paul at [mailto:paul at] 

I think WR doesn't need to change FrontEnd as much as augment it and start
developing other interfaces to work in parallel as an integrated
environment.  Workbench was an attempt at this, though a bit clunky.

If I were going to update FrontEnd, I would add far greater support for
generating documents from notebooks.  Table of Contents, Index, etc.  I
would also add ability to "hide code" with a button press.  Code offers
nothing to non-Mathematica readers.  My process is calculate, validate,
document around previous work, share.  The first two rock.  Documenting
around and sharing is more effort than it could be.

As far as adhoc GUIs, the rest of universe has moved away from text->GUI
generation because it is too slow to develop.  I think Mathematica would
greatly benefit from a Microsoft Visual Studio C# style graphical GUI
builder with "callbacks" to an "adjacent" notebook or package.

I also hope Mathematica comes up with a way to truly deploy applications so
others without the luxury of Mathematica can benefit from applications
written in Mathematica.  CDF is woefully insufficient for anything more than
PDF on steroids.  Player has serious promise, but can't be used without
uploading files to WR for secret encoding to prevent clever stealing of
Mathematica capabilities.  I do work that can't be uploaded.  I am under
growing pressure to migrate Mathematica proven work to C# so it can be
shared or at least executed by someone else to free up my time.

I would also like to see a "project" interface.  It would manage a
collection of notebooks, packages, GUIs, etc...

I don't think Mathematica can usefully be extended to provide increased
functionality via FrontEnd.  Nor should it.  It would risk losing the
benefits of FrontEnd.  I think it needs to provide separate applications
with tight integration to extend further.  Workbench was a nice try.  For a
project based text editor it pales in comparison to industry leader Visual

I do agree with the example of a separate application being the memory
inspector similar to what another system offers.  It is very useful to
glance at another window and see variable list with dimensions and bytes of
memory.  Raw data is available by clicking on variable in viewer.  It
becomes an extremely handy sanity check.  It would also be nice to inspect
unknown return items like what Plot[] returns.  It can be very handy if
cleverly done.

  • Prev by Date: Epilog/Prolog and Show Question
  • Next by Date: Re: Landau letter, Re: Mathematica as a New Approach...
  • Previous by thread: Re: A new FrontEnd
  • Next by thread: Re: A new FrontEnd