Wolfram Workbench and package development

*To*: mathgroup at smc.vnet.net*Subject*: [mg68413] Wolfram Workbench and package development*From*: "John Jowett" <John.Jowett at cern.ch>*Date*: Fri, 4 Aug 2006 03:59:27 -0400 (EDT)*Organization*: CERN - European Laboratory for Particle Physics*Sender*: owner-wri-mathgroup at wolfram.com

I've installed and taken a look at Wolfram Workbench (WW). Before deciding to adopt it for my work, I'd like to raise a few questions concerning how one might use it for package development. It would be interesting to hear other people's thoughts. 1. WW is clearly an alternative to the traditional workflow for package development in a notebook (which I learned from Roman Maeders' book "Programming in Mathematica"). In that scheme, package functions are created in initialisation cells and the notebook can hold documentation, examples and so on. I've been doing this for years but somehow never got round to the next step which is to write additional documentation notebooks for integration in the Help Browser. Presumably this can be done in WW, perhaps more efficiently. It may seem fairly obvious but it would be useful if someone would spell out an authoritative recipe for doing so (and ideally put it into the help for WW). Which files should you finally "export" from the project and give to people to install in their $(User)BaseDirectory Applications folder? 2. Is the above still the right way to put together and provide Help Browser documentation for application packages, even for future versions of Mathematica ? 3. What about packages that import other packages, contexts and sub-contexts, etc.? 4. When I try to use the Mathematica Import Wizard to bring existing notebook-generated packages into WW, I tend to end up with a lot of non-InputForm syntax ("\[Rule], "\!\(", "\<","\[InvisibleSpace]" etc.). It would be nice to automatically fix/delete these (although perhaps it should be the Front End's job). 5. Is it a good or a bad idea to break a single large package over several .m files in WW? If good, is it just a mattering of putting Get[...] commands between the BeginPackage and EndPackage ? 6. In debugging or improving a function from an existing, loaded package, I often find myself working on a slightly-renamed version that has been copied to the Global context (this avoids repeatedly re-launching the kernel, particularly when it takes some time to get to the point where the new version of the function can be tested). This method is a little messy, especially when it uses private functions. How would I do this in WW ? John Jowett

**Follow-Ups**:**Re: Wolfram Workbench and package development***From:*"Chris Chiasson" <chris@chiasson.name>