Paul Graham essay on language popularity

I don’t read the list/group anymore, so I’m not sure whether this
tidbit has been posted before, but Google didn’t return anything on
"popular paul graham" in comp.lang.ruby, so here goes. I think Ruby
satisfies many of Graham’s criteria.

Paul Graham on the factors behind whether a programming language is
popular:
http://www.paulgraham.com/popular.html

Al

In this article, Graham writes:

     The latest hot language, Python, is a watered-down Lisp
     with infix syntax and no macros. A new Lisp would be a
     natural step in this progression.

Can someone elaborate on this? I’ve seen passing references to this
assertion that Python and Lisp have somewhat related in design and
principles elsewhere, but did not fully understand the reasons why.
Can someone please elaborate on them?

Along these lines, how does this assertion also apply to Ruby? Can
Ruby said to be a water-downed Lisp (if UnboundMethods were put into
use)? Why or why not?

Damon

HotFusionMan@Yahoo.com (Albert Davidson Chou) wrote in message news:f6b47c3c.0208221154.56d8358@posting.google.com

···

I don’t read the list/group anymore, so I’m not sure whether this
tidbit has been posted before, but Google didn’t return anything on
“popular paul graham” in comp.lang.ruby, so here goes. I think Ruby
satisfies many of Graham’s criteria.

Paul Graham on the factors behind whether a programming language is
popular:
Being Popular

Al

Fri, 23 Aug 2002 20:38:10 +0900, Damon adamon@mailandnews.com pisze:

Can someone elaborate on this? I’ve seen passing references to this
assertion that Python and Lisp have somewhat related in design and
principles elsewhere, but did not fully understand the reasons why.
Can someone please elaborate on them?

http://www.google.com.pl/search?q=python+lisp

First few hits talk about interesting comparisons of these languages.

···


__("< Marcin Kowalczyk
__/ qrczak@knm.org.pl
^^ Blog człowieka poczciwego.

I think he is referring to the functional aspects of the language. In
particualar, things like map, apply, zip, lambda’s and friends. Here is the
url to a functional programming in Python series =>

The same author wrote a tutorial about Haskell =>
http://www-105.ibm.com/developerworks/education.nsf/linux-onlinecourse-bytitle/9A31A3C4A0CE683E86256AD400822942?OpenDocument

Cheers,
Wilkes

···

— Damon adamon@mailandnews.com wrote:

In this article, Graham writes:

     The latest hot language, Python, is a watered-down Lisp
     with infix syntax and no macros. A new Lisp would be a
     natural step in this progression.

Can someone elaborate on this? I’ve seen passing references to this
assertion that Python and Lisp have somewhat related in design and
principles elsewhere, but did not fully understand the reasons why.
Can someone please elaborate on them?


Do You Yahoo!?
Yahoo! Finance - Get real-time stock quotes
http://finance.yahoo.com

Simple explanation. Common Lisp programmers are so frustrated with
the position that Common Lisp is in that they resort to extreme
rationalizations.

First there’s Gabriels Rule. The best technology is never the most
popular technology. Only they restate it is: the better the
technology, the least popular it is. That way the less popular Lisp
becomes the more superior they can act. ( It’s like the snootty guys
who say: "We know why they pick on us. It’s because they are jealous.
)

Second there is the claim that every language is really Lisp in
disguise. When Smalltalk was popular it was Lisp in disguise.
When C++ was popular it was that every sufficiently complex
C++ program implements a Lisp engine in disguise. When Java was
popular it’s that Java was really Lisp in disguise.

Now it’s Python and XML. Python is Lisp in disguise and XML are
sexpresions in disguise. This is the way they deny the poor status of
Lisp in the programming community, by claiming that they are the best
because everyone else is ripping them off.

Except that it really is not true. I suggest you go to Grahams web
site again and look up the articles, Revenge of the Nerds and
RE: Revenge of the Nerds. There you will find a link to Paul Prescod’s
web site where he points out that not only is Python different from
Lisp, but that TPTB in Python are taking steps which move Python
even further away from Lisp.

···

On 23 Aug 2002 04:21:03 -0700, adamon@mailandnews.com (Damon) wrote:

In this article, Graham writes:

    The latest hot language, Python, is a watered-down Lisp
    with infix syntax and no macros. A new Lisp would be a
    natural step in this progression.

Can someone elaborate on this? I’ve seen passing references to this
assertion that Python and Lisp have somewhat related in design and
principles elsewhere, but did not fully understand the reasons why.
Can someone please elaborate on them?

To a true Lisper, the only relationship between Lisp and Python is
the virtual machine inside CMU Common Lisp.

A student, in hopes of understanding the Lambda-nature, came to
Greenblatt.  As they spoke a Multics system hacker walked by.  "Is
it true," asked the student, "that PL/1 has many of the same data
types as Lisp?"  Almost before the student had finished his
question, Greenblatt shouted, "FOO!" and hit the student with a
stick.
		                            -- MIT AI Lab koan

–Mirian

···

On Fri, 23 Aug 2002 20:38:10 +0900, Damon adamon@mailandnews.com wrote:

In this article, Graham writes:

    The latest hot language, Python, is a watered-down Lisp
    with infix syntax and no macros. A new Lisp would be a
    natural step in this progression.

Can someone elaborate on this? I’ve seen passing references to this
assertion that Python and Lisp have somewhat related in design and
principles elsewhere, but did not fully understand the reasons why.
Can someone please elaborate on them?

“Marcin ‘Qrczak’ Kowalczyk” qrczak@knm.org.pl wrote in message
news:slrnamv94n.e9e.qrczak@qrnik.zagroda…

Fri, 23 Aug 2002 20:38:10 +0900, Damon adamon@mailandnews.com pisze:

Can someone elaborate on this? I’ve seen passing references to this
assertion that Python and Lisp have somewhat related in design and
principles elsewhere, but did not fully understand the reasons why.
Can someone please elaborate on them?

python lisp - Google Search

First few hits talk about interesting comparisons of these languages.

I admire Paul Graham’s writings, but I also noticed this Python-Lisp thing.
I wrote a letter to Paul Graham saying that everything he says about Python
being close to Lisp is applicable to Ruby.

Here is my letter :


In some of your articles you write about Python being one of the
closest to Lisp among non-Lisp languages. I agree that Python is
powerful, but I would like to add that everything you said about
Python is applicable to Ruby.

Let me prove it.

In Revenge of the Nerds you write:

Python users might legitimately ask why they can't just write
  def foo(n):
     return lambda i: return n += i

or even

  def foo(n):   lambda i: n += i

and my guess is that they probably will, one day.

Well… (I am smiling ear-to-ear). I can already do this in
Ruby, today:

def foo n
lambda {|i| n += i }
end

Actually, lambda is a synonym for the constructor of Proc class -
Proc.new :

def foo n
Proc.new {|i| n += i }
end

Semantically Proc.new is just what lambda is in functional
languages, that is why is has this synonym.

The page What Languages Fix on your site suggests that Ruby is
improved Perl (because Perl is a kludge). I understand that the way
things are described on the page does not claim to be the ultimate
word in language etimology, but because I know this is a common
misunderstanding to think that Ruby is an attempt at better Perl,
let me say:

 Ruby is _not_ improved Perl

Yes, it has borrowed much from Perl, it has Perl compatible
regexps, plus some syntax sugar features. But in terms of
language design Ruby is a descendant of Smalltalk, not Perl. I
think I won’t be very far from the truth if I say that Ruby is
Smalltalk with familar C/Pascal-like syntax and smaller class
library.

With this in mind, I can point to major differences between Python
and Ruby. In Ruby there are no primitive types, only classes and
objects. Python is moving towards this complete object-orientedness
only now. Ruby has always had iterators, and all libraries make use
of them, while Python has gotten them only recently, and it looks
like an add-on.

Of course, Python has advantages over Ruby, some of them lie in the
sphere of language implementation, not in language design.

</my letter>

And here is his answer:

The reason I used Python as an example in RotN was just that I thought Ruby wasn't yet widely enough used. I know it is even more like Lisp than Python. As for the description in what languages fix, those are nearly all submitted by other people. It may well be that the answer for Ruby is that "Smalltalk's syntax is unfamiliar and it doesn't have regexps."

Ssssooo, this makes me admire the man even more ;-)))

Btw, who had this bright idea to add this synonym for
Proc.new, lambda? Matz ?

Best regards,
Yuri Leikind