The Mathematica Frontend:
We're on the Road (again)

Mr. Theodore W. Gray
Dr. Neil M. Soiffer, Esq
Wolfram Research, Inc

Successes of Version 3

Symbolic document format

The fact that notebook documents are ordinary Mathematica expressions was a controversial decision. However, experience over the last two years has shown that the ability to seamlessly process notebook documents in the kernel is genuinely useful in real-world situations.

Some things that can be done include:
Automatic index generation
Automatic table of contents/references
Maintenance of hyperlinks (dead links checking)

Calculus and Mathematica

Conversion process proved usefulness of symbolic representation.
Removing unnecessary option settings using patterns.
Complex program read inconsistent, messed up title blocks from all 184 files and replaced them intelligently with correct versions.

Look at the difference between 2.2 and 3.0...
System`Convert`HTMLDump`HyperlinkAnchor[{FrontEnd`FileName[{C&M Old}, 01.Numbers.nb, CharacterEncoding -> MacintoshRoman], None}, System`Convert`CommonDump`InlineCell -> True]Old
System`Convert`HTMLDump`HyperlinkAnchor[{FrontEnd`FileName[{ParentDirectory[], C&M Files, 0.FeelofMathematica}, 01.Numbers.nb, CharacterEncoding -> MacintoshRoman], None}, System`Convert`CommonDump`InlineCell -> True]New

Beginner's Guide

Processing to adapt to new possibilities offered by style mechanism. For example, the following code rewrites all bold, Courier text as being in Input style instead:

[Graphics:indexgr2.gif][Graphics:indexgr1.gif]

Physica

Alternative front end, completely replaces menus, methods of input, syntax.
Presents a limited, physics-problems only environment, built using front end programming commands.
[Graphics:indexgr3.gif]

Books

Before V3 came out, we told you about how it would be possible to create books that integrate into Mathematica.

It actually works!

Books really do integrate into the help browser, and master index.

New Features in 3.1

Spell checker

Hyphenation

Inline cells

Double buffering

Improved line breaking

General Placeholders

AutoIndent

Improvements to keyboard editing/selection/motion commands

Keyboard short names

AutoReplace

Safe file save

Remote file system support

Experimental Features in 3.1

Future Features

Real time 3D Graphics

Stephen showed this earlier.

Graphics

Interactive graphics, integrated as tightly with the kernel as typeset expressions are now.

Programmability and symbolic foundation will make this another revolutionary feature in Mathematica.

Stephen showed it earlier, but this is a better example.

Implementation

Setup

[Graphics:indexgr2.gif][Graphics:indexgr41.gif]

[Graphics:indexgr2.gif][Graphics:indexgr42.gif]

ExpressionToGraphics[]

[Graphics:indexgr2.gif][Graphics:indexgr43.gif]

[Graphics:indexgr2.gif][Graphics:indexgr44.gif]

[Graphics:indexgr2.gif][Graphics:indexgr45.gif]

arrangeInputs[]

Positions the elements of a list of Graphics[] so that the rhs of their bounding boxes are at x=0, the top of the first is at y=0, and the rest descend downward with vSpacing units inbetween each. Returns a doublet containing a list of the arranged graphics and the bounding box of the graphics.

[Graphics:indexgr2.gif][Graphics:indexgr46.gif]

[Graphics:indexgr2.gif][Graphics:indexgr47.gif]

[Graphics:indexgr2.gif][Graphics:indexgr48.gif]

[Graphics:indexgr2.gif][Graphics:indexgr49.gif]

[Graphics:indexgr2.gif][Graphics:indexgr50.gif]

GraphicsToExpression

[Graphics:indexgr2.gif][Graphics:indexgr51.gif]

[Graphics:indexgr2.gif][Graphics:indexgr52.gif]

[Graphics:indexgr2.gif][Graphics:indexgr53.gif]

[Graphics:indexgr2.gif][Graphics:indexgr54.gif]

[Graphics:indexgr2.gif][Graphics:indexgr55.gif]

[Graphics:indexgr2.gif][Graphics:indexgr56.gif]

[Graphics:indexgr2.gif][Graphics:indexgr57.gif]

MakeBoxes[] and MakeExpression[]

[Graphics:indexgr2.gif][Graphics:indexgr58.gif]
[Graphics:indexgr2.gif][Graphics:indexgr59.gif]
[Graphics:indexgr2.gif][Graphics:indexgr60.gif]

[Graphics:indexgr2.gif][Graphics:indexgr61.gif]

[Graphics:indexgr2.gif][Graphics:indexgr62.gif]

[Graphics:indexgr2.gif][Graphics:indexgr63.gif]

[Graphics:indexgr2.gif][Graphics:indexgr64.gif]

[Graphics:indexgr2.gif][Graphics:indexgr65.gif]
Example

Dialog Boxes

That's all Folks