It's a matter of how to organize your Mathematica work and how to get the optimum use of Mathematica. My guess is that the most common usage is just as a super graphical calculator where a result is obtained or a graphic produced and these are copied out to some other document. This is fine enough, but it's not so good at building a stable usable knowledge base. Six months from now will you be able to find the notebook that made that plot, or the routine for some calculation and remember how to use it? WRI has provided really great facilities for doing better. (But they could polish them up some and make them easier to use!)
It's called an "application" and the place to put them is in your $UserBaseDirectory/Applications'
folder. On another reply on this page I have a link to a detailed discussion on how to set up an application. Some might think this is only a place for WRI to put applications - but no, these are your folders and you can put anything there you want.
An application may contain a folder structure and may or may not contain packages and documentation. It will be organized around some particular topic or purpose. Some typical applications might be:
- Some topic of individual study
- A course a student is taking
- Courseware for a course a professor is teaching
- A research project and possibly papers spun off from the project
- A book
Almost any serious project would generate routines adapted to it. Some of them might just be convenience routines that adapt or assemble Mathematica routines to the specific topic. Most applications probably would eventually contain packages. It is easy to write package files and, if you set them up correctly, easy to load and use them from anywhere. I usually develop a routine while working on some topic in a notebook. I put it in a Routines Section (Package purgatory) and include a usage message, SyntaxInformation, and other definitions that might go with it. Then once a routine gets some testing and usage you might move it to Package heaven.
Eventually you might add WRI style documentation - but you don't need it at first. Here it would be nice if WRI had a freely available application just devoted to writing their standard documentation. It wouldn't need the full features of Workbench. It could be simplified and once you learn the ropes it's quite easy to add documentation pages. They can be quite useful.
You can also quite easily add palettes and style sheets and an init.m file, even if you don't add formal documentation.
Most importantly, an application would contain various collections of notebooks. Maybe polished literate notebooks that could be turned into sections or chapters of a book. Maybe a folder of homework assignments. Maybe just your personal tutorials on various subtopics. Maybe a group of development and testing notebooks.
The important thing here is that you're building up a knowledge and skills base. It can have long term usefulness to yourself and maybe become something seriously useful to other people. When that point comes you can just zip it up (perhaps removing some private folders) and send it to another person. They just do one unzip into their own $UserBaseDirectory/Applications
folder and they're in business. The other person could even add his own package or style sheet or palette for special work he might do as a spin off. This is a very flexible structure and one that can be ideal for collaboration.
If you are writing a book you can adapt it to a Mathematica application. The printed version of the book might be shorter and more elegant. It would not have to be filled with very many examples and might not contain any Mathematica code. Long examples can be especially poor if they include large structures that may fill an entire page. An accompanying application could contain much longer literate tutorial notebooks with the active capability of doing calculations. Long examples are much better handled.
By writing literate notebooks, a student could build up his own body of work on a subject. A set of such notebooks would be a much better display of her capability than grades in a course. Everyone should build up and preserve their work in this way. Otherwise why do it? Your work is worth preserving.
That's the basic idea of getting more from Mathematica. We also have to remember that Mathematica is a relatively new medium for doing and communicating technical work. We have only scratched the surface on how to employ this medium. Just copying or making simple adaptations of 19th and 20th century paradigms is far too limiting. It's a new field where many people can and will make new innovations. Great masterworks are yet to be written.