The Importance of Terminology's Quality

Discussion in 'Java' started by xahlee@gmail.com, May 8, 2008.

  1. Guest

    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/ten-thousand-hours-of-design-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://xahlee.org/

    ☄
     
    , May 8, 2008
    #1
    1. Advertising

  2. <> wrote in message
    news:...

    [...]

    (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!
    ;-)
     
    Bruce C. Baker, May 8, 2008
    #2
    1. Advertising

  3. > • 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.
     
    Kyle McGivney, May 8, 2008
    #3
  4. George Neuner <gneuner2/@/comcast.net> wrote:
    >On Wed, 7 May 2008 16:13:36 -0700 (PDT), ""
    ><> wrote:


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

    jue
     
    Jürgen Exner, May 8, 2008
    #4
  5. Guest


    >          |   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.
     
    , May 8, 2008
    #5
  6. j.oke Guest

    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
     
    j.oke, May 8, 2008
    #6
  7. Sherman Pendley wrote:
    > 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
     
    Waylen Gumbal, May 9, 2008
    #7
  8. "Waylen Gumbal" <> wrote:
    >Sherman Pendley wrote:
    >> 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
     
    Jürgen Exner, May 9, 2008
    #8
  9. 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
     
    Waylen Gumbal, May 9, 2008
    #9
  10. "Waylen Gumbal" <> wrote:
    > so why not just skip the thread or toss the OP in your
    >killfile so you don't see his postings.


    Done years ago.

    >If others want to discuss his
    >topics, who are you or I to tell them not to?


    They are very welcome to do so in an appropriate NG for those topics.

    jue
     
    Jürgen Exner, May 9, 2008
    #10
  11. George Neuner wrote:
    > On Thu, 8 May 2008 22:38:44 -0700, "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.

    >
    > The problem is that many initial posts have topics that are misleading
    > or simplistic. Often an interesting discussion can start on some
    > point the initial poster never considered or meant to raise.


    Is this not a possibility for any topic, whether it's cross-posted or
    not?


    --
    wg
     
    Waylen Gumbal, May 10, 2008
    #11
  12. David Combs Guest

    In article <>,
    Waylen Gumbal <> wrote:
    >Sherman Pendley wrote:
    >> 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


    Not one person on the planet agrees with me, I believe, but
    it's always seemed to me that an *advantage* to posting to
    multiple groups (especially ones generally "interested" in similar
    subject matter but NOT subject to huge poster/lurker/answerer overlap,
    er, without too many *people* getting multiple copies of the *same*
    post) is that it would provide an opportunity of a widely-dispersed
    bunch of people to have a *joint* discussion, with comments hopefully
    coming in from a *variety* of viewpoints.

    David
     
    David Combs, May 30, 2008
    #12
  13. David Combs Guest

    In article <>,
    Robert Maas, http://tinyurl.com/uh3t <> wrote:
    >> From: "" <>
    >> the importance of naming of functions.

    >


    Lisp is *so* early a language (1960?), preceeded mainly only by Fortran (1957?)?,
    and for sure the far-and-away the first as a platform for *so many* concepts
    of computer-science, eg lexical vs dynamic ("special") variables, passing
    *unnamed* functions as args (could Algol 60 also do something like that,
    via something it maybe termed a "thunk"), maybe is still the only one
    in which program and data have the same representation -- that it'd
    seem logical to use it's terminology in all languages.

    From C is the very nice distinction between "formal" and "actual" args.

    And from algol-60, own and local -- own sure beats "static"!

    And so on.


    To me, it's too bad that that hacker-supreme (and certified genius)
    Larry W. likes to make up his own terminology for Perl. Sure makes
    for a lot of otherwise-unnecessary pages in the various Perl texts,
    as well as posts here.

    Of course, a whole lot better his terminology than no language at all!


    David
     
    David Combs, May 30, 2008
    #13
  14. David Combs Guest

    VERY SORRY FOR THAT CROSSPOST; Re: The Importance of Terminology's Quality

    (This one is also cross-posted, to apologize to one and all
    about my just-prior followup.)

    I stupidly didn't remember that whatever followup I made
    would also get crossposted until *after* I had kneejerked
    hit "s" (send) before I noticed the warning (Pnews?) on
    just how many groups it would be posted to.

    A suggestion for Pnews: that as soon as you give the
    F (followup for trn), ie as soon as Pnews starts-up
    on this followup, before you've typed in anything
    or given it a filename to include, that AT THAT TIME
    it remind you that it'll be crossposted to the
    following 25 newsgroups:
    1: foo
    2: comp.lang.perl.misc
    3: other-group
    4: ...


    , so way before you've said anything, you can
    abort it if you want to.


    SORRY!


    David
     
    David Combs, May 30, 2008
    #14
  15. Gordon Etly Guest

    Lew wrote:
    > John Thingstad wrote:


    > > Perl is solidly based in the UNIX world on awk, sed, bash and C.
    > > I don't like the style, but many do.


    > Please exclude the Java newsgroups from this discussion.


    Why? Do you speak for everyone in that, this, or other groups?


    --
    G.Etly
     
    Gordon Etly, May 31, 2008
    #15
  16. Stephan Bour Guest

    Lew wrote:
    } John Thingstad wrote:
    } > Perl is solidly based in the UNIX world on awk, sed, bash and C.
    } > I don't like the style, but many do.
    }
    } Please exclude the Java newsgroups from this discussion.

    Did it ever occur to you that you don't speak for entire news groups?


    Stephan.
     
    Stephan Bour, May 31, 2008
    #16
  17. Arne Vajhøj Guest

    Stephan Bour wrote:
    > Lew wrote:
    > } John Thingstad wrote:
    > } > Perl is solidly based in the UNIX world on awk, sed, bash and C.
    > } > I don't like the style, but many do.
    > }
    > } Please exclude the Java newsgroups from this discussion.
    >
    > Did it ever occur to you that you don't speak for entire news groups?


    Did it occur to you that there are nothing about Java in the above ?

    Arne
     
    Arne Vajhøj, May 31, 2008
    #17
  18. szr Guest

    Arne Vajhøj wrote:
    > Stephan Bour wrote:
    >> Lew wrote:
    >> } John Thingstad wrote:
    >> } > Perl is solidly based in the UNIX world on awk, sed, bash and C.
    >> } > I don't like the style, but many do.
    >> }
    >> } Please exclude the Java newsgroups from this discussion.
    >>
    >> Did it ever occur to you that you don't speak for entire news groups?

    >
    > Did it occur to you that there are nothing about Java in the above ?


    Looking at the original post, it doesn't appear to be about any specific
    language.

    --
    szr
     
    szr, May 31, 2008
    #18
  19. szr Guest

    Peter Duniho wrote:
    > On Fri, 30 May 2008 22:40:03 -0700, szr <> wrote:
    >
    >> Arne Vajhøj wrote:
    >>> Stephan Bour wrote:
    >>>> Lew wrote:
    >>>> } John Thingstad wrote:
    >>>> } > Perl is solidly based in the UNIX world on awk, sed, } > bash
    >>>> and C. I don't like the style, but many do.
    >>>> }
    >>>> } Please exclude the Java newsgroups from this discussion.
    >>>>
    >>>> Did it ever occur to you that you don't speak for entire news
    >>>> groups?
    >>>
    >>> Did it occur to you that there are nothing about Java in the above ?

    >>
    >> Looking at the original post, it doesn't appear to be about any
    >> specific language.

    >
    > Indeed. That suggests it's probably off-topic in most, if not all,
    > of the newsgroups to which it was posted, inasmuch as they exist for
    > topics specific to a given programming language.


    Perhaps - comp.programming might of been a better place, but not all
    people who follow groups for specific languages follow a general group
    like that - but let me ask you something. What is it you really have
    against discussing topics with people of neighboring groups? Keep in
    mind you don't have to read anything you do not want to read. [1]

    > Regardless, unless you are actually reading this thread from the
    > c.l.j.p newsgroup, I'm not sure I see the point in questioning
    > someone who _is_ about whether the thread belongs there or not.


    I would rather have the OP comment about that, as he started the thread.
    But what gets me is why you are against that specific group being
    included but not others? What is so special about the Java group and why
    are you so sure people there don't want to read this thread? [1] What
    right do you or I or anyone have to make decisions for everyone in a
    news group? Isn't this why most news readers allow one to block a
    thread?

    > And if it's a vote you want, mark me down as the third person reading
    > c.l.j.p that doesn't feel this thread belongs. I don't know whether
    > Lew speaks for the entire newsgroup, but based on comments so far,
    > it's pretty clear that there unanimous agreement among those who have
    > expressed an opinion.


    Ok, so, perhaps 3 people out of what might be several hundred, if not
    thousand (there is no way to really know, but there are certainly a lot
    of people who read that group, and as with any group, there are far more
    readers than there are people posting, so, again, just because you or
    two other people or so don't want to read a topic or dislike it, you
    feel you can decide for EVERYONE they mustn't read it? Again, this is
    why readers allow you to ignore threads. Please don't force your views
    on others; let them decide for themselves. [1]


    [1] I do not mean this topic specifically, but in general, if one
    dislikes a thread, they are free to ignore it. I find it rather
    inconsiderate to attempt to force a decision for everyone, when
    one has the ability to simply ignore the thread entirely.


    --
    szr
     
    szr, May 31, 2008
    #19
  20. "szr" <> wrote:
    >I would rather have the OP comment about that, as he started the thread.


    The OP is a very well-known troll who has the habit of spitting out a
    borderline OT article to a bunch of loosly related NGs ever so often and
    then sits back and enjoys the complaints and counter-complaints of the
    regulars. He doesn't provide anything useful in any of the groups he
    targets (at least AFAIK) and he doesn't participate in the resulting
    mayhem himself, either.
    He will only go away if everyone just ignores him.

    With this in mind another reminder:

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

    Follow-up adjusted.

    jue
     
    Jürgen Exner, May 31, 2008
    #20
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Replies:
    5
    Views:
    497
    Darryl L. Pierce
    Jan 30, 2006
  2. Joachim Durchholz

    Re: The Importance of Terminology's Quality

    Joachim Durchholz, May 8, 2008, in forum: Java
    Replies:
    1
    Views:
    328
    John W Kennedy
    May 9, 2008
  3. Replies:
    67
    Views:
    1,453
    Martin Gregorie
    Sep 2, 2008
  4. Paul
    Replies:
    63
    Views:
    1,305
  5. Replies:
    49
    Views:
    409
    Martin Gregorie
    Sep 2, 2008
Loading...

Share This Page