2018 State of the Front End
V12 and Beyond

John Fultz
Wolfram Research, Inc.

Join the Conversation #WolframTechConf

Platform support

We have a 64-bit Mac front end!!

Implications of the 64-bit FE

Performance

Many operations across the board are faster

Seeing times of 40-75% relative to 11.3 for operations I’ve tried

Comparing Windows 11.3 vs. 12.0 shows no such differences

Implications of the 64-bit FE

Memory

Getting rid of memory exhaustion crashes

Increased memory usage (expected)

Implications of the 64-bit FE

Other issues

“Not optimized” warning not quite gone for v12

Some small interface changes

macOS support still in progress even after v12

Platform support

For v12

macOS: We now have a 64-bit, Cocoa front end!

After v12

Windows, Linux: HiDPI support coming soon

Notebook deployment

For v12

Retiring FreeCDF, now regular notebooks are effectively FreeCDF

Trivial notebook publishing to the Cloud

Trivial emailing of notebooks in progress

More info in Andre Kuzniarek’s talk, Friday 9:30am

Notebook deployment

Things are less confusing

FreeCDF is going away

No more web browser plugin, so no need for special format

No more confusion about how to deploy notebooks in Cloud, Player, etc.

Regular notebooks will act just like FreeCDF in the v12 Player

Still some EnterpriseCDF benefits

Notebook deployment

Publishing a notebook is now a menu option

File ⊳ Publish to Cloud...

Publish with no filename (anonymous) for throwaway stuff

Publish with a name for something you might want to replace/update

Notebook deployment

Emailing a notebook is now a menu option

File ⊳ Send To...

Windows had this before, but works better and everywhere now

Easy path...log into the Cloud – no configuration

Files don’t need to be saved

Notebook deployment

For v12

Retiring FreeCDF, now regular notebooks are effectively FreeCDF

Trivial notebook publishing to the Cloud

Trivial emailing of notebooks in progress

After v12

Deploy notebooks through WolframScript

Graphics

For v12

Polygons with holes

Modern OpenGL: Faster rendering of transparency

More info in Yuzhu Lu’s talk, tomorrow, 10:30am

Graphics

Polygons with holes

Graphics[{Inset@ExampleData[{"TestImage","JellyBeans2"}],Polygon[{{0,0},{0,1},{1,0}}->{{0.1,0.1},{0.1,0.4},{0.4,0.4},{0.4,0.1}}]}]

Graphics3D[{Polygon[Table[{{0,0,n},{0,1,n},{1,1,n},{1,0,n}}->{{0.2,0.2,n},{0.2,0.8,n},{0.8,0.8,n},{0.8,0.2,n}},{n,0,1,.1}]]}]

Graphics

New, faster transparency rendering method

Rendering transparency is always expensive

Newer graphics hardware enables cutting edge algorithms

Last year’s cutting edge algorithm: depth peeling

This year’s cutting edge algorithm: single-pass depth sorting

But macOS OpenGL isn’t keeping up (so no demo from my Mac)

Graphics

For v12

Polygons with holes

Modern OpenGL: Faster rendering of transparency

More info in Yuzhu Lu’s talk, tomorrow, 10:30am

After v12

Direct3D (Windows): Faster rendering of transparency

Metal (macOS): more modern/faster 3D

Windows: faster 2D

Unicode

For v12

The beginnings of full Unicode support

After v12

Remove the glitchiness

Bidirectional language support

Unicode

The kernel and FE now recognize all of Unicode

CharacterRange[16^^01f600,16^^01f610]

Some other notable things...

Presenter tools

Come back for a second look – tomorrow, Andy Hunt, 10:30am

Improvements here benefitting many dynamic interfaces

TableView

Undocumented, but available and improved in v12

Very nearly finished, should become official in the next release

Some other notable things...

Attached cells

More improvements – tomorrow, Jason Abernathy, 1:30pm

Current interface is stable, System` interface coming next release

Hoping to expose an attached ribbon interface, too

Wolfram|Alpha notebook

A new kind of notebook – right now, Lou D’Andria & Peter Falloon