Re: SBCL is now faster than Java, as fast as Ocaml, and getting better
- From: Jon Harrop <jon@xxxxxxxxxxxxxxxxx>
- Date: Sat, 12 Jul 2008 15:00:55 +0100
Don Geddis wrote:
Jon Harrop <jon@xxxxxxxxxxxxxxxxx> wrote on Sat, 12 Jul 2008:
Kaz Kylheku wrote:
62 tokens.
Only if you ignore the superfluous parentheses that make up most of the
Lisp code, which is absurd because they are essential in Lisp.
What ought to matter is the cognitive effort required to write or
understand the code.
But we cannot quantify that so we quantify related features like lines,
bytes, non-whitespace bytes and tokens. Lisp is grossly verbose by all of
those objective metrics.
The parentheses in Lisp do not occupy cognitive effort. Real Lisp
programmers (but perhaps not you) don't really even see them.
Real Lisp programmers (not you) recognise the inherent flaws in the language
and leave Lisp to use any of the better, more modern alternatives.
So, yes, it is appropriate to "ignore" the parentheses, when estimating
how complex a piece of Lisp code is.
Let's just see what that does. Consider this Lisp:
(define Y
(lambda (f)
(let ((future
(lambda (future)
(f (lambda (arg)
((future future) arg))))))
(future future))))
This is what you want to count:
define Y lambda f let future lambda future f lambda arg future future arg
future future
From which it is clearly impossible to decipher a working program. So yourpoint is obviously wrong. In reality, deliberately miscounting the number
of tokens was just clutching at straws. A desperate attempt to make Lisp
look less stupid.
Terseness isn't everything, and let's not forget that it is one dominant
attribute of obfuscated programming contest entries.
You may have noticed that almost all programmers disagree with you: huge
numbers of superfluous parentheses being one of the most complained about
disadvantages of Lisp.
Complained about ... by NON-lisp programmers.
And the expert Lisp programmers who invented Dylan, OCaml, SML...
People with no experience
in the language believe (incorrectly) that the parentheses require
cognitive effort and make the code more complex.
So you are saying that people who do not even know Lisp complain about its
deficiencies? Has it occurred to you that people who do not even know Lisp
cannot be aware of its deficiencies?
ACTUAL lisp programmers do not cite the parentheses as a disadvantage.
Circular argument: you just defined programmers who cite superfluous
parentheses as a disadvantage as non-Lisp programmers.
So what you're really saying is that people who don't know any better don't
complain. I'd agree with that but it applies just as much to the tiny
lingering Lisp community as it does elsewhere. Observe how Lispers not only
fail to understand the benefits of pattern matching but are even oblivious
to its increasingly widespread use.
(Conversely, most cite them as an advantage, particularly when editing
code.)
Because they are still using text editors because they are stuck in the 20th
century.
In fact, from time to time various lisp programmers embark on a syntax
change to lisp, to eliminate the parentheses, spurred by the same error
you make here. Each time, they eventually realize that nobody cares about
their efforts, and they were wrong to believe that they were solving a
real problem in the language.
That is also obviously wrong. The creators of the ML family of languages
embarked on that journey and they not only completed it, creating a new
family of languages without superfluous parentheses, but the fruits of
their labour (OCaml and F#) are now used by more people than Lisp ever was.
The only way you could possibly have remained oblivious to this is by
burying your head in Lisp and not learning about the alternatives. So you
just made my point. Thank you.
--
Dr Jon D Harrop, Flying Frog Consultancy
http://www.ffconsultancy.com/products/?u
.
- Follow-Ups:
- Re: SBCL is now faster than Java, as fast as Ocaml, and getting better
- From: Ariel
- Re: SBCL is now faster than Java, as fast as Ocaml, and getting better
- From: Marco Antoniotti
- Re: SBCL is now faster than Java, as fast as Ocaml, and getting better
- References:
- Re: SBCL is now faster than Java, as fast as Ocaml, and getting better
- From: Jon Harrop
- Re: SBCL is now faster than Java, as fast as Ocaml, and getting better
- From: jon . harrop . ms . sharp
- Re: SBCL is now faster than Java, as fast as Ocaml, and getting better
- From: Marco Antoniotti
- Re: SBCL is now faster than Java, as fast as Ocaml, and getting better
- From: Jon Harrop
- Re: SBCL is now faster than Java, as fast as Ocaml, and getting better
- From: Marco Antoniotti
- Re: SBCL is now faster than Java, as fast as Ocaml, and getting better
- From: Jon Harrop
- Re: SBCL is now faster than Java, as fast as Ocaml, and getting better
- From: jon . harrop . ms . sharp
- Re: SBCL is now faster than Java, as fast as Ocaml, and getting better
- From: John Thingstad
- Re: SBCL is now faster than Java, as fast as Ocaml, and getting better
- From: Vassil Nikolov
- Re: SBCL is now faster than Java, as fast as Ocaml, and getting better
- From: John Thingstad
- Re: SBCL is now faster than Java, as fast as Ocaml, and getting better
- From: Jon Harrop
- Re: SBCL is now faster than Java, as fast as Ocaml, and getting better
- From: Kaz Kylheku
- Re: SBCL is now faster than Java, as fast as Ocaml, and getting better
- From: Jon Harrop
- Re: SBCL is now faster than Java, as fast as Ocaml, and getting better
- From: Don Geddis
- Re: SBCL is now faster than Java, as fast as Ocaml, and getting better
- Prev by Date: Re: traverse a list two elements at a time?
- Next by Date: Re: SBCL is now faster than Java, as fast as Ocaml, and getting better
- Previous by thread: Re: SBCL is now faster than Java, as fast as Ocaml, and getting better
- Next by thread: Re: SBCL is now faster than Java, as fast as Ocaml, and getting better
- Index(es):
Relevant Pages
|