Christian,
There's no person on the face of the Earth more appropriate to continue
this conversation with than with you. So now, having intentionally tried
to make Larry suffer less, I now make you suffer.
There's a certain forum in which I deemphasized Isabelle as a
"programming language", a point which you countered, a counterpoint
which I partially countered.
As many times, what I reject, after having some time to think, I then,
in some form, embrace. And so, my mental investigations, even now, is in
trying to determine whether "programming language" can be legitimately
applied to Isabelle/HOL, where I'm leaning towards saying "yes", though
that doesn't mean I'll use the label anymore.
Having had my say with too many emails on this, I am now only interested
in choosing vocabulary for Isabelle for pure, practical reasons.
Without explaining any of the thought process that's led to this, I seek
one word, where the following describes some of the criteria:
1) What is one word which I can use to label the many languages that are
used in what I see in jEdit?
2) This word needs to general enough to describe the main languages that
I see: Pure, Isar, and Isabelle/HOL.
3) This word needs to be able to be used as a noun and a verb.
4) This word, as a noun, needs to describe what someone might want to
call me.
5) This word, as a verb, needs to describe I am doing when I use
Isabelle as a language.
6) This word needs to be acceptable by the experts as being technically
correct.
7) This words needs to have meaning to programmers who know nothing
about Isabelle as a language.
So the word "programming", because it's been used for years, and has
accumulated many connotations, doesn't work.
Below, you give me vocabulary, and I am happy to follow the lead of the
official documentation, the principal developers, and the rest of the
professional developers, like you.
But, as I said, my pursuit of a word is for everyday, practical usage.
To make a long story short, the word is "code".
Isabelle has source code files with the extension "thy".
1) If they are source code files, then what I'm looking at in jEdit must
be code.
2) If I'm editing code in a THY file, then it must be I'm coding.
3) If I ever get good enough at coding with the many languages of
Isabelle, then it must be that I'll be a "coder".
4) "Code" has no connotational requirement that anything be executed.
5) It doesn't have to be a recipe, as with programs.
6) "Code" is merely information that is "encoded".
So, at this point, seeing that "code", though commonly used, hasn't been
totally corrupted, maybe the proof assistant community can usurp the
word for their purposes.
Why? If leading authorities don't give the masses a practical word to
use for something, they'll choose their own word. Compare Latin to
Vulgar Latin. Language usage is heavily determined by anarchy.
Hypothetical scenario: I have 350 characters to make a comment on a
forum. Do I say, "When I myself am writing formal specifications with
Isabelle..."
Yes, I do, if I'm trying to be the benevolent educator, taking advantage
of what can be a teachable moment.
However, no, I don't, not if I'm at 400 characters. The phrase "writing
formal specifications with Isabelle" becomes "coding in Isa".
I've just mentioned an upside to the word "code". It's four letters. I
can't think of a three letter word at all to replace "code".
I'll check out of this thread on what is good or bad vocabulary.
Regards,
GB