Subject: Case sensitivity (was Conjugate is weird)
From: Stavros Macrakis
Date: Mon, 14 Apr 2003 14:43:32 -0400
Stavros said:
>> Many languages nowadays are case-sensitive, so in theory you
>> could have distinct identifiers Foo, foo, FOO, and even for that
>> matter fOo, foO, and FoO. But everyone would agree (right?)
>> that this would be poor practice.
CY answered:
> Poor programming practice, yes. But not necessarily in
> things like scientific descriptions for classrooms - if the
> book is using FOO to represent a vector and foo to represent
> a scalar, you want to make your worksheets/whatever work like that.
Of course, in theory, classroom material could be doing completely
arbitrary things. But even if the two-way distinction foo/Foo or
foo/FOO is used, I am skeptical that anyone would use the distinction
FoO/fOo!
> If I understand correctly, defint will still be defint and
> integrate will still be integrate - if someone types
> Integrate we can prompt them to type integrate. What
> problems to you forsee?
-- At some point, I think we'll need to systematize the command names.
But I REALLY don't want to open that can of worms now.
-- Though DWIM may or may not useful, I do NOT think it is a substitute
for good design in the first place. It is easy to autocorrect "taht" to
"that" because "that" is almost certainly wrong. But if the built-in
function is called "diff" and I happen to want to use "Diff" as a finite
difference operator, how is Maxima going to know that? Presumably this
is precisely the sort of thing you *have* case-sensitivity for. If
you're going to make it a pain to use, why have it at all?
>> Then again, maybe our target audience really *is* geeky.
> I'm thinking yes.
Maxima should be accessible to as large a population as possible,
including high-school students, people in the third world, etc. etc. I
do NOT think we should be looking in a mirror to define our target
population. On the contrary, I think we need to make sure that it is
falling-off-a-log-simple to get started with Maxima.
> There might be another way to handle it - we might make the
> low level processing system in maxima behave the way the
> programmers would like it to, and have the front end handle
> the user visible formatting like that. It could be the front
> end's job to translate the formatted stuff to code the low
> level maxima can understand, like R -> capital_r.
Yes, I think that is certainly part of the solution.
> Or, if people really want case insensitive, we could add a
> toggle where Maxima automatically makes all input lower case
> for evaluation.... When there's a case like this where there's
> not a lot of consensus, I think we should look for a way to
> accomidate both positions.
No, no, no! This means that some user-written packages will be
incompatible with other users' environments. Very bad. We should have
a *single* user community.
-s