MathGroup Archive 2009

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

Search the Archive

Re: Re: Re: Viewing packages in mathematica

  • To: mathgroup at
  • Subject: [mg102756] Re: [mg102738] Re: [mg102725] Re: Viewing packages in mathematica
  • From: "Luc Barthelet" <luc at>
  • Date: Wed, 26 Aug 2009 07:43:34 -0400 (EDT)

I use extensively the .m files as regular notebooks and as packages in 
the Mathematica front end and in the eclipse workbench. In fact I use 
the .m files in preference except for when I know I want to keep the 

I agree with John that the current balance achieved by the team is a 
good solution.
The time invested by the team on this feature was really worth it.

The few improvements I would like to see are:
- Open files faster. since v7 opening a .m became really slow.
- Enable tab and shift tab to work on code cells to indent multiple 
- Enable tab to work even if the cursor is not in the left most position 
of the line (as long as there are only tabs or spaces to the left).
- Fix the bug where *) and (* are found inside strings and confuse the 
.m reader. (it seems to be a tough one, I am not sure it has anything to 
do with this discussion though)
- Add a source formatter for code cell in the front end so we get a 
'standard' display of Mathematica code
- Images in code cell are transformed into text on save, I am not sure 
why there are not transformed back on open.


-----Original Message-----
From: John Fultz [mailto:jfultz at]
Sent: Monday, August 24, 2009 4:56 AM
To: mathgroup at
Subject: [mg102756] [mg102738] Re: [mg102725] Re: Viewing packages in mathematica

I should make it clear that none of your reasons apply to the package
editor in the Mathematica front end (available by opening a package
file or through the menu item File->New->Package).  You can edit
packages directly using that editor with all of the formatting, syntax
coloring, cell types and grouping on package files which are completely
interchangeable with Workbench or any other text editor you might favor
for working with package files.

There are a couple of things that you don't get which you would get
with regular notebooks.  As the original post points out, you don't get
line-wrapping in Code cells.  This was a deliberate design decision on
our part.  We wanted to create a package editor which would be 
interchangeable with Workbench and other systems.  Therefore, two of the
design goals were to limit the automatic formatting changes introduced 
the front end when displaying/editing a package file, and to minimize 
markup introduced into the package file by the front end when encoding
cell group structure, cell styles, etc.

I personally think we've struck a pretty good balance, although there
are a few suggestions for features which remain to be implemented.
Others on this forum (and perhaps even within Wolfram) may disagree,
and that's fine.  There are many options for editing package files.
Some people are very happy with Workbench, some with their own text
editors, some with the FE's package editor, and some with notebooks
auto-saved as packages.  All will continue to be supported for as far
in the future as I can predict.


John Fultz
jfultz at
User Interface Group
Wolfram Research, Inc.

On Sun, 23 Aug 2009 05:32:59 -0400 (EDT), David Park wrote:
> 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 
> 5) You're not completely committed to Workbench.
> One of the major problem with creating .m files in Workbench is that 
> you Import the code from a regular existing package then the .m code 
> 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 
> obstacle to users who would prefer to stay closer to mathematics than 
> computer programming.
> It would be nice if Workbench included a mechanism similar to the auto
> generated package mechanism that would generate line wrapping .m 
> 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 
> files.
> 2) The package.nb notebook will look just like a regular package 
> done outside of Workbench except: don't make it an auto generated 
> 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 
> 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 
> in the .m file. You can also just copy and paste a single routine. 
> 'hand' method is quite quick and easy. You don't have to much look at
> .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: Problem with a 1st order IV ODE (nonlinear)
  • Next by Date: Re: Viewing packages in mathematica
  • Previous by thread: Re: Viewing Packages in mathematica
  • Next by thread: Re: Viewing packages in mathematica