What's better about Ruby than Python?
ktilton at nyc.rr.com
Fri Aug 22 14:34:58 CEST 2003
Andrew Dalke wrote:
> Kenny Tilton:
>>The anti-macronistas are better off with the argument, hey, if you want
>>Lisp, use Lisp. Let's keep it simple here. the question for you all is
>>how far you want to take Python.
> But that statement expresses a certain arrogance which grates
> against at least my ears.
Really? I thought that was non-controversial or I would not have said
it. Earlier in this thread I thought I read a Pythonista saying, without
contradiction, that Python does not try to be everything. Lisp macros
try to be everything. ie, If Lisp does not have something I want, such
as C-style enums because I am literally translating a C RoboCup client
to Lisp, noproblemo, I just cobble one together, and I can arrange it so
the final syntax:
(enum CMD_KICK CMD_DASH (CMD_TEAR_OFF_SHIRT 42)...)
is close enough to C syntax that the C can be edited into Lisp by
changing/moving braces to parens, deleteing all the commas, and
hand-hacking the rare symbol=number usage.
The point I've made over and over is
> that languages which optimize for a single person do not
> necessarily optimize for a group of people, especially one
> which is scattered around the world and over years. Given
> that latter definition, Python is extraordinary advanced, even
> further than Lisp is.
> For observational evidence of this, I suggest my own
> subfields, computational biology and computational chemisty.
> In the first there are bioperl, biopython, biojava, and bioruby,
> all with active participants and a yearly confererence organized
> by open-bio.org.
You do not like? http://www.biolisp.org/
Give it time. It's a chicken-egg thing. In fact, my RoboCup project is a
conscious attempt to be the egg for a renaissance in RoboLisp. The
RoboCup server was originally a Lisp project, but teams are now almost
universally developed in Java or C++. The funny (and great for me!)
thing is that all those clients have to parse:
"(see 457 ((f l t 10) 12.3 23 2.3 5)..."
with parsers, where I just say: (read-from-string <msg>).
And I have already heard from one C or Java (they did not say) team that
is interested in my code base simply because it is Lisp.
We lispniks do look forward to the day when there is a larger Lisp
community, and we take great consolation from Python's success (and
Perl's and to a lesser degree Ruby's). That tells us there is great
unhappiness with Java and C++. It also shows that popularity and
dominance in computer languages may not be the advantage it seems to be
Lisp has been dead for twenty years, but some of us won't use anything
else (no macros!) and we even see a trickle of newbies on c.l.l., maybe
one a day. That is mighty small number compared to Python or Ruby, but
we used to see one a year. I got so curious I started a survey on cliki
(turns out Paul Graham gets a lot of credit):
I was trying to find out how people ended up trying Lisp in spite of its
tiny community and death.
> I ask you why.
Historical, for one. Lisp has always needed a meg or two of RAM. Even
when PCs had 8k, 64k, 128k... so C and Pascal became the languages of
the masses. Remember Pascal? <g> C++ was C trying to hop on the OO
bandwagon (don't get me wrong, I like OO) and Java hopped on the
internet bandwagon (and stayed close to C syntax to win those folks
over. Python wins because of its interactive qualty and seamless access
to C, and by adopting many cool ideas from more advanced languages--kind
of a best of both worlds.
Peter Norvig, a lisp biggy, has famously found Python to be equivalent
to Lisp (except for runtime speed, IIRC). Think of Lisp as compiled
Python. With macros and multi-methods etc etc. But you still have to
roll FFI binidngs to access C. I did that for my OPenGL project, using
macros which took slightly edited C headers and transformed them into
the FFI declarations.
The other thing Lisp did not have was cheap graphical workstations with
syntax-aware editors and optimizing compilers. So that got it off on the
wrong foot. But I look at it this way. Lisp already was a fad language
(when folks were all excited about AI) and has already died. But it is
still the language of choice for some very talented programmers who know
all about the other languages out there, andit is picking up a trickle
of interest. And when I look at languages like Perl and Python, I see
them adopting new features highly reminiscent of Lisp.
I ask you why? :)
"Career highlights? I had two. I got an intentional walk from
Sandy Koufax and I got out of a rundown against the Mets."
-- Bob Uecker
More information about the Python-list