Subject: Case sensitivity (was Conjugate is weird)
From: James Amundson
Date: Wed, 09 Apr 2003 16:19:49 -0500
I just (privately) told Stavros that I was putting off restarting this
conversation until later. It looks like the conversation has started
anyway.
-- First, let me restate the plan as it stands on the "release plans"
web page, <http://maxima.sourceforge.net/release-plans.html>:
Before 5.9.1
General bug fixes.
New command-line system for Unix and Windows.
Before 5.9.2
The Great Source Downcasing.
Deal with case sensitivity.
Changing the case-sensitivity properties of Maxima is going to be a big
deal. It deserves a separate release. (The case of the source code
itself is probably a separate issue. I hope putting the two together
does not conflate the two issues more than necessary.)
-- I am taking as given that Maxima's current method for dealing with
the case of symbols is not satisfactory (an understatement if there ever
was one.)
-- I would like to explain my own reasoning about this issue:
1) Maxima is a program for representing mathematics. Although
notational conventions vary, I have never seen anyone consistently use
case-insensitive notation. To the contrary, people often have to deal
with expressions like
X-x
or
P = (p,0,0,-p)
Of course, non-ascii symbols are also common in mathematics. Case is
only one of many problems in representing mathematics in Maxima.
2) Maxima is a programming language. Most modern programming languages
are case sensitive, although there are many exceptions. Common Lisp, of
course, is a notable exception. Sadly, Common Lisp's convention for
dealing with case is overly general, overly complicated and not very
useful in a way that only a standards committee could produce. Most
*users* of Maxima are not experts in Common Lisp.
3) Maxima is only one of many computer algebra systems. Most (?) of the
competitors are case sensitive. Mathematica is the most obvious example.
4) In days of yore, I taught physics undergraduates to use Mathematica.
(Yes, it's true.) The number one problem they had was remembering to
type Sin[x] instead of sin(x). I had that problem when I first started
to use Mathematica, too.
5) Most existing Maxima/Macsyma code relies on some level of case
insensitivity.
-- In my opinion, we should
a) Make Maxima totally case sensitive.
b) Make the Maxima built-in functions lower case.
Point 1) is the most important aspect of my reasoning. I think we can
deal with 5) -- we are making this change for a better future.
It looks like my opinion is compatible with Richard's opinion. I think
his spelling corrector suggestion could be a reasonable way to ease the
transition.
--Jim
On Wed, 2003-04-09 at 12:36, Richard Fateman wrote:
> The Common Lisp default in the area of case sensitivity
> is terrible, and was probably based on the uninformed world view
> of people who were using old DEC PDP-10 computers, which were
> (essentially) upper-case only.
>
> I suggest that Maxima be case sensitive, just as Mathematica
> is. A spelling corrector can be written that suggests...
> "There is no command Diff. Would you like to use diff ?"
> etc.
>
> I like being able to use X,x, etc.