Interface Building Systems
(Visual Basic, Tcl/Tk, Swing, Ajax, Carbon, Cocoa, Qt, GTK+, ...)
Interface building systems traditionally focus on the mechanics of handling views and controls, and responding to events—and require specialized programming quite separate from the actual creation of content. In the past, such separation always seemed inevitable. But Mathematica's unique symbolic architecture and Manipulate function render that obsolete, allowing creation of serious open-ended interfaces as an integrated routine part of everyday interactive computational work.
Every few years, it is claimed that some new system or technology will suddenly make interface building easy. And while there has been progress in the encapsulation and layout of controls, the key problem that has remained has been in making a smooth connection to actual computation and content. Mathematica solves this with its unique ability to represent interfaces symbolically, and to unify them with its powerful language, graphics, layout, document and computation capabilities.
It is a remarkable achievement in Mathematica that a complete interface can be added to a static computation with less than a line of additional code. But what is perhaps more remarkable is that the technology is highly scalable, and immediately applicable to a full range of arbitrarily sophisticated types of content and interface—as well as allowing new dynamic and algorithmic forms of interface that could never realistically be built without the high-level language structure of Mathematica.
Interface Building System Features in Mathematica:
- Support for all standard types of buttons, sliders, menus, etc. »
- Support for arbitrary tooltips, mouseovers, tabviews, flipviews, etc. »
- Full-function dialog boxes, automatically laid out »
- Arbitrary palette, toolbar and inspector construction »
- Generalized clickable graphics panes »
- Full integration of interfaces within multimedia documents »
- Support for handling low-level interface events »
- Support for creating complete standalone interfaces »
- Full professional software development environment »
- Freely distributed Mathematica Player
Key Advantages of Mathematica for Interface Building:
- Deep integration of interface, graphics, text and computation
- Immediate symbolic representation of all interface elements
- All interface elements active and editable, unless explicitly deployed
- Automatic or manual choice of appropriate interface elements »
- Ability to copy and paste active interface elements »
- Fully integrated high-quality 2D & 3D graphics, and sound
- Rich multiparadigm symbolic programming language »
- Seamless use of graphics and typesetting in controls
- Integrated stylesheet mechanism for all aspects of interfaces »
- Arbitrary rich text with full styling, typesetting, math, etc. »
- Symbolic document representation, allowing arbitrary progammatic manipulation
- Arbitrary dynamic interface reconfiguration under program control »
- Automatic handling of gamepads and other human interface devices »
- Full implementation of an object-view controller system
- Automatic optimal tracking and updating of all dependencies
- Symbolic, fully serializable description of all aspects of any interface
- Integrated import and export of hundreds of web and other formats »
- Fully compatible on all standard and emerging computer platforms »
- Resolution-independent images of interfaces for printing
- 20-year history of compatible language development »
Interoperability with Interface Building Systems:
- General MathLink API for C/C++, Java, .NET, etc. »
- GUIKit to use Java libraries directly as components
- Integration with webMathematica deployment
- Excel and VB integration available with Mathematica Link for Excel
Interesting Tidbits:
- The minimal non-trivial user interface is less than a line of Mathematica code
- Thousands of interactive interfaces in The Wolfram Demonstrations Project were built directly by subject experts, without interface programmers
- Early indications suggest high student interest in building Mathematica 6 interfaces
See Also Analyses On: