Why is Python popular, while Lisp and Scheme aren't?

Kenny Tilton ktilton at nyc.rr.com
Sun Nov 24 01:42:30 EST 2002


Alexander Schmolck wrote:
> Kenny Tilton <ktilton at nyc.rr.com> writes:
>>Well the context of the "accessibility" thang was for newcomers, so the hairy
>>stuff would not affect them.
>>
> Of coure LOOP and FORMAT affect newcomers! They are extremely commonly used
> constructs, so you will encounter them quite frequently in other people's
> code.

<g> I'll try again. The context was newbies. It's no good sneaking in 
"expert" by talking about newbies possibly /starting/ by being handed 
expert code to, what, maintain? No way.

>>don't know perl, but the other side of the coin I did not mention is that the
>>data is strongly typed.
> 
> 
> Hmm, I thought untyped means that variables don't have any type associated
> with them at all (like in assembler).

variables untyped, /data/ typed: you can assign the data "123" to the 
variable AMOUNT and then backtrace (kersplat) when you (* amoount 
sales-tax-rate), cuz the data "123" even at runtime is recognized as a 
string:

 > (let ((amount "123")
         (tax 0.05))
     (* amount tax))
Error: `"123"' is not of the expected type `NUMBER'
[condition type: TYPE-ERROR]

>>Well, the battle was decided (temporarily?) in favor of static languages
>>during the long decades before systems routinely shipped with ghz processors
>>and hundreds mb ram. By the time those systems came along, almost everyone was
>>using static languages. Folks don't change easily, so CL still does not get
>>used widely.
> 
> This explanation has the considerable problem that it would equally have
> predicted the miserable failure of Perl, Python, Javascript and I'd guess
> Visual Basic.

Good point. Now consider the answer.

Why did Java start a stampede, when Lisp was sitting there already?

Well, first of all, everyone knew (and knows) Lisp is slow, interpreted, 
used only for AI, and dead. Not! But that does not matter, what matters 
is what people believe. Astonishing but true: I ignored for weeks during 
a search for "a better way than C++" the possibility of using Mac Common 
Lisp, tho it was in my APDA catalog every month and saw it lauded 
regularly on macdev. This in spite of the fact that I had prototyped my 
app in Logo!!! (years earlier). But I /knew/ Logo was slow (and I did 
not know CL had been thru the standards process and was now universally 
compiled and /fast/). But if a Logo user actively seeking a better way 
than C++ won't consider CL, why should someone happy with their C job do so?

But more importantly Java piggybacked the web excitement, offered C-ish 
syntax, memory management (huge if you've done C or C++), simplicity, 
and portability (I said "offered", not "delivered").

The C-ish syntax is huge. It removes a barrier to adoption. But I think 
the key was piggybacking the web excitement. Dylan is a Lisp with C 
syntax, it has not gotten very far.

JavaScript also rides the Web, of course. Browsers support it, they do 
not support Lisp. (duh)

VB? Puh-leez. They were a continuation of Basic, plus they had a little 
company from redmond behind them. That familiarity thang really matters.

Speaking of which, Dylan failed in its "Lisp in C's clothing" scam 
because just as they were ready to emerge from the lab, Sun came out 
with the Web language Java. I believe Apple (who sponsored Dylan's 
developemt) threw in the towel when they saw the "C++-Killer" role was 
taken.

How did Python succeed? I do not know the history of the early days, you 
tell me. I think being easily wired to C and thus a crap-load of 
existing libraries did not hurt, nor its being interactive, GCed, and 
free. I wager the huge win over Java was its scripting nature. bang a 
few lines into a text file and kick it off. Java ain't that simple, IIUC.

>>But the language upheaval I see (Java, Python, Perl, Ruby) tells me folks are
>>still looking for a better way, and as long as they are looking some are bound
>>to find there way to the mother of all interactive, dynamic languages.
>>
> Sure, if mum doesn't appear a bit grandmothered by then ;)

Lisp nearing the age of 50 is the most modern language out there. GC, 
dynamic, reflective, the best OO model extant including GFs, procedural 
macros, and the only thing old-fashioned about it is that it is compiled 
and fast.

You know, there are projects for Java to add macros, GFs, multiple 
inheritance...of course, you have to choose which because they are 
incompatible. tee-hee. Full marks to java tho for the GC and Reflection 
package. But it ain't no Lisp.

And isn't it curious that a language approaching fifty is the wannabe of 
all these new languages? That's a message from god, methinks.

> Well, it's not just "pragmatic advantages", I do believe that in some points
> python's *design* is just superior.

I do not think you want to go there. Hell, I doubt Pythonites even care. 
CL and Python are wholly different animals. i think a point by point 
comparison of Lisp and Python would be an exercise in futility (hence 
perfect for Usenet!) Python is extremely practical, CL is great purely 
as a language.

>>...to Python /precisely/ (a) to swim in a bigger pond (uh, pond with more
>>fish?) and (2) because there is (I hear) a x-platform GUI, TKinter. 
> 
> 
> As someone else already mentioned, having a look at pyqt if you can live with
> GPL might be worthwhile (not sure about Mac, Qt3 *does* run on macs, but don't
> whether the GPL version and python bindings are available), otherwise
> wxWindows might also be of interest (not sure how far the Mac support is,
> either, though). Tkinter has the advantage that it comes prebundled but pyqt
> sports a much nicer design and is infinitely more powerful. I also get the
> imporession that Tcl/Tk is somewhat moribund.

Thanks for the input. My little hack kinda offers its own GUI power, so 
to a degree I almost don't want a framework with a mind of its own, i 
just want low-level capabilities. And I /really/ want universality, so 
that will be the deciding factor.

>>And it's fun learning a new language, recommended so highly by a CL worthy
>>such as Norvig.
> 
> Ah, it's always good to see people broaden their minds ;)

<g> We'll see. So far I loathe the syntax (I (miss (parentheses))), but 
I dig the backdoors. And fer chrissakes, not even a lame C-like 
preprocessor?! :)

-- 

  kenny tilton
  clinisys, inc
  ---------------------------------------------------------------
""Well, I've wrestled with reality for thirty-five years, Doctor,
   and I'm happy to state I finally won out over it.""
                                                   Elwood P. Dowd




More information about the Python-list mailing list