[Date Index]
[Thread Index]
[Author Index]
Re: Re: A kernel, multiple notebooks, and Global?
*To*: mathgroup at smc.vnet.net
*Subject*: [mg87912] Re: [mg87882] Re: A kernel, multiple notebooks, and Global?
*From*: Andrzej Kozlowski <akoz at mimuw.edu.pl>
*Date*: Sat, 19 Apr 2008 23:51:47 -0400 (EDT)
*References*: <fu1u15$ojn$1@smc.vnet.net> <fu21b9$rap$1@smc.vnet.net> <fu4fc7$nak$1@smc.vnet.net> <fu6mhj$nni$1@smc.vnet.net> <fu9fps$cbb$1@smc.vnet.net> <200804190735.DAA09836@smc.vnet.net>
I partly agree with the conclusions and I disagree with most of the
supporting argument. I agree that Mathematica has little chance to
> "displace and/or replace many other current publication formats
> like TeX, PDF... many current media applications like reports,
> journal publications, presentations, dissertations, and so on.
My reasons, are however, completely different. Basically I believe
that at the research level there is not that much demand for the sort
of live computation capability that Mathematica offers. In my own case
the benefits of adding some "live content" to most of my papers would
amount to just one thing: they would become somewhat "cuter". I don't
think such material would make any difference to the the sort of
people who might choose to read such papers; they would still remain
incomprehensible to those to whom they are incomprehensible in their
present form, and they would not become any clearer to those who
understand them now. So the benefits would be marginal. However, live
contents is of huge benefit in undergraduate teaching in practically
every respect. But this is not journal level staff.
I completely disagree with the part about Mathematica's complexity. On
the contrary, if we discount the mathematical and algorithmic aspects
of the program (which are very complex, but no more in Mathematica
than in any other CAS) they we are left with a basic core language
that has remained largely stable as it expanded its scope to include
typesetting, live graphics etc, interface building. Of course many
functions have been added, but I don't consider this as an increase in
complexity (they tend to make using the language simpler). Fundamental
changes in syntax would represent a serious increase in complexity and
there have been very few of these over the many years of Mathemaitca's
existence. Indeed, it is this underlying simplicity that made the
rapid expansion of the scope of the Mathematica language possible.
Andrzej Kozlowski
On 19 Apr 2008, at 16:35, AES wrote:
> David,
>
> I'll not try to respond to your (appreciated) response, as appended
> below for completeness, by interpolating a lot of comments into your
> message (always find lengthy posts like that, with interpolated
> replies,
> hard to read, in fact); but will instead top-post a few more general
> responses as follows:
>
>
> NO OBJECTIONS TO DISTRIBUTING MATHEMATICA NOTEBOOKS, AS A
> LIMITED MEANS OF COMMUNICATION TO SMALL AND SPECIALIZED
> AUDIENCES -- FINE IDEA, IN FACT
>
> I have no basic objections at all to distributing notebooks I've
> created
> -- even interactive ones -- to colleagues, or pretty much any one who
> wants them. In fact, I've mentioned the availability of notebooks
> in a
> few journal publications, and gotten a few email requests for some of
> them as a result. Can be a useful means of technical communication,
> in
> a limited universe of users.
>
>
> BUT MATHEMATICA CAN NEVER BECOME A UNIVERSAL OR EVEN VERY
> WIDESPREAD MEDIUM OF COMMUNICATION, EVEN FOR THAT TYPE OF
> AUDIENCES -- **AND THE VERY ATTEMPT TO EXPAND MATHEMATICA
> FOR THAT PURPOSE IS DAMAGING TO MATHEMATICA ITSELF**
>
> I am totally unsupportive of the proposition that Mathematica can
> become
> a universal, or even very widespread, publication medium, where I use
> "become universal" to mean that Mathematica notebooks will displace
> and/or replace many other current publication formats like TeX, PDF,
> or
> even Word or PowerPoint (as much as I loathe Microsoft!), for many
> current media applications like reports, journal publications,
> presentations, dissertations, and so on.
>
> In fact, I think the attempt to expand Mathematica to accomplish
> this is
> not just misguided but actively damaging, to Mathematica and to its
> users. Reasons for this include:
>
> a) I view Mathematica as a very sophisticated *computational* tool,
> and
> secondarily as a similarly sophisticated graphical and textual
> *display*
> for outputting its computed results -- and I consider it to be of high
> quality and highly successful at both of these tasks.
>
> But, viewed just as a high-grade and sophisticated computational tool,
> Mathematica is already (and unavoidably) enormously large, enormously
> complex, with complex syntax, and many complex internal interactions
> --
> which means a large learning curve, and a huge documentation, just
> to do
> the computational task.
>
> Don't try to tell me about how a novice can type in and evaluate
> a=2;b=3;c=a+b;Plot[c x, {x,0,5}] the first time they sit down in front
> of it. That's certainly true, but as soon as you get to any
> significant
> level of computational sophistication, there's a _large_ learning
> curve,
> and many ways to go wrong in using what you've learned -- and a very
> large "remembering task", to retain all this knowledge from one time
> you
> use it to the next.
>
> [As I worked my way from v1 through v5, each time I leaned some new
> coding trick, or got one of the more sophisticated commands to work, I
> would toss a brief template and explanation into my own personal
> "notes"
> notebook, which was permanently accessible by being locked at the
> bottom
> of the "Open Recent" menu. It's now 0.5 MB in size -- and of course
> made more or less useless by 6.0.]
>
> b) Add to this the graphic and textual (and animation) display
> capabilities that we all want to have from Mathematica, not as
> publication quality output but just as useful output. Adding these
> display capabilities may not exactly double the size and complexity of
> Mathematica, and of the learning curve, and of the documentation,
> and of
> the "remembering task" associated with it -- but doing so very
> substantially expands all of these aspects, as well as introducing
> all
> the complexities of interactions between the output routines and the
> computational routines.
>
> [Plotting a result, or making a Table, can leave the _computational_
> state of Mathematica different from what it was before you produced
> this
> output, right? And Plot and Table change it in _different_ ways. Not
> complaining about this -- just noting it.]
>
> c) So, you're proposing to add publication-quality output and
> presentation quality capabilities to the Mathematica core -- meaning
> adding all the added complexity of the program, the added syntax, the
> added learning curve, the added documentation, and the added
> "remembering task" associated with this function on top of the
> computational and display complexities already present.
>
> Forget it! ***Doing this is simply going to seriously damage the
> utility -- and commercial value of Mathematica for its primary
> computational and display functions, and for its "ordinary users"***.
>
> d) And, from what I know of journal publishing, commercial and by
> professional societies, it's not going to happen!
>
>
> Finally:
>
> THE MULTIPLE NOTEBOOK PARADIGM IS FINE, FOR THOSE WHO LIKE
> IT -- WHICH I THINK CAN INCLUDE A LOT OF "ORDINARY USERS"
>
> In arguing this, some interpolation can help:
>
>> If you follow the multiple notebook paradigm, you also have to
>> devise some
>> kind of organization for the notebooks.
>
> All the organization that's needed is that all the notebooks that are
> needed for a given project are right there, visible and editable, in
> the
> folder (or a subfolder) for that project!
>
>> You have to remember that for
>> WorkingNotebookA you need ModuleNotebooks a, c and f. But for
>> WorkingNotebookB you need ModuleNotebooks a, b, and c. Pretty soon
>> you are
>> designing your own system, which is not the standard Mathematica
>> system.
>
> Nope. If I need (more accurately, "want to re-use some part") of
> notebooks a or c from project A in project B, I just copy 'em over to
> the Project B folder! (Rule #N -- Disk space is cheap!).
>
> And once there, I can modify them for project B -- without screwing
> up
> the copies left back in the project A folder.
>
> And nothing I do will be modifying Mathematica itself -- don't
> intend to
> get into that (I'm after max simplicity, not complications).
>
>> People who might use your notebooks not only have to learn the
>> standard
>> system (because they might be doing other things as well) but they
>> also have
>> to learn your special system.
>
> The only thing they have to do to _use_ my notebooks as written (i.e.,
> to produce further results from them) is start a standard copy of
> Mathematica fresh, open my notebooks, and run 'em.
>
> If they've modified their copy of Mathematica itself to be non-
> standard
> in some way, well, they've produced problems that may occur however
>
> If they want to merge my notebooks into some notebooks of theirs,
> well,
> I'm afraid this is "do this at your own risk situation" -- and I've
> not
> made it more difficult.
>
>> In the time it took you to devise your own system, you could have
>> learned
>> the standard package system. It is really not that difficult.
>
> Sorry -- can't agree. There are not a lot of complex steps involved
> in
> defining or using packages, agreed. **But digging the exact correct
> steps out of the documentation, learning the vocabulary, avoiding
> missteps, and remembering these steps after a time lag, are all
> frustrating and time-consuming**.
>
>> If you organize your notebooks using Sections (and I wonder if using
>> multiple notebooks is a substitute for using Sectional organization
>> within a
>> notebook?), then you can initially put
>> your routines in a Routines Section. The notebook does not have to be
>> 'visually large' because the Routines Section can usually be closed
>> up.
>
> I don't like long notebooks -- navigating through them is awkward and
> tedious. I don't like open and closing selected cells -- tedious and
> awkward also. Since it makes no difference in functionality, why
> don't
> I put the Routines Section in a separate notebook, meaning a separate
> window -- which, on a Mac, I can instantaneously, with a single mouse
> click or key command, fold down into the Dock, or WindowShade (still
> functional), and equally quickly recover to edit if needed.
>
> ---------
>
> Enough for now -- and quite a while beyond that.
>
> Over and out, AES
>
> ======================================
> In article <fu9fps$cbb$1 at smc.vnet.net>,
> "David Park" <djmpark at comcast.net> wrote:
>
>> AES,
>>
>> I would like to put in a pitch for using the standard Mathematica
>> package
>> method and maybe even go further and learn something about
>> documentation.
>>
>> I think one of the unstated assumptions here is that no one else is
>> going to
>> see your Mathematica work because all of the pertinent results will
>> be
>> Exported or copied out into non-Mathematica documents before being
>> transmitted to a larger public. In that case why not organize the
>> internal
>> work in the way that seems most convenient to you?
>>
>> But another assumption that we can make for certain is that you
>> have expert
>> knowledge and a lot of experience in optical fibers. You also have
>> done, and
>> will do a lot of work in organizing the theory and calculation
>> methods for
>> the field. This is valuable stuff! So why not make it available to
>> others in
>> the Mathematica format with all of its advantages of dynamics and
>> interactivity. In addition to the final results, if you have worked
>> out
>> various algorithms, calculation and display routines these are
>> valuable. Why
>> not make them available to other people as Mathematica packages?
>>
>> If you follow the multiple notebook paradigm, you also have to
>> devise some
>> kind of organization for the notebooks. You have to remember that for
>> WorkingNotebookA you need ModuleNotebooks a, c and f. But for
>> WorkingNotebookB you need ModuleNotebooks a, b, and c. Pretty soon
>> you are
>> designing your own system, which is not the standard Mathematica
>> system.
>> People who might use your notebooks not only have to learn the
>> standard
>> system (because they might be doing other things as well) but they
>> also have
>> to learn your special system.
>>
>> Rule Number 1: WRI has put a lot of thought into designing a user
>> interface.
>> It work's fairly well. Be very wary of interposing your own
>> interface.
>>
>> In the time it took you to devise your own system, you could have
>> learned
>> the standard package system. It is really not that difficult. A
>> Mathematica
>> package is just a simple particular form of notebook with
>> Initialization
>> cells. You just save it as an Auto Generated Package and that is
>> all there
>> is to it.
>>
>> If you organize your notebooks using Sections (and I wonder if using
>> multiple notebooks is a substitute for using Sectional organization
>> within a
>> notebook?), then you can initially put
>> your routines in a Routines Section. The notebook does not have to be
>> 'visually large' because the Routines Section can usually be closed
>> up.
>> Other things should also be in Sections. (When I'm working on a
>> particular
>> derivation of development I put it in its own Section. If I don't
>> especially
>> like it or get stuck I usually mark it as Try 1, close it up, copy
>> and paste
>> it and work on a Try 2. When I finally get something I like I throw
>> all the
>> false steps away.) When you develop a routine in a
>> working notebook, move it to the Routines Section and write a usage
>> message
>> for it and make it an Initialization cell. If you start a new working
>> notebook, copy the Routines Section over. At some point, you will be
>> convinced that some of the routines are in good shape for general
>> use. Then
>> move them to your OpticalFiber package. Then you will have one simple
>> working structure. A single package and working notebooks that load
>> the
>> package. You or your readers don't have to look at any of the
>> package code
>> anymore. You may still have some things in your Routines Sections
>> that
>> haven't yet made it to the package.
>>
>> Documentation is another question, but again, if you have worked
>> out good
>> routines and methods they are really worth something to other
>> people and
>> deserve to be documented. (And in any case, I find that I am always
>> forgetting how some of my own routines work and have to refer to my
>> own
>> documentation!) With a little cleverness the documentation can also
>> serve as
>> a set of test cases if you make changes to your routine. Working on
>> documentation also helps to perfect a routine. Sometimes if it is
>> difficult
>> to explain and illustrate a routine one might wonder about it basic
>> design.
>> It's true that this takes time, but it's a focused and productive
>> use of
>> one's time.
>>
>> David Reiss has put up a good introduction to creating Version 6
>> documentation.
>>
>> http://www.scientificarts.com/worklife/notebooks/
>>
>> and the Workbench application for documentation is coming along.
>>
>> Rule Number 2: Most users of Mathematica are pretty capable people.
>> Turn
>> your hard work into permanently useful and active knowledge for
>> yourself and
>> other people.
>>
>> --
>> David Park
>> djmpark at comcast.net
>> http://home.comcast.net/~djmpark/
>
--Apple-Mail-6-516361386
Content-Type: text/html;
charset=US-ASCII
Content-Transfer-Encoding: quoted-printable
<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space; ">I partly agree with the =
conclusions and I disagree with most of the supporting argument. I agree =
that Mathematica has little chance to<div><br><div><blockquote =
type="cite"> "displace and/or replace many other current =
publication formats like TeX, PDF... many <font =
class="Apple-style-span" color="#000000">current media applications =
like reports, journal publications, presentations, dissertations, =
and so on.</font></blockquote><div><br></div><div>My reasons, are =
however, completely different. Basically I believe that at the =
research level there is not that much demand for the sort of live =
computation capability that Mathematica offers. In my own case the =
benefits of adding some "live content" to most of my papers would amount =
to just one thing: they would become somewhat "cuter". I don't think =
such material would make any difference to the the sort of people who =
might choose to read such papers; they would still =
remain incomprehensible to those to whom they =
are incomprehensible in their present form, and they would not =
become any clearer to those who understand them now. So the benefits =
would be marginal. However, live contents is of huge benefit in =
undergraduate teaching in practically every respect. But this is =
not journal level staff.</div><div><br></div><div>I completely disagree =
with the part about Mathematica's complexity. On the contrary, if we =
discount the mathematical and algorithmic aspects of the program (which =
are very complex, but no more in Mathematica than in any other CAS) they =
we are left with a basic core language that has remained largely stable =
as it expanded its scope to include typesetting, live graphics etc, =
interface building. Of course many functions have been added, but I =
don't consider this as an increase in complexity (they tend to make =
using the language simpler). Fundamental changes in syntax would =
represent a serious increase in complexity and there have been very few =
of these over the many years of Mathemaitca's existence. Indeed, it is =
this underlying simplicity that made the rapid expansion of the scope of =
the Mathematica language possible.</div><div><br></div><div>Andrzej =
Kozlowski</div><div><br></div><div><br></div><div><div><div>On 19 Apr =
2008, at 16:35, AES wrote:</div><br><blockquote =
type="cite"><div>David,<br><br>I'll not try to respond to your =
(appreciated) response, as appended <br>below for completeness, by =
interpolating a lot of comments into your <br>message (always find =
lengthy posts like that, with interpolated replies, <br>hard to read, in =
fact); but will instead top-post a few more general <br>responses as =
follows:<br><br><br>NO OBJECTIONS TO DISTRIBUTING MATHEMATICA NOTEBOOKS, =
AS A <br>LIMITED MEANS OF COMMUNICATION TO SMALL AND SPECIALIZED =
<br>AUDIENCES -- FINE IDEA, IN FACT<br><br>I have no basic objections at =
all to distributing notebooks I've created <br>-- even interactive ones =
-- to colleagues, or pretty much any one who <br>wants them. In =
fact, I've mentioned the availability of notebooks in a <br>few journal =
publications, and gotten a few email requests for some of <br>them as a =
result. Can be a useful means of technical communication, in <br>a =
limited universe of users.<br><br><br>BUT MATHEMATICA CAN NEVER BECOME A =
UNIVERSAL OR EVEN VERY <br>WIDESPREAD MEDIUM OF COMMUNICATION, EVEN FOR =
THAT TYPE OF <br>AUDIENCES -- **AND THE VERY ATTEMPT TO EXPAND =
MATHEMATICA<br>FOR THAT PURPOSE IS DAMAGING TO MATHEMATICA =
ITSELF**<br><br>I am totally unsupportive of the proposition that =
Mathematica can become <br>a universal, or even very widespread, =
publication medium, where I use <br>"become universal" to mean that =
Mathematica notebooks will displace <br>and/or replace many other =
current publication formats like TeX, PDF, or <br>even Word or =
PowerPoint (as much as I loathe Microsoft!), for many <br>current media =
applications like reports, journal publications, <br>presentations, =
dissertations, and so on.<br><br>In fact, I think the attempt to expand =
Mathematica to accomplish this is <br>not just misguided but actively =
damaging, to Mathematica and to its <br>users. Reasons for this =
include:<br><br>a) I view Mathematica as a very sophisticated =
*computational* tool, and <br>secondarily as a similarly sophisticated =
graphical and textual *display* <br>for outputting its computed results =
-- and I consider it to be of high <br>quality and highly successful at =
both of these tasks. <br><br>But, viewed just as a high-grade and =
sophisticated computational tool, <br>Mathematica is already (and =
unavoidably) enormously large, enormously <br>complex, with complex =
syntax, and many complex internal interactions -- <br>which means a =
large learning curve, and a huge documentation, just to do <br>the =
computational task. <br><br>Don't try to tell me about how a =
novice can type in and evaluate <br>a=2;b=3;c=a+b;Plot[c x, =
{x,0,5}] the first time they sit down in front <br>of it. That's =
certainly true, but as soon as you get to any significant <br>level of =
computational sophistication, there's a _large_ learning curve, <br>and =
many ways to go wrong in using what you've learned -- and a very =
<br>large "remembering task", to retain all this knowledge from one time =
you <br>use it to the next.<br><br>[As I worked my way from v1 through =
v5, each time I leaned some new <br>coding trick, or got one of the more =
sophisticated commands to work, I <br>would toss a brief template and =
explanation into my own personal "notes" <br>notebook, which was =
permanently accessible by being locked at the bottom <br>of the "Open =
Recent" menu. It's now 0.5 MB in size -- and of course <br>made =
more or less useless by 6.0.]<br><br>b) Add to this the graphic =
and textual (and animation) display <br>capabilities that we all want to =
have from Mathematica, not as <br>publication quality output but just as =
useful output. Adding these <br>display capabilities may not =
exactly double the size and complexity of <br>Mathematica, and of the =
learning curve, and of the documentation, and of <br>the "remembering =
task" associated with it -- but doing so very <br>substantially =
expands all of these aspects, as well as introducing all <br>the =
complexities of interactions between the output routines and the =
<br>computational routines.<br><br>[Plotting a result, or making a =
Table, can leave the _computational_ <br>state of Mathematica different =
from what it was before you produced this <br>output, right? And =
Plot and Table change it in _different_ ways. Not <br>complaining =
about this -- just noting it.]<br><br>c) So, you're proposing to =
add publication-quality output and <br>presentation quality capabilities =
to the Mathematica core -- meaning <br>adding all the added complexity =
of the program, the added syntax, the <br>added learning curve, the =
added documentation, and the added <br>"remembering task" associated =
with this function on top of the <br>computational and display =
complexities already present.<br><br>Forget it! ***Doing this is =
simply going to seriously damage the <br>utility -- and commercial value =
of Mathematica for its primary <br>computational and display functions, =
and for its "ordinary users"***.<br><br>d) And, from what I know =
of journal publishing, commercial and by <br>professional societies, =
it's not going to happen!<br><br><br>Finally: <br><br>THE MULTIPLE =
NOTEBOOK PARADIGM IS FINE, FOR THOSE WHO LIKE <br>IT -- WHICH I THINK =
CAN INCLUDE A LOT OF "ORDINARY USERS"<br><br>In arguing this, some =
interpolation can help:<br><br><blockquote type="cite">If you follow =
the multiple notebook paradigm, you also have to devise =
some<br></blockquote><blockquote type="cite">kind of organization for =
the notebooks. <br></blockquote><br>All the organization that's needed =
is that all the notebooks that are <br>needed for a given project are =
right there, visible and editable, in the <br>folder (or a subfolder) =
for that project!<br><br><blockquote type="cite">You have to remember =
that for<br></blockquote><blockquote type="cite">WorkingNotebookA you =
need ModuleNotebooks a, c and f. But for<br></blockquote><blockquote =
type="cite">WorkingNotebookB you need ModuleNotebooks a, b, and c. =
Pretty soon you are<br></blockquote><blockquote type="cite">designing =
your own system, which is not the standard Mathematica =
system.<br></blockquote><br>Nope. If I need (more accurately, =
"want to re-use some part") of <br>notebooks a or c from project A in =
project B, I just copy 'em over to <br>the Project B folder! (Rule #N -- =
Disk space is cheap!).<br><br>And once there, I can modify them for =
project B -- without screwing up <br>the copies left back in the =
project A folder.<br><br>And nothing I do will be modifying Mathematica =
itself -- don't intend to <br>get into that (I'm after max simplicity, =
not complications).<br><br><blockquote type="cite">People who might =
use your notebooks not only have to learn the =
standard<br></blockquote><blockquote type="cite">system (because they =
might be doing other things as well) but they also =
have<br></blockquote><blockquote type="cite">to learn your special =
system.<br></blockquote><br>The only thing they have to do to _use_ my =
notebooks as written (i.e., <br>to produce further results from them) is =
start a standard copy of <br>Mathematica fresh, open my notebooks, and =
run 'em. <br><br>If they've modified their copy of Mathematica =
itself to be non-standard <br>in some way, well, they've produced =
problems that may occur however<br><br>If they want to merge my =
notebooks into some notebooks of theirs, well, <br>I'm afraid this is =
"do this at your own risk situation" -- and I've not <br>made it more =
difficult.<br><br><blockquote type="cite">In the time it took you to =
devise your own system, you could have =
learned<br></blockquote><blockquote type="cite">the standard package =
system. It is really not that difficult.<br></blockquote><br>Sorry -- =
can't agree. There are not a lot of complex steps involved in =
<br>defining or using packages, agreed. **But digging the =
exact correct <br>steps out of the documentation, learning the =
vocabulary, avoiding <br>missteps, and remembering these steps after a =
time lag, are all <br>frustrating and =
time-consuming**.<br><br><blockquote type="cite">If you organize your =
notebooks using Sections (and I wonder if =
using<br></blockquote><blockquote type="cite">multiple notebooks is a =
substitute for using Sectional organization within =
a<br></blockquote><blockquote type="cite">notebook?), then you can =
initially put<br></blockquote><blockquote type="cite">your routines in =
a Routines Section. The notebook does not have to =
be<br></blockquote><blockquote type="cite">'visually large' because =
the Routines Section can usually be closed up.<br></blockquote><br>I =
don't like long notebooks -- navigating through them is awkward and =
<br>tedious. I don't like open and closing selected cells -- =
tedious and <br>awkward also. Since it makes no difference in =
functionality, why don't <br>I put the Routines Section in a separate =
notebook, meaning a separate <br>window -- which, on a Mac, I can =
instantaneously, with a single mouse <br>click or key command, fold down =
into the Dock, or WindowShade (still <br>functional), and equally =
quickly recover to edit if needed.<br><br>---------<br><br>Enough for =
now -- and quite a while beyond that.<br><br>Over and out, =
AES<br><br>==================
=====================<br>In =
article <<a =
href="mailto:fu9fps$cbb$1 at smc.vnet.net">fu9fps$cbb$1 at smc.vnet.net</a>>,<=
br> "David Park" <<a =
href="mailto:djmpark at comcast.net">djmpark at comcast.net</a>> =
wrote:<br><br><blockquote type="cite">AES,<br></blockquote><blockquote =
type="cite"><br></blockquote><blockquote type="cite">I would like to =
put in a pitch for using the standard Mathematica =
package<br></blockquote><blockquote type="cite">method and maybe even =
go further and learn something about =
documentation.<br></blockquote><blockquote =
type="cite"><br></blockquote><blockquote type="cite">I think one of =
the unstated assumptions here is that no one else is going =
to<br></blockquote><blockquote type="cite">see your Mathematica work =
because all of the pertinent results will be<br></blockquote><blockquote =
type="cite">Exported or copied out into non-Mathematica documents =
before being<br></blockquote><blockquote type="cite">transmitted to a =
larger public. In that case why not organize the =
internal<br></blockquote><blockquote type="cite">work in the way that =
seems most convenient to you?<br></blockquote><blockquote =
type="cite"><br></blockquote><blockquote type="cite">But another =
assumption that we can make for certain is that you have =
expert<br></blockquote><blockquote type="cite">knowledge and a lot of =
experience in optical fibers. You also have done, =
and<br></blockquote><blockquote type="cite">will do a lot of work in =
organizing the theory and calculation methods =
for<br></blockquote><blockquote type="cite">the field. This is =
valuable stuff! So why not make it available to others =
in<br></blockquote><blockquote type="cite">the Mathematica format with =
all of its advantages of dynamics and<br></blockquote><blockquote =
type="cite">interactivity. In addition to the final results, if you =
have worked out<br></blockquote><blockquote type="cite">various =
algorithms, calculation and display routines these are valuable. =
Why<br></blockquote><blockquote type="cite">not make them available to =
other people as Mathematica packages?<br></blockquote><blockquote =
type="cite"><br></blockquote><blockquote type="cite">If you follow =
the multiple notebook paradigm, you also have to devise =
some<br></blockquote><blockquote type="cite">kind of organization for =
the notebooks. You have to remember that for<br></blockquote><blockquote =
type="cite">WorkingNotebookA you need ModuleNotebooks a, c and f. But =
for<br></blockquote><blockquote type="cite">WorkingNotebookB you need =
ModuleNotebooks a, b, and c. Pretty soon you =
are<br></blockquote><blockquote type="cite">designing your own system, =
which is not the standard Mathematica =
system.<br></blockquote><blockquote type="cite">People who might use =
your notebooks not only have to learn the =
standard<br></blockquote><blockquote type="cite">system (because they =
might be doing other things as well) but they also =
have<br></blockquote><blockquote type="cite">to learn your special =
system.<br></blockquote><blockquote =
type="cite"><br></blockquote><blockquote type="cite">Rule Number 1: =
WRI has put a lot of thought into designing a user =
interface.<br></blockquote><blockquote type="cite">It work's fairly =
well. Be very wary of interposing your own =
interface.<br></blockquote><blockquote =
type="cite"><br></blockquote><blockquote type="cite">In the time it =
took you to devise your own system, you could have =
learned<br></blockquote><blockquote type="cite">the standard package =
system. It is really not that difficult. A =
Mathematica<br></blockquote><blockquote type="cite">package is just a =
simple particular form of notebook with =
Initialization<br></blockquote><blockquote type="cite">cells. You just =
save it as an Auto Generated Package and that is all =
there<br></blockquote><blockquote type="cite">is to =
it.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote=
type="cite">If you organize your notebooks using Sections (and I =
wonder if using<br></blockquote><blockquote type="cite">multiple =
notebooks is a substitute for using Sectional organization within =
a<br></blockquote><blockquote type="cite">notebook?), then you can =
initially put<br></blockquote><blockquote type="cite">your routines in =
a Routines Section. The notebook does not have to =
be<br></blockquote><blockquote type="cite">'visually large' because =
the Routines Section can usually be closed =
up.<br></blockquote><blockquote type="cite">Other things should also =
be in Sections. (When I'm working on a =
particular<br></blockquote><blockquote type="cite">derivation of =
development I put it in its own Section. If I don't =
especially<br></blockquote><blockquote type="cite">like it or get =
stuck I usually mark it as Try 1, close it up, copy and =
paste<br></blockquote><blockquote type="cite">it and work on a Try 2. =
When I finally get something I like I throw all =
the<br></blockquote><blockquote type="cite">false steps away.) When =
you develop a routine in a<br></blockquote><blockquote =
type="cite">working notebook, move it to the Routines Section and =
write a usage message<br></blockquote><blockquote type="cite">for it =
and make it an Initialization cell. If you start a new =
working<br></blockquote><blockquote type="cite">notebook, copy the =
Routines Section over. At some point, you will =
be<br></blockquote><blockquote type="cite">convinced that some of the =
routines are in good shape for general use. =
Then<br></blockquote><blockquote type="cite">move them to your =
OpticalFiber package. Then you will have one =
simple<br></blockquote><blockquote type="cite">working structure. A =
single package and working notebooks that load =
the<br></blockquote><blockquote type="cite">package. You or your =
readers don't have to look at any of the package =
code<br></blockquote><blockquote type="cite">anymore. You may still =
have some things in your Routines Sections =
that<br></blockquote><blockquote type="cite">haven't yet made it to =
the package.<br></blockquote><blockquote =
type="cite"><br></blockquote><blockquote type="cite">Documentation =
is another question, but again, if you have worked out =
good<br></blockquote><blockquote type="cite">routines and methods they =
are really worth something to other people =
and<br></blockquote><blockquote type="cite">deserve to be documented. =
(And in any case, I find that I am always<br></blockquote><blockquote =
type="cite">forgetting how some of my own routines work and have to =
refer to my own<br></blockquote><blockquote type="cite">documentation!) =
With a little cleverness the documentation can also serve =
as<br></blockquote><blockquote type="cite">a set of test cases if you =
make changes to your routine. Working on<br></blockquote><blockquote =
type="cite">documentation also helps to perfect a routine. Sometimes =
if it is difficult<br></blockquote><blockquote type="cite">to explain =
and illustrate a routine one might wonder about it basic =
design.<br></blockquote><blockquote type="cite">It's true that this =
takes time, but it's a focused and productive use =
of<br></blockquote><blockquote type="cite">one's =
time.<br></blockquote><blockquote =
type="cite"><br></blockquote><blockquote type="cite">David Reiss has =
put up a good introduction to creating Version =
6<br></blockquote><blockquote =
type="cite">documentation.<br></blockquote><blockquote =
type="cite"><br></blockquote><blockquote type="cite"><a =
href="http://www.scientificarts.com/worklife/notebooks/";>http://www.scie=
ntificarts.com/worklife/notebooks/</a><br></blockquote><blockquote =
type="cite"><br></blockquote><blockquote type="cite">and the =
Workbench application for documentation is coming =
along.<br></blockquote><blockquote =
type="cite"><br></blockquote><blockquote type="cite">Rule Number 2: =
Most users of Mathematica are pretty capable people. =
Turn<br></blockquote><blockquote type="cite">your hard work into =
permanently useful and active knowledge for yourself =
and<br></blockquote><blockquote type="cite">other =
people.<br></blockquote><blockquote =
type="cite"><br></blockquote><blockquote type="cite">-- =
<br></blockquote><blockquote type="cite">David =
Park<br></blockquote><blockquote type="cite"><a =
href="mailto:djmpark at comcast.net">djmpark at comcast.net</a><br></blockquot=
e><blockquote type="cite"><a =
href="http://home.comcast.net/~djmpark/";>http://home.comcast.net/~djmpar=
k/</a><br></blockquote><br></div></blockquote></div><br></div></div></div>=
</body></html>=
--Apple-Mail-6-516361386--
Prev by Date:
**Re: Re: Product command with matrices**
Next by Date:
**Re: Problems to find the local extrema of an InterpolatingFunction**
Previous by thread:
** Re: A kernel, multiple notebooks, and Global?**
Next by thread:
**Re: A kernel, multiple notebooks, and Global?**
| |