Mathematica 8 in Review — Front End

John Fultz

Director of User Interface Technology, Wolfram Research, Inc.

Big Version 8 Accomplishment #1 — CDF

But wait...isn’t CDF just a notebook?

An Easy Day at the Office

Some great advantages of notebooks in creating the thing we call CDF:

Supports the full breadth of Mathematica evaluation

An Easy Day at the Office

Some great advantages of notebooks in creating the thing we call CDF:

Supports the full breadth of Mathematica evaluation

Highly structured document format

An Easy Day at the Office

Some great advantages of notebooks in creating the thing we call CDF:

Supports the full breadth of Mathematica evaluation

Highly structured document format

Full array of documented functions for creating and manipulating CDFs

An Easy Day at the Office

Some great advantages of notebooks in creating the thing we call CDF:

Supports the full breadth of Mathematica evaluation

Highly structured document format

Full array of documented functions for creating and manipulating notebooks

Documents which are fully interactive

An Easy Day at the Office(?)

Some great advantages of notebooks in creating the thing we call CDF:

Supports the full breadth of Mathematica evaluation

Highly structured document format

Full array of documented functions for creating and manipulating notebooks

Documents which are fully interactive

But some things were missing...

CDF — Accessible everywhere

CDF on the desktop

Mathematica

Wolfram CDF Player

CDF on the web

Web browser plugin

Demonstrations

Wolfram|Alpha

And more venues to come...

CDF — Even More Computability

NotebookEvaluate

Can be used to treat notebooks as packages

Or to treat notebooks as documents which can be filled in by evaluation

CreateDocument[{
ExpressionCell[Button["Evaluate!",NotebookEvaluate[EvaluationNotebook[],InsertResults->True],Method->"Queued"]],
ExpressionCell[Defer[Plot[Sin[x],{x,0,6}]],"Input"],
ExpressionCell[Defer[2+2],"Input"]
}];

Big Version 8 Accomplishment #2 —
Forget the Syntax, Remember the Cloud

How do I write Mathematica again?

How do I get that obscure paclet thing I can’t remember?

How about that data that Mathematica just doesn’t seem to have

And Some Other Version 8 Accomplishments

Textures

Plot3D[Sin[x y], {x, 0, π},{y,0,π}, PlotStyle->{Opacity[1],Texture[ExampleData[{"ColorTexture","GoldenOak"}]]},Mesh->None]

Plot3D[Sin[x y], {x, 0, π},{y,0,π}, PlotStyle->{Opacity[1],Texture[CurrentImage[]]}]

And Some Other Version 8 Accomplishments

Overlay

Manipulate[Overlay[{ExampleData[{"TestImage","House"}],SetAlphaChannel[ExampleData[{"TestImage","Clock"}],x]}],{x,0,1}]

And Some Other Version 8 Accomplishments

MouseAppearance

xcur=Dynamic[Graphics[{Hue[Clock[]],Arrowheads[.5],Thickness[0.1],Arrow[{{0,0},{.5,1}}],Hue[1-Clock[]],Arrowheads[.3],Thickness[.05],Arrow[{{0,0},{.45,.9}}]},PlotRange->{{0,1},{0,1}}]];
textcur=Graphics[{Red,Polygon[{{0,0},{1,0},{.5,1}}], Polygon[{{0,3},{1,3},{.5,2}}],Dashing[Small],Line[{{.5,1},{.5,2}}]},ImageSize->Tiny];

Style[Column[{MouseAppearance[Style["x",10],xcur,{.5,1}],
MouseAppearance["marks the spot",textcur,{.5,1.5}]},Alignment->Center],"Title"]

And Some Other Version 8 Accomplishments

Textures + Overlay + MouseAppearance

coolCursor[opac_]:=Graphics[{Texture[Overlay[{ExampleData[{"ColorTexture","StoneWall"}],SetAlphaChannel[ExampleData[{"ColorTexture","GoldenOak"}],opac]}]],Polygon[{{0,.35},{.35,0},{1,1}},VertexTextureCoordinates->{{0,0},{1,0},{.5,1}}]}]

Graphics[Table[MouseAppearance[{GrayLevel[n/20.],Polygon[{{n,0},{n,1},{n+1,1},{n+1,0}}]},With[{n=n},coolCursor[1-n/20.]],{1,1}],{n,1,20}],ImageSize->800,AspectRatio->.2]