From: Hannes Kessler on
Hello,

could you give some recommendations for a smooth transition to the
workbench for packages developed in a standard mathematica notebook
environment? Starting a completely new project in the workbench is
one thing, but at least as important is the question how to continue
to work on existing packages created previously by other means. Up to
now I wrote code in input cells of a mathematica notebook, added
explanations in text cells, marked the input cells with package code
as initialization cells to create the .m file automatically upon
saving the notebook. I never looked into the .m files themselves.
Should one / could one import the notebook (or the .m file) to a
workbench project, or copy it to a work space directory, or work
directly on the files in the user base directory, or what else ... ?

Are there tutorials deeling with this problem?

Best regards,
Hannes Kessler

From: John Fultz on
If take your notebook and you do...

* File->Save As...
* Choose "Mathematica Package" under the file type
* Save as any .m file...but not using the same name as your .nb file (because
your .nb file is already writing a companion package, and so will keep
destroying and recreating the like-named package every time you save your
notebook).

You'll now end up with a package file which has some interesting properties.

* If you open it in Mathematica, it looks much like a notebook, even preserving
the cell structure and most of the properties of the notebook.

* If you open it in Workbench (or any text editor), it will be completely
readable, and all of that work you put into commenting your code in Text cells
will *still* be there in clearly readable comments.

* If you decide to make changes in Workbench (or any text editor), it will be
pretty clear how to do so without destroying any structure that would allow you
to reopen the package in the Mathematica front end and continue to see the same
structure.

When we designed the package editor in Mathematica (i.e., the mode you're put in
when you open a .m file), one of the chief goals was to have it stream out to a
file which is completely readable in any text editor, and which can be
co-developed using any combination of Mathematica, Workbench, and text editor.
By following this procedure, you'll be making absolutely no irreversible
commitment to Workbench, and this will allow you to transition as quickly or
slowly (or not at all) as you wish.

Incidentally, something else which you might wish to know...Mathematica has an
alternate evaluatable cell style known as "Code" (Alt+8 or Cmd+8). Code is like
Input, but with the following differences...

* Much less automatic formatting (e.g., auto-indent, auto-line-wrap)
* InitializationCell->True is set by default
* Differing background color so you can easily distinguish from Input cells

This can be a much easier and more visible way of tagging package code than
using the Initialization Cell menu item, and it's the style which is used by the
package editor for package code by default.

Sincerely,

John Fultz
jfultz(a)wolfram.com
User Interface Group
Wolfram Research, Inc.

On Wed, 24 Feb 2010 06:18:42 -0500 (EST), Hannes Kessler wrote:
> Hello,
>
> could you give some recommendations for a smooth transition to the
> workbench for packages developed in a standard mathematica notebook
> environment? Starting a completely new project in the workbench is
> one thing, but at least as important is the question how to continue
> to work on existing packages created previously by other means. Up to
> now I wrote code in input cells of a mathematica notebook, added
> explanations in text cells, marked the input cells with package code
> as initialization cells to create the .m file automatically upon
> saving the notebook. I never looked into the .m files themselves.
> Should one / could one import the notebook (or the .m file) to a
> workbench project, or copy it to a work space directory, or work
> directly on the files in the user base directory, or what else ... ?
>
> Are there tutorials deeling with this problem?
>
> Best regards,
> Hannes Kessler



From: Albert Retey on
Hi,

> could you give some recommendations for a smooth transition to the
> workbench for packages developed in a standard mathematica notebook
> environment? Starting a completely new project in the workbench is
> one thing, but at least as important is the question how to continue
> to work on existing packages created previously by other means. Up to
> now I wrote code in input cells of a mathematica notebook, added
> explanations in text cells, marked the input cells with package code
> as initialization cells to create the .m file automatically upon
> saving the notebook. I never looked into the .m files themselves.
> Should one / could one import the notebook (or the .m file) to a
> workbench project, or copy it to a work space directory, or work
> directly on the files in the user base directory, or what else ... ?

all this is possible, there is an import wizard that will import
notebooks and create package files from them but you can just as well
copy the notebook files to the project directory of a new project and
keep editing the notebook and create the package file automatically.
This approach might need some more work to get the configuration right
but you will need to learn only those features of the workbench that you
want to use. I would recommend to create a dummy application project to
see how the directory structure and configuration files need to be set
up for the workbench utilities to work alright. You could also crate a
new application project an then just replace the templates that are
generated with your already existing files, if these meet the suggested
conventions...

If you are only writing pure mathematica package files, the added value
of the workbench is IMHO limited, it really can help you to save a lot
of work only if you either plan to provide documentation that you want
to integrate into the Documentation Center or if you want to combine
mathematica code with java, webMathematica and/or probably
GridMathematica (which I have no experience with). It also is nice when
you are using or plan to use additional tools like a version control
system or a ticket/task repository which all can be integrated with
appropriate eclipse plugins.

Files will always be stored in the "workspace", a special directory that
contains your project directories but the workbench takes care that
$Path is set so that you can load the package you are developing. You
can configure the workspace to be at any location you want to. The
workbench has an application tool view which lets you export your
application/package with a mouseclick to e.g. the user base directory so
you can test it without the workbench environment.

> Are there tutorials deeling with this problem?

there is documentation for the workbench and it also deals with the
import of existing projects. Some of the material is not really
exhaustive though. If you consider to work with the workbench, I would
recommend to also take a few hours to get familiar with eclipse.

hth,

albert

From: Adam Berry on
On 2/24/10 5:18 AM, Hannes Kessler wrote:
> Hello,
>
> could you give some recommendations for a smooth transition to the
> workbench for packages developed in a standard mathematica notebook
> environment? Starting a completely new project in the workbench is
> one thing, but at least as important is the question how to continue
> to work on existing packages created previously by other means. Up to
> now I wrote code in input cells of a mathematica notebook, added
> explanations in text cells, marked the input cells with package code
> as initialization cells to create the .m file automatically upon
> saving the notebook. I never looked into the .m files themselves.
> Should one / could one import the notebook (or the .m file) to a
> workbench project, or copy it to a work space directory, or work
> directly on the files in the user base directory, or what else ... ?
>
> Are there tutorials deeling with this problem?
>
> Best regards,
> Hannes Kessler
>
>
>
Hello,

the best approach is to create a project in the workbench, and then copy
the .m package file into that project. Once you have done that you will
edit the file using the workbench, and will no longer need the notebook
with its generated .m file.

See;

http://reference.wolfram.com/workbench/topic/com.wolfram.eclipse.help/html/tasks/applications/mathematicaapps.html

for ideas on how to structure the project.

Adam Berry
Wolfram Workbench Development Team
Wolfram Research, Inc




From: E. Martin-Serrano on

Please,

May I ask which version of Workbench do these directions apply to?

E. Martin-Serrano


-----Original Message-----
From: John Fultz [mailto:jfultz(a)wolfram.com]
Sent: Thursday, February 25, 2010 7:53 AM
Subject: Re: Transition to Wolfram Workbench

If take your notebook and you do...

* File->Save As...
* Choose "Mathematica Package" under the file type
* Save as any .m file...but not using the same name as your .nb file
(because
your .nb file is already writing a companion package, and so will keep
destroying and recreating the like-named package every time you save your
notebook).

You'll now end up with a package file which has some interesting properties.

* If you open it in Mathematica, it looks much like a notebook, even
preserving
the cell structure and most of the properties of the notebook.

* If you open it in Workbench (or any text editor), it will be completely
readable, and all of that work you put into commenting your code in Text
cells
will *still* be there in clearly readable comments.

* If you decide to make changes in Workbench (or any text editor), it will
be
pretty clear how to do so without destroying any structure that would allow
you
to reopen the package in the Mathematica front end and continue to see the
same
structure.

When we designed the package editor in Mathematica (i.e., the mode you're
put in
when you open a .m file), one of the chief goals was to have it stream out
to a
file which is completely readable in any text editor, and which can be
co-developed using any combination of Mathematica, Workbench, and text
editor.
By following this procedure, you'll be making absolutely no irreversible
commitment to Workbench, and this will allow you to transition as quickly or
slowly (or not at all) as you wish.

Incidentally, something else which you might wish to know...Mathematica has
an
alternate evaluatable cell style known as "Code" (Alt+8 or Cmd+8). Code is
like
Input, but with the following differences...

* Much less automatic formatting (e.g., auto-indent, auto-line-wrap)
* InitializationCell->True is set by default
* Differing background color so you can easily distinguish from Input cells

This can be a much easier and more visible way of tagging package code than
using the Initialization Cell menu item, and it's the style which is used by
the
package editor for package code by default.

Sincerely,

John Fultz
jfultz(a)wolfram.com
User Interface Group
Wolfram Research, Inc.

On Wed, 24 Feb 2010 06:18:42 -0500 (EST), Hannes Kessler wrote:
> Hello,
>
> could you give some recommendations for a smooth transition to the
> workbench for packages developed in a standard mathematica notebook
> environment? Starting a completely new project in the workbench is
> one thing, but at least as important is the question how to continue
> to work on existing packages created previously by other means. Up to
> now I wrote code in input cells of a mathematica notebook, added
> explanations in text cells, marked the input cells with package code
> as initialization cells to create the .m file automatically upon
> saving the notebook. I never looked into the .m files themselves.
> Should one / could one import the notebook (or the .m file) to a
> workbench project, or copy it to a work space directory, or work
> directly on the files in the user base directory, or what else ... ?
>
> Are there tutorials deeling with this problem?
>
> Best regards,
> Hannes Kessler