Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Perl > Perl Misc > The Importance of Terminology's Quality

Reply
Thread Tools

The Importance of Terminology's Quality

 
 
xahlee@gmail.com
Guest
Posts: n/a
 
      05-07-2008
I'd like to introduce a blog post by Stephen Wolfram, on the design
process of Mathematica. In particular, he touches on the importance of
naming of functions.

• Ten Thousand Hours of Design Reviews (2008 Jan 10) by Stephen
Wolfram
http://blog.wolfram.com/2008/01/10/t...esign-reviews/

The issue is fitting here today, in our discussion of “closure”
terminology recently, as well the jargons “lisp 1 vs lisp2” (multi-
meaning space vs single-meaning space), “tail recursion”, “currying”,
“lambda”, that perennially crop up here and elsewhere in computer
language forums in wild misunderstanding and brouhaha.

The functions in Mathematica, are usually very well-name, in contrast
to most other computing languages. In particular, the naming in
Mathematica, as Stephen Wolfram implied in his blog above, takes the
perspective of naming by capturing the essense, or mathematical
essence, of the keyword in question. (as opposed to, naming it
according to convention, which often came from historical happenings)
When a thing is well-named from the perspective of what it actually
“mathematically” is, as opposed to historical developments, it avoids
vast amount of potential confusion.

Let me give a few example.

• “lambda”, widely used as a keyword in functional languages, is named
just “Function” in Mathematica. The “lambda”happend to be called so
in the field of symbolic logic, is due to use of the greek letter
lambda “λ” by happenstance. The word does not convey what it means.
While, the name “Function”, stands for the mathematical concept of
“function” as is.

• Module, Block, in Mathematica is in lisp's various “let*”. The
lisp's keywords “let”, is based on the English word “let”. That word
is one of the English word with multitudes of meanings. If you look up
its definition in a dictionary, you'll see that it means many
disparate things. One of them, as in “let's go”, has the meaning of
“permit; to cause to; allow”. This meaning is rather vague from a
mathematical sense. Mathematica's choice of Module, Block, is based on
the idea that it builds a self-contained segment of code. (however,
the choice of Block as keyword here isn't perfect, since the word also
has meanings like “obstruct; jam”)

• Functions that takes elements out of list are variously named First,
Rest, Last, Extract, Part, Take, Select, Cases, DeleteCases... as
opposed to “car”, “cdr”, “filter”, “filter”, “pop”, “shift”,
“unshift”, in lisps and perl and other langs.

The above are some examples. The thing to note is that, Mathematica's
choices are often such that the word stands for the meaning themselves
in some logical and independent way as much as possible, without
having dependent on a particular computer science field's context or
history. One easy way to confirm this, is taking a keyword and ask a
wide audience, who doesn't know about the language or even unfamiliar
of computer programing, to guess what it means. The wide audience can
be made up of mathematicians, scientists, engineers, programers,
laymen. This general audience, are more likely to guess correctly what
Mathematica's keyword is meant in the language, than the the name used
in other computer languages who's naming choices goes by convention or
context.

(for example, Perl's naming heavily relies on unix culture (grep,
pipe, hash...), while functional lang's namings are typically heavily
based on the field of mathematical logic (e.g. lambda, currying,
closure, monad, ...). Lisp's cons, car, cdr, are based on computer
hardware (this particular naming, caused a major damage to the lisp
language to this day). (Other examples: pop, shift are based on
computer science jargon of “stack”. Grep is from Global Regular
Expression Print, while Regular Expression is from theoretical
computer science of Automata... The name regex has done major hidden
damage to the computing industry, in the sense that if it have just
called it “string patterns”, then a lot explanations, literatures,
confusions, would have been avoided.))

(Note: Keywords or functions in Mathematica are not necessarily always
best named. Nor are there always one absolute choice as best, as there
are many other considerations, such as the force of wide existing
convention, the context where the function are used, brevity,
limitations of English language, different scientific context (e.g.
math, physics, engineering), or even human preferences.)

----------------------------

Many of the issues regarding the importance and effects of
terminology's quality, i've wrote about since about 2000. Here are the
relevant essays:

• Jargons of Info Tech Industry
http://xahlee.org/UnixResource_dir/writ/jargons.html

• The Jargon “Lisp1” vs “Lisp2”
http://xahlee.org/emacs/lisp1_vs_lisp2.html

• The Term Curring In Computer Science
http://xahlee.org/UnixResource_dir/writ/currying.html

• What Is Closure In A Programing Language
http://xahlee.org/UnixResource_dir/writ/closure.html

• What are OOP's Jargons and Complexities
http://xahlee.org/Periodic_dosage_dir/t2/oop.html

• Sun Microsystem's abuse of term “API” and “Interface”
http://xahlee.org/java-a-day/interface.html

• Math Terminology and Naming of Things
http://xahlee.org/cmaci/notation/math_namings.html

Xah
http://www.velocityreviews.com/forums/(E-Mail Removed)
http://xahlee.org/


 
Reply With Quote
 
 
 
 
Bruce C. Baker
Guest
Posts: n/a
 
      05-07-2008

<(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...

[...]

(for example, Perl's naming heavily relies on unix culture (grep,
pipe, hash...), ...

"hash" + "pipe"? Ahhhhh, /no wonder/ Perl is the syntactic mishmash it is!




 
Reply With Quote
 
 
 
 
Kyle McGivney
Guest
Posts: n/a
 
      05-08-2008
> Module, Block, in Mathematica is in lisp's various let*. The
> lisp's keywords let, is based on the English word let. That word
> is one of the English word with multitudes of meanings. If you look up
> its definition in a dictionary, you'll see that it means many
> disparate things. One of them, as in let's go, has the meaning of
> permit; to cause to; allow. This meaning is rather vague from a
> mathematical sense. Mathematica's choice of Module, Block, is based on
> the idea that it builds a self-contained segment of code. (however,
> the choice of Block as keyword here isn't perfect, since the word also
> has meanings like obstruct; jam)


If the purpose of let is to introduce one or more variable bindings,
then I don't see how changing to block or module would improve
anything. I've always found it fairly intuitive to parse (let ((x
5)) ...) to "let x be five". Additionally, replacing let with the
synonyms you provided would approximately yield "permit x to be five"
or "allow x to be five". In my mind you have constructed an argument
in favor of let here (obviously it's better than block, because
nobody's going to come along and be confused about whether let will
"obstruct" or "jam" them

There are many easy targets to poke at in the CL spec. let isn't one
of those.
 
Reply With Quote
 
Jrgen Exner
Guest
Posts: n/a
 
      05-08-2008
George Neuner <gneuner2/@/comcast.net> wrote:
>On Wed, 7 May 2008 16:13:36 -0700 (PDT), "(E-Mail Removed)"
><(E-Mail Removed)> wrote:


+-------------------+ .:\:\:/:/:.
| PLEASE DO NOT | :.:\:\:/:/:.:
| FEED THE TROLLS | :=.' - - '.=:
| | '=(\ 9 9 /)='
| Thank you, | ( (_) )
| Management | /`-vvv-'\
+-------------------+ / \
| | @@@ / /|,,,,,|\ \
| | @@@ /_// /^\ \\_\
@x@@x@ | | |/ WW( ( ) )WW
\||||/ | | \| __\,,\ /,,/__
\||/ | | | jgs (______Y______)
/\/\/\/\/\/\/\/\//\/\\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
================================================== ============

jue
 
Reply With Quote
 
kodifik@eurogaran.com
Guest
Posts: n/a
 
      05-08-2008

> * * * * *| * PLEASE DO NOT * | * * * * * *:.:\:\:/:/:.:
> * * * * *| *FEED THE TROLLS *| * * * * * :=.' - * - '.=:


I don't think Xah is trolling here (contrary to his/her habit)
but posing an interesting matter of discussion.

Don't know to which point it fits, but I would like to do some rather
novel comment on operator naming:
As a non native english speaker, the first time I ever encountered the
word "if" was when learning to program. The same can be said of the
other words (for, then, else...) This caused my brain to adscribe them
meanings completely outside the context of everyday language. My point
is that perhaps this is advantageous. So, contrary to tradition (which
considers a desirable goal to write programs as close as possible to
everyday english), I found convenient that programming languages use
words different from the words of my native tongue. I suspect that is
why car and cdr have caught on vs. first end rest.
 
Reply With Quote
 
j.oke
Guest
Posts: n/a
 
      05-08-2008
(E-Mail Removed) ha scritto:

> [bli bla blo, blu blu bum bum bam bam bim bim bim...]


don't know Y, by your arty-phycial excerptions always seem chinese
me...

-JO
 
Reply With Quote
 
Waylen Gumbal
Guest
Posts: n/a
 
      05-09-2008
Lew wrote:
> (E-Mail Removed) wrote:
> > > | PLEASE DO NOT | :.:\:\:/:/:.:
> > > | FEED THE TROLLS | :=.' - - '.=:

> >
> > I don't think Xah is trolling here (contrary to his/her habit)
> > but posing an interesting matter of discussion.

>
> Interesting is in the eye of the beholder. After you'd read the same
> recycled crud from certain posters again and again, it because
> trollish spam.


Then why are you reading it? If you don't want to read his posts then
don't. Use your killfile or just skip over his threads.

--
wg


 
Reply With Quote
 
Waylen Gumbal
Guest
Posts: n/a
 
      05-09-2008
Sherman Pendley wrote:
> (E-Mail Removed) writes:
> >
> > > PLEASE DO NOT | :.:\:\:/:/:.:
> > > FEED THE TROLLS | :=.' - - '.=:

> >
> > I don't think Xah is trolling here (contrary to his/her habit)
> > but posing an interesting matter of discussion.

>
> It might be interesting in the abstract, but any such discussion, when
> cross-posted to multiple language groups on usenet, will inevitably
> devolve into a flamewar as proponents of the various languages argue
> about which language better expresses the ideas being talked about.
> It's like a law of usenet or something.
>
> If Xah wanted an interesting discussion, he could have posted this to
> one language-neutral group such as comp.programming. He doesn't want
> that - he wants the multi-group flamefest.


Not everyone follows language-neutral groups (such as comp,programming
as you pointed out), so you actually reach more people by cross posting.
This is what I don't understand - everyone seems to assume that by cross
posting, one intends on start a "flamefest", when in fact most such
"flamefests" are started by those who cannot bring themselves to
skipping over the topic that they so dislike.

--
wg


 
Reply With Quote
 
Jrgen Exner
Guest
Posts: n/a
 
      05-09-2008
"Waylen Gumbal" <(E-Mail Removed)> wrote:
>Sherman Pendley wrote:
>> (E-Mail Removed) writes:
>> >
>> > > PLEASE DO NOT | :.:\:\:/:/:.:
>> > > FEED THE TROLLS | :=.' - - '.=:

>Not everyone follows language-neutral groups (such as comp,programming
>as you pointed out), so you actually reach more people by cross posting.


You seem so have failed to grasp the concept of why Usenet is divided
into separate groups in the first place.

>This is what I don't understand - everyone seems to assume that by cross
>posting, one intends on start a "flamefest", when in fact most such
>"flamefests" are started by those who cannot bring themselves to
>skipping over the topic that they so dislike.


By your argument there is no need for individual groups in the first
place. We could just as well use a single "HereGoesEverything" and just
skip over those topics that we so dislike.

jue
 
Reply With Quote
 
Waylen Gumbal
Guest
Posts: n/a
 
      05-09-2008
Lew wrote:
> Waylen Gumbal wrote:
>> Not everyone follows language-neutral groups (such as
>> comp,programming as you pointed out), so you actually reach more
>> people by cross posting. This is what I don't understand - everyone
>> seems to assume that by cross posting, one intends on start a
>> "flamefest", when in fact most such "flamefests" are started by
>> those who cannot bring themselves to skipping over the topic that
>> they so dislike.

>
> It's not an assumption in Xah Lee's case. He spams newsgroups
> irregularly with rehashed essays from years ago, and a number of
> people are just tired of him.


I did not know this. One should obviously not do that.

> Don't blame the victims for the perpetrator's actions, OK?


I'm not blaming any "victims", but I don't see anyone saying "read this
or else", so why not just skip the thread or toss the OP in your
killfile so you don't see his postings. If others want to discuss his
topics, who are you or I to tell them not to?

--
wg


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
The Importance of Terminology's Quality xahlee@gmail.com Python 67 09-02-2008 10:24 AM
The Importance of Terminology's Quality xahlee@gmail.com Java 64 09-02-2008 10:24 AM
Re: The Importance of Terminology's Quality Joachim Durchholz Java 1 05-09-2008 09:57 PM
Abstraction Layers And Their Importance Silverstrand Front Page News 0 01-31-2006 04:48 AM
Missive of Great Importance nikools19@yahoo.com Firefox 0 10-30-2005 06:12 AM



Advertisments