473,768 Members | 7,424 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

merits of Lisp vs Python

How do you compare Python to Lisp? What specific advantages do you
think that one has over the other?

Note I'm not a Python person and I have no axes to grind here. This is
just a question for my general education.

Mark

Dec 8 '06
852 28619
Bill Atkins <at****@rpi.edu writes:
worried about the future of Lisp libraries. We already have some:

- CL-PPCRE, a pure-Lisp regular expression package that is faster than Perl's
- Hunchentoot, a complete web server and web development framework
- CAPI, a proprietary but excellent GUI library
- CommonSQL (and CLSQL, its open-source offspring)
- parenscript, an embeddable Lisp that compiles to Javascript, letting
you use macros in your Javascript code
- assorted useful libraries, like MD5, base64, SDL, XML parsers, web
page fetchers, testing frameworks
- bindings to the common C libraries, like GD, Tk, Gtk+
Lest anyone interpret that list as exhaustive: http://www.cl-user.net/
Dec 9 '06 #191
"Carl Banks" <pa************ @gmail.comwrite s:
>You're right, in part: My implicitly linking Python's pros or cons with
its stupid marketing hype is, I think, an ad hominem argument.

Ahem. Calling Python programmers "flies".
For what it's worth, I don't think this was called for, either.
Whatever, fanboy.
Weak.
Dec 9 '06 #192
"mystilleef " <my********@gma il.comwrites:
Advantages of Python:

1). More and better mature standard libraries (Languages don't matter,
libraries do).
Erm, somewhat true, but Python's library is overrated. Lisp's on the
other hand is out of date.
2). Multiple programming paradigms (including functional style
programming see itertools, functools, operator modules (lambda, map,
filter, reduce, sum etc builtins), higher order functions, list
comprehension, blah, blah)
Getting there but still full of warts.
3). Better OO implementation. (I used to hate OO until I started using
Python)
Have you used CLOS? Flavors?
4). Ultimate glue language (Plays well with C, C++, Java, .NET. nuff
said. Bindings for almost any lib worth using, at least on *nix)
Hmm, Python's C API is awful compared with the FFI's in reasonable
Lisp implementations or to Java's JNI.
5). Clearer syntax.
OK.
6). Better namespace management. (nobody ever talks about this, but
Python seems to be one of the few languages that gets symbol management
right from a users perspective)
I dunno, Python gets some things completely wrong in this regard.
7). Easier packaging and distribution system.
Because there's basically just one Python implementation (CPython).
8). Ubiquity! Python is everywhere. Lisp, bleh.
Not so sure of this, unless you're limiting to Common Lisp. There are
Lisp systems out there that use as little as 20k of memory, running
inside cellular phones etc. By comparison an attempt to shoehorn
Python into the 1 megabyte Palm handheld computer was abandoned.
9). Relatively good docs (PHP has better).
Lisp's docs are far superior to Python's. This is one of the areas
where I bag on Python all the time.
10). Fewer perceived community assholes. Large community.
11). Less fragmentation.
True and true.
Advantages of Lisp:

Learning a functional language can improve your programming range and
depth. And today, I wouldn't even recommend Lisp (it's rather archaic),
when there's mind bending Haskell. I'd go as far as saying I believe
Haskell has a better fate than Lisp.
I don't really of think Lisp as a functional language; its data
representation is what makes it worth knowing. Despite years of
experience with Lisp and Python I'm still having trouble wrapping my
head around Haskell, and that tells me Haskell is really doing stuff
that Lisp does not.
On Lisp Macros:

I think they are overrated, and in general cause more harm than good.
It's the reason I find Lisp-like programs difficult to grok, maintain
and extend. Cos every smart ass wants to needlessly write his own mini
language to the point of absolute obfuscation. Naturally, I'm supposed
to be awed by his mischievous cleverness.
There is certainly the possibility of writing Lisp code that way, but
it's not all that big a problem when the code is written tastefully.
Conclusion:

The semantics or features of a language is almost irrelevant today.
Developers want to put the lego pieces together, they don't want to
make lego. Rewriting the sun and moon, or needlessly reinvent the wheel
was popular in the 70s, but it's boring and expensive today. Today,
when a developer needs to solve a problem, the question they ask is,
"Is there a library for that?".
But it seems to me that Java crushes Python in this regard.
Dec 9 '06 #193
"mystilleef " <my********@gma il.comwrites:
People only contribute to things they understand and appreciate. More
people would be writing Lisp libraries if it was worthwhile.
Apparently, it doesn't seem to be. A few years ago, I tried to write an
editor is Scheme. The experience was appalling. I was able to write a
fully functional prototype editor in less than a week in Python.
I remember thinking about writing an editor in Python. One of the
editor functions I couldn't figure out how to implement was
search-backward-regexp. Although the underlying regexp package in
Python's standard library is capable of searching backwards, the
Python lib does not export that feature to where Python code can use
it. RFE #516762 about this has been open for almost 5 years.
Dec 9 '06 #194
"mystilleef " <my********@gma il.comwrites:
Slow for users who aren't familiar with Psyco, Pyrex and C extensions,
sure.
Psyco is not included in the Python distro. Pyrex and C extensions
depend on having C compilers available for every target platform. As
a Linux user, if I want to release Python programs that Windows users
will run, I cannot use C extensions because I have no way to compile
them for Windows, and most Windows users don't have C compilers
either.

Anyway it's pretty lousy advocacy for a language to say "well if the
language is too slow, don't use it, use another langauge like C instead".

I think PyPy will make a big difference when it becomes part of
regular Python but for now it's vaporware.
Dec 9 '06 #195
mystilleef wrote:
John Thingstad wrote:
You might even find out if you ever learnt how to use it.

Donkeys have wings.
Please stop misinforming your fellow Python users. Feel free to look up
"CLOS" and the "metaobject protocol." Further, Lisp is not a functional
language like Scheme; it has unusually powerful iteration and array
facilities.

Common Lisp's OOP has multiple inheritance, a metaobject protocol,
method combinations, generic functions. I realize these sound like
buzzwords to you; I vaguely recall this being a nice video intro:
<http://www.archive.org/details/DanielGB1987>
Alan Kay coined the term object oriented programming, and I think
you'll enjoy his keynote "The computer revolution hasn't happened yet."
At 54:30, he praised the book explaining Common Lisp's metobject
protocol as being the "best book anybody's written in ten years", for
containing "some of the most profound insights, and the most practical
insights about OOP, that anybody has done about OOP in the last many
years."
<http://video.google.co m/videoplay?docid =-295094973005975 4521>

And he offered a Limoge Balloon award to anyone who'd simply rewrite
the book so that the general OOP community could understand it, for
being "a great service to mankind."

The concepts in that book underlie Lisp's modern OOP system.
Further, you portray Lisp as a "functional " language. But it is a
powerful iterative language. Check out LOOP, a powerful iteration
facility. Check out its powerful multidimensiona l arrays, which are
adjustable and have fill-pointers.
There exist legitimate criticisms of Common Lisp, and I've even written
a page with "gotchas." One should remain appropriately skeptical of
Lisp users' claims, because they too can mislead. I wish we could
critique thoughtfully. On the basis of facts, not invented claims.
Tayssir

Dec 9 '06 #196
tayssir.j...@go oglemail.com wrote
Further, Lisp is not a functional
language like Scheme; it has unusually powerful iteration and array
facilities.
Excuse me, I mean to say it is not a pure functional language.

Tayssir

Dec 9 '06 #197


Paul Rubin wrote:
Ken Tilton <ke*******@gmai l.comwrites:
>>yeah, I think it is. Folks don't vary that much. If every Lisp
programmer also reports parens disappearing at about thirty days, any
given non-Lispnik can pretty much bet on the same experience.


I think an editing program that balances parens automatically is near
indispensible for writing Lisp code.
I would say indispensible full stop.
I can't stand writing Lisp
without Emacs.
Emacs or an Emacs-like editor (or at least Lisp-ware editor) provided by
the Lisp environment.

ken

--
Algebra: http://www.tilton-technology.com/LispNycAlgebra1.htm

"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

"I'll say I'm losing my grip, and it feels terrific."
-- Smiling husband to scowling wife, New Yorker cartoon
Dec 9 '06 #198
Bill Atkins <at****@rpi.edu writes:
Lest anyone interpret that list as exhaustive: http://www.cl-user.net/
What have you got for concurrency? How would you write a
multi-threaded web server in Lisp?
Dec 9 '06 #199
Maybe so. But I've only ever appreciated its functional aspects. I
wouldn't choose Lisp or its derivatives for OO related tasks even if
I'm high.

But CLOS is the best OO there is. The OMG said so. It can do anything
any other OO can do. Why /specifically/ would you not use it? This type
Specifically it does not have name spaces. Therefore it is
fundamentally flawed and cannot be used as a serious object-oriented
tool for developing complex applications. However, I'll give you that
it is pretty nice for pet-projects and educational purposes (counting
parenthesises). But for some, that is more than enough.

--
mvh Björn
Dec 9 '06 #200

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

14
2184
by: Paddy3118 | last post by:
This month there was/is a 1000+ long thread called: "merits of Lisp vs Python" In comp.lang.lisp. If you followed even parts of the thread, AND previously used only one of the languages AND (and this is the crucial bit), were persuaded to have a more positive view of the other language; (deep breath, this is a long, as well as grammatically incorrect sentence), THEN WHY NOT POST ON WHAT ARGUMENTS PERSUADED YOU.
0
9407
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10017
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
9961
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
9843
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
1
7384
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6656
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5283
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
1
3932
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
3
2808
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.