473,768 Members | 8,326 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Anyone persuaded by "merits of Lisp vs Python"?

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.

OTHERWISE LET THIS POST WITHER AND DIE ALONE.

(I suspect this thread to be very short - even the
original poster seems to have given up on the day he
started the thread).

- Paddy.

Dec 28 '06
14 2184
Paddy3118 wrote:
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.
I fail two thirds of your requirements - at least now. However,
several years ago, I knew Python and was only passingly familiar with
Lisp. To me, at that time, Lisp was a language where the
compiler/interpreter writers were too lazy to write a real parser. "I
object to doing things that computers can do" [1].

I wasn't completely happy with Python though. It does threads poorly
(no concurrency unless you release the GIL in a C extension). The
buffer protocol has issues (particularly if you release the GIL) [2].
The Numpy stuff is bogged down with it's own backward compatible
history. Tkinter leaks memory if you're not careful with it. Adding a
C extension is non-trivial and takes your application from being a
collection of scripts to a distutils driven thing. These are real
issues that I still bump my head on (because I still use Python a lot
of the time). For those reasons, I'm still searching for a better
language for my needs.

Anyway, at that time, I saw an article about adding Hygienic Macros to
Python. The term caught my attention, and it was shot down in the
Python world. Of course, malcontent that I am, I had to go find out
what that was about. I had already seen how in Tcl you could create
new constructs. [3] Turns out Scheme and Common Lisp take that idea to
a new and higher place.

I found out the reason Lispers [4] stuck with their lazily written
parsers is that in exchange for infix operators, they can pretty much
assimilate any other language. Here is an easily readable piece of
Python:

def doit(n):
for i in xrange(n):
print i

With very little effort, here it is in Scheme:

(def doit(n)
(for i in (xrange n)
(print i)))

Don't any other Pythonistas find that interesting? Scheme could suck
in all of Python's beloved semantics with an incredibly similar syntax
in a couple days. [5] It was an interesting revelation to me. Then if
you wanted to add new features (Python 2.5 "with" for example), you
could do it yourself. Moreover, you could steal good features from
other languages too.

The point to all of this is that the cross pollination is arguably a
good thing. [6] If the Schemer's had stuck in their camp, I would
never had known that they had something worth looking at. This is the
same way that I was happily using Perl in college, and some Perl/Python
exchange got me to look at Python.

OTHERWISE LET THIS POST WITHER AND DIE ALONE.
It will die on it's own. Add it to your killfile, ignore it in Google
Groups whatever. More bandwidth was wasted by Paris Hilton and Britney
Spears than in this winding thread...

Cheers.

[1] A quote from Olin Shivers, and apparently he likes Lisp. That
struck me as ironic at first.

[2] Interestingly, Jython handles threads and buffers much better
because it's built on a virtual machine that considers those important.
Of course with Jython, you have to embrace the rest of the Java
environment...

[3] I thought it was particularly cool how Tcl could bolt on a class
based object oriented system as a library. The word "class" isn't
built into the language, but that kind of evaluator lets you add it.

[4] I don't consider myself a Lisper or Schemer. I'm just exploring
the programming language space trying to learn new ideas.

[5] Incidently, I haven't found the version of Scheme that gives me
concurrent threads, efficient buffers, C FFI, and numeric arrays the
way I want, but I'm still looking.

[6] Kenny Tilton pointed that out several times in the other thread.
There are many more lurkers looking and learning than posters posting.

Dec 30 '06 #11
In message <11************ *********@48g20 00cwx.googlegro ups.com>,
xs*****@gmail.c om wrote:
[3] I thought it was particularly cool how Tcl could bolt on a class
based object oriented system as a library. The word "class" isn't
built into the language, but that kind of evaluator lets you add it.
I have written about two notrivial scripts in Tcl. I don't think I will ever
bother to write another, particularly since I now know Python. Dealing with
arrays is an absolute pain, because the language doesn't have references
and arrays as first-class objects.
Jan 5 '07 #12
In message <ma************ *************** ************@py thon.org>, Paul
Hummer wrote:
I learned PHP for ease of web application development ...
PHP is great for easily developing _insecure_ web applications. But if you
want them not to leak like a sieve, things get a bit more complicated.
Jan 5 '07 #13
Ant
Hi all,

On Dec 28 2006, 4:51 pm, "Paddy3118" <paddy3...@nets cape.netwrote:
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;
I sort of fall into this category. I'm a Java developer by trade, but
use Python for all of my non-work related projects, and any scripting I
need at work. I hadn't looked at Lisp.

I've been tempted a few times to look more into Lisp, especially after
reading some of Paul Graham's stuff which has a strong bias toward
Lisp.

The thread gave me a kick start into looking into Lisp more deeply, and
over the Christmas break I downloaded CLisp and ordered a couple of
Lisp books. There were no arguments that persuaded me particularly -
more curiosity about a few of the concepts that were bandied about:

a) Closures - and what they give you that Python co-routines don't.
b) Macros - how they can be used, and what advantages they give you.

They were the real persuasion points for me.

So far? After a bit of pain getting started and finding decent docs
(while waiting for the books to arrive) I've found the language quite
easy to use. I haven't got into closures or macros yet - I need to get
more familiar with the basics first, but first impressions are
favorable. It seems that there is nothing conceptually in Python that I
can't reasonably easily do in Lisp, but the Python syntax is much more
straightforward for most of the basics I think (such as dictionaries,
sets, list comprehensions etc), and the function/naming conventions for
the core language is much clearer and more obvious than in Lisp.

Jan 5 '07 #14
In article <11************ **********@v33g 2000cwv.googleg roups.com>,
Ant <an****@gmail.c omwrote:
>
So far? After a bit of pain getting started and finding decent docs
(while waiting for the books to arrive) I've found the language quite
easy to use. I haven't got into closures or macros yet - I need to get
more familiar with the basics first, but first impressions are
favorable. It seems that there is nothing conceptually in Python that I
can't reasonably easily do in Lisp, but the Python syntax is much more
straightforwar d for most of the basics I think (such as dictionaries,
sets, list comprehensions etc), and the function/naming conventions for
the core language is much clearer and more obvious than in Lisp.
Just remember: today is the car of the cdr of your life.

Once upon a time, I was working at a company that was a commercialized
MIT Lisp project rewritten in C. One day I was amused to discover that
buried deep in the code were a pair of functions, car() and cdr()...
--
Aahz (aa**@pythoncra ft.com) <* http://www.pythoncraft.com/

"Plus ca change, plus c'est la meme chose."
Jan 6 '07 #15

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

Similar topics

7
7709
by: jeffbernstein | last post by:
Greetings. I'm reading "How to think like a computer scientist: Learning with Python" and there's a question regarding string operations. The question is, "Can you think of a property that addition and multiplication have that string concatenation and repetition do not?" I thought it was the commutative property but "<string>"*3 is equivalent to 3*"<string>". Any ideas?
388
21893
by: maniac | last post by:
Hey guys, I'm new here, just a simple question. I'm learning to Program in C, and I was recommended a book called, "Mastering C Pointers", just asking if any of you have read it, and if it's worth the $25USD. I'm just looking for a book on Pointers, because from what I've read it's one of the toughest topics to understand. thanks in advanced.
669
26185
by: Xah Lee | last post by:
in March, i posted a essay “What is Expressiveness in a Computer Language”, archived at: http://xahlee.org/perl-python/what_is_expresiveness.html I was informed then that there is a academic paper written on this subject. On the Expressive Power of Programming Languages, by Matthias Felleisen, 1990. http://www.ccs.neu.edu/home/cobbe/pl-seminar-jr/notes/2003-sep-26/expressive-slides.pdf
5
1569
by: Casey Hawthorne | last post by:
Since there was talk of if-then-else not being allowed in lambda expressions, the following is from "Dive into Python" The and-or conditional expression trick from page 41 of "Dive into Python" Wrap the arguments in lists and then take the first element. ''
26
1859
by: Frank Samuelson | last post by:
I love Python, and it is one of my 2 favorite languages. I would suggest that Python steal some aspects of the S language. ------------------------------------------------------- 1. Currently in Python def foo(x,y): ... assigns the name foo to a function object. Is this pythonic? Why not use the = operator like most other assignments?
92
3973
by: ureuffyrtu955 | last post by:
Python is a good programming language, but "Python" is not a good name. First, python also means snake, Monty Python. If we search "python" in google, emule, many results are not programming resource. If we search PHP, all results are programming resource. Second, python also means snake, snake is not a good thing in western culture. Many people dislike any things relevant to snake. We must have high regard for the custom.
1
1621
by: webtourist | last post by:
Warning: New learner here Not sure what the term means "implementation of Python". So what exactly does it mean *"implementation of Python"* like cpython, Jython, IronPython ????? In terms of IronPython --- does it mean a Python programmer can write .Net app in Python ? Thanks
0
1044
by: Steve Holden | last post by:
As the year draws to a close, Holden Web is pleased to remind readers that its final public "Introduction to Python" class of this year will be held from 9-11 December at our education center close to Washington, DC. There are several hotels conveniently located within walking distance, and we provide breakfast snacks on lunch each day. You can purchase places on-line at http://holdenweb.com/py/training/
0
9576
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, well explore What is ONU, What Is Router, ONU & Routers main usage, and What is the difference between ONU and Router. Lets take a closer look ! Part I. Meaning of...
0
10175
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
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
8840
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development projectplanning, coding, testing, and deploymentwithout human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
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
2
3534
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
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.