
Next Lisps - fogus
http://axisofeval.blogspot.com/2010/05/next-lisps.html
======
j_baker
"IMO, Python is farther away from the Lisp genotype than Java. At least Java
has post-1980's scoping rules."

1) Why do I need post-1980's scoping rules? I don't seem to recall any huge
advances in variable scoping being made since then.

2) Comparing Python and Java's scoping is like comparing apples and oranges.
Python is a dynamically typed language where everything is built at run time
while Java is a statically typed language where everything is built at compile
time.

I can't help but think of these kinds of blog posters of being a kind of anti-
Guido van Rossum: smart, knows a lot about their domain (but with functional
programming instead of object-oriented programming), but makes absolutely
_stupid_ assertions about other schools of thought they know nothing about
(but with object-oriented programming instead of functional programming). Do
we really need to destroy other peoples' way of doing things to feel good
about our way of doing things?

~~~
hga
Except he doesn't know his FP, e.g. he doesn't know about TCO and how you can
use that to avoid having recursion blow the stack.

WRT to 2, your scoping discipline is pretty orthogonal to your typing
discipline. E.g. dynamically typed mainline LISP was dynamically scoped before
Common Lisp adopted Scheme static scoping. And I'm sure there are dynamically
scoped statically typed languages out there (if I ever learned about one, I
would have tried to forget it as soon as possible (worst of both worlds)).

~~~
froydnj
Finding a dynamically scoped statically typed language would be quite a trick:
dynamic scope doesn't seem to have caught on outside the Lisp community. (I
remember reading academic papers (separately for C++ and Haskell) that tried
to explain why you would even want dynamic scoping and "look, wow, here's how
to implement it.")

~~~
jbert
It's obviously not statically typed, but Perl has dynamic scoping (and that
was the preferred way to have a local variable in perl4, before lexically
scoped vars were introduced in perl5).

Whether perl is part of the lisp community is another matter :-)

------
zephjc
I don't find Clojure all that ugly. I think it's tiny bit of extra "syntax"
help make it much more readable. When I see [] I know I'm in a vector and when
I see {} I know I'm in a map.

~~~
mahmud
That's the main cultural difference between clojure and CL. Clojure wants to
be a broad language with concrete syntatic support for many data structures.
CL is a tall language with fewer syntax than data structures; you can have
vectors in literal sytnax, #(1 2 3), but you can also create them explicitly:

    
    
       (vector 1 2 3).
    

Hashtables can only be created explicitly:

    
    
      (make-hash-table) then 
      (setf (gethash "one" *) 1)
    

but you're free to create your own syntax or shortcuts, which is what
Alexandria provides:

    
    
      (hash-table-alist '(("one" 1) ("two" 2) ("three" 3)))

------
m0th87
_Also, except for popularity, Python didn't go anywhere as a language._

What sort of strange definition of progress is the author using for languages?

~~~
zephjc
Didn't you know? To be a truly great language, you have to toil in obscurity
like a tortured artist.

------
cemerick
This guy sounds like the LoperOS fellow talking about Clojure, but after a
margarita. <http://www.loper-os.org/?p=42>

~~~
hga
Yeah, but the LoperOS guy has a serious point, one that will in fact be
addressed after most of the Clojure that is written in Java is reimplemented
in Clojure ("Clojure in Clojure"). From there one or more people with
implement "Turtle Clojure" as I like to call it, turtles all the way down to
the bare metal or OS or whatever.

It's the reason one of those "match a language to a picture" items had Clojure
represented by Locutus of Borg, or as Reddit commentator pillsy put it, "
_Clojure is a terrifying meld of a beloved character and an unreasoning alien
onslaught._ "

Whereas I didn't see much merit to this guy's Clojure comments. E.g. yep,
Clojure is uglified by the syntax for maps and vectors, but the generalization
this allows, by making them first class homoiconic data structures, is
potentially worth it.

------
Ixiaus
It is difficult for me to tell whether the author is joking at times or being
serious; his arguments are lacking substance and the statements about Python
are just silly.

------
Shorel
I read the title and I thought of Perl 6.

Apart from that, the article is lacking substance.

