
Notation as a Tool of Thought - ColinWright
http://www.jsoftware.com/papers/tot1.htm
======
andrewl
The Whitehead quote at the start (from An Introduction to Mathematics, 1911)
is a great one, and relevant to programming as well as pure math. But a lot of
good came after the one sentence the author quotes:

"By relieving the brain of all unnecessary work, a good notation sets it free
to concentrate on more advanced problems, and, in effect, increases the mental
power of the race. Before the introduction of the Arabic notation,
multiplication was difficult, and the division even of integers called into
play the highest mathematical faculties. Probably nothing in the modern world
would have more astonished a Greek mathematician than to learn that ... a
large proportion of the population of Western Europe could perform the
operation of division for the largest numbers. This fact would have seemed to
him a sheer impossibility ... Our modern power of easy reckoning with decimal
fractions is the almost miraculous result of the gradual discovery of a
perfect notation. [...] By the aid of symbolism, we can make transitions in
reasoning almost mechanically, by the eye, which otherwise would call into
play the higher faculties of the brain. [...] It is a profoundly erroneous
truism, repeated by all copy-books and by eminent people when they are making
speeches, that we should cultivate the habit of thinking of what we are doing.
The precise opposite is the case. Civilisation advances by extending the
number of important operations which we can perform without thinking about
them. Operations of thought are like cavalry charges in a battle -- they are
strictly limited in number, they require fresh horses, and must only be made
at decisive moments."

------
impendia
As a research mathematician, I often get annoyed by poor choice of notation,
but I (personally) don't ever have plans with ambiguity or lack of precision.
Indeed, my favorite authors often use notation that is slightly ambiguous, but
is clear in context.

My issues are with math papers that introduce unilluminating notation, too
much notation (henceforth write L for log(x)), or (above all) do not go to
enough effort to keep their arguments simple.

I speak only for myself, and some of my colleagues would surely disagree with
me, but basing mathematical notation off a programming language takes a step
in the opposite direction from what I can process most fluently.

------
forkandwait
I like the idea that notation is a tool of thought, but I think that J (and
APL) are actually rather crappy notations.

I FAR prefer matlab for matrix work, as it is closer to actual math than any
other language I know. For logic ish programming, Prolog or AMPL or SQL (I
like SQL, even though people hate on it all the time).

But, in my humble, J and APL are interesting historically, but rather crappy
in comparison to more recent languages

~~~
mturmon
I was surprised to learn, given the inelegance of much of Matlab, that it was
explicitly influenced by APL. See the blue callout box at

[http://www.mathworks.com/company/newsletters/news_notes/clev...](http://www.mathworks.com/company/newsletters/news_notes/clevescorner/jan06.pdf)

which shows part of a 1983 plan for Matlab:

"Combining the technology of 1) mice and windows, 2) matrix and APL
environments, and 3) direct manipulation, will do for engineers what Lotus
1-2-3 has done for the business world."

Ulf Grenander, the Brown University mathematician who invented statistical
pattern theory, once used APL, but moved to Matlab for his expository book on
pattern theory:

[http://books.google.com/books?id=lxBDcFvFFvsC&pg=PA146&#...</a><p>I agree
that the vectorized operations in Matlab are good at lifting computational
ideas out of the fog of nested for loops. It is more compact to represent some
matrix algebra in Matlab notation than in ordinary matrix notation, as anyone
who has read Golub and van Loan knows.<p>It's weird to proclaim, but this
concise notation can be as freeing for certain problems as Prolog's
declarative transformations, and functional composition in Lisp.

~~~
forkandwait
I think "the inelegance of Matlab" is MUCH overstated. It has some
weirdnesses, some of which are fixed in Octave (it's gnu cousin). But some
apparent bad choices (anything to do with cell arrays, especially) are really
quite powerful when you get to know them.

(If you ask me, R/SPLUS is the inelegant language, especially when doing
serious matrix -- yuck! But it's trendy....)

Matlab is a lot like SQL -- people love to hate on it because it isn't perfect
and they know it really well (because it is ubiquitous and pragmatic).

~~~
mturmon
It has improved a lot. In the late 1990s it was decidedly behind the scripting
languages of the time, and that's partly what I was referring to.

And, the weird lack-of-speed issues. It used to be that you could implement a
matrix multiply, in an m-file, that would be faster than the builtin *. I
benchmarked this myself.

------
ColinWright
Original PDF here: <http://elliscave.com/APL_J/tool.pdf>

~~~
pmiller2
Thank you! I think here might be the appropriate place to comment on the irony
of a web page espousing good notation having its own notation mangled by a bad
PDF->HTML translation.

~~~
klettow
At the bottom of the page, there are the following instructions: The text
requires the APL385 Unicode font, which can be downloaded from
<https://sites.google.com/site/baavector/fonts> .

------
casenelson
Read the award winning Babel-17 by Delany for a bit of science fiction that
explores this idea that language and particularly the notation of the language
affects one's perception of the world.

~~~
flatline
For another sci-fi novel dealing with language, I'd recommend China Mieville's
Embassytown.

~~~
repsilat
Also, the Nebula-winning "Story of Your Life" by Ted Chiang.

Available on
Archive.org:[http://web.archive.org/web/20081015201424/http://heptapod.or...](http://web.archive.org/web/20081015201424/http://heptapod.org/storylife.html)

------
wladimir
From the article:

\- Ease of expressing constructs arising in problems.

\- Suggestivity.

\- Ability to subordinate detail.

\- Economy

\- Amenability to formal proofs.

I think it would be very useful to improve notation for programming languages
as well (we could borrow a lot from mathematics).

With all the advances in display technology and unicode everywhere, you'd say
there is no longer a need to limit ourselves to flat 7-bit ASCII in a simple
grid. Still, we do. Is it really the best way, as it seems lacking on all the
above points, or simply a matter of habit?

------
pmiller2
I seem to remember someone (Knuth, possibly) saying something to the effect of
"Good notation is determined as much by what it leaves out as what it
accentuates." I interpret this as meaning that leaving out accidental
complexity is at least as important as including all the essential elements of
the problem. A good example, then, would be modern notation for the integral
of a function.

------
marshallp
[http://groups.csail.mit.edu/mac/users/gjs/6946/sicm-
html/boo...](http://groups.csail.mit.edu/mac/users/gjs/6946/sicm-html/book-
Z-H-3.html#%_toc_start)

gerald sussman's course on physics in scheme notation

