[Date Index] [Thread Index] [Author Index]
Re: A new FrontEnd
Paul, 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 superior). 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 view. 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 this. 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 site: https://www.createspace.com/3977513 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 Tools. Technical publication is going through a chaotic revolution, but good solutions that work are available now. David Park djmpark at comcast.net http://home.comcast.net/~djmpark/index.html From: paul at desinc.com [mailto:paul at desinc.com] 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 Studio. 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.