MathGroup Archive 2009

[Date Index] [Thread Index] [Author Index]

Search the Archive

RE: Re: Viewing packages in mathematica

  • To: mathgroup at
  • Subject: [mg102653] RE: [mg102725] Re: Viewing packages in mathematica
  • From: "David Park" <djmpark at>
  • Date: Sun, 23 Aug 2009 05:32:59 -0400 (EDT)
  • References: <620055.1250927743503.JavaMail.root@n11>

I agree with you that I would much prefer to have Mathematica notebooks as
the primary source for package code. The reasons are:

1) You get the automatic formatting.
2) You get syntax coloring.
3) You can include Text cells for notes on the code.
4) You can use sectional grouping so you don't have just one long scroll.
5) You're not completely committed to Workbench.

One of the major problem with creating .m files in Workbench is that if you
Import the code from a regular existing package then the .m code does not
line wrap. This makes it very difficult to read and to modify. However, if
you copy and paste code from an existing notebook then it does line wrap.

Making .m files the primary source of package definitions is a significant
obstacle to users who would prefer to stay closer to mathematics than to
computer programming.

It would be nice if Workbench included a mechanism similar to the auto
generated package mechanism that would generate line wrapping .m files. But
there is a method that I've found, just in the last two days, that works and
is fairly convenient.

1) In your Workbench application folder create package.nb and package.m

2) The package.nb notebook will look just like a regular package notebook
done outside of Workbench except: don't make it an auto generated package
and don't even use Initialization cells. (Making it an auto generated
package will get Workbench all confused!) This will be your primary package
source file.

3) To create the package.m file: Select all the Input cells in package.nb,
and copy them; go to the package.m file select everything and paste. (To
select all the Input cells in package.nb hold down Alt and click on one of
the brackets.) With this method the code will line wrap in the .m file. You
can also just copy and paste a single routine. This 'hand' method is quite
quick and easy. You don't have to much look at the .m file.

I believe that once the kinks are smoothed out, and there is better
documentation and examples Workbench can be a very useful working interface
for regular Mathematica users. One advantage is that it is a regular WRI
supported feature of the Mathematica system, and it blends with the rest of
Mathematica. As I've mentioned before, some of the things it could be used
for are:

1) Writing an electronic book.
2) Writing university courseware.
3) Working on a major research project.
4) Self-study of a textbook or some subject matter.

All of these things are likely to generate routines that could be put into a
package, and if you are going to do that it might as well be documented.
It's not that much work if you confine it to major useful routines. Then a
Mathematica Application is a good way to organized relatively finished
material, package routines and subject matter notebooks, so it is easy to
get at it again. It's a lot better than having a lot of loose notebooks with
an undocumented routine here and another there. It's a major fruit of your
labor so it's worthwhile to have it documented and organized.

David Park
djmpark at  

From: Bill Rowe [mailto:readnews at] 

Also, there is Wolfram Workbench. Others have found this useful.
As for myself, I've not found Wolfram Workbench to be that
useful. I much prefer keeping a Mathematica notebook and
generating the .m file from it.

  • Prev by Date: Re: Re: Re: Incongruence? hmm...
  • Next by Date: Re: Re: Re: Incongruence? hmm...
  • Previous by thread: Re: Viewing packages in mathematica
  • Next by thread: Re: Viewing packages in mathematica