From: John M. Gabriele
Subject: productivity improvement with Lisp over Python? Haskell?
Date: 
Message-ID: <CbYBf.554$wv1.126@fe10.lga>
Hi,

Is there typically an appreciable improvement in productivity
when going from Python to Lisp? I'm curious about Haskell too
if anyone here can comment on it.

In the past I've done some small amount of C++. When I learned
Java, I was pleasantly surprised to see how much more productive
I was (mostly this was with my own personal programming projects,
games, toy programs, etc.).

Later, I learned Perl and Python, and with Python was amazed
yet again at how much quicker development went (faster than with
Java). Perl seems pretty productive, but I always find myself
having to look up various syntax or default-value rules to make
the code work right, and that makes development take longer for
me.

Python feels even simpler than Java, so that was a plus as well
(less language to remember).

I've read some articles on the Paul Graham site, and am
intrigued with his claims about how ViaWeb simply out-produced
(that is, was more productive than) their competition. I've got
just as little free time as most everybody else here, and so the
more work I can get done in n hours, the more time I get to
spend with the family after work. At work I'm doing some web
development, and have been planning on using Python for an
upcoming project -- maybe with something like Cheetah (templating
toolkit) and CherryPy (webapp framework). I'm guessing that Common
Lisp has similar tools available, but does it offer any substantial
benefits over using Python?

Anyhow, although this might not be the place to ask about it,
I'm also curious about Haskell. As readers here will likely
know, it's the implementation language for a certain Perl6
interpreter called "Pugs". Evidently, Autrijus (the project
lead) is evidently producing working code like a madman. Can
anyone here comment on in which circumstances Haskell might be
a more productive language than Common Lisp?

Any advice or comments from the wise village elders here is most
appreciated.

Thanks,
---J

-- 
(remove zeez if demunging email address)

From: ··········@gmail.com
Subject: Re: productivity improvement with Lisp over Python? Haskell?
Date: 
Message-ID: <1138251124.361282.312590@f14g2000cwb.googlegroups.com>
John M. Gabriele wrote:
> Evidently, Autrijus (the project
> lead) is evidently producing working code like a madman.

I believe you mean "madperson"

http://pugs.blogs.com/audrey/2005/12/runtime_typecas.html
From: John M. Gabriele
Subject: Re: productivity improvement with Lisp over Python? Haskell?
Date: 
Message-ID: <vVZBf.573$wv1.349@fe10.lga>
··········@gmail.com wrote:
> John M. Gabriele wrote:
> 
>>Evidently, Autrijus (the project
>>lead) is evidently producing working code like a madman.
> 
> 
> I believe you mean "madperson"
> 
> http://pugs.blogs.com/audrey/2005/12/runtime_typecas.html
> 

Sorry. No offense intended. Thanks for the heads-up.
From: Robert Uhl
Subject: Re: productivity improvement with Lisp over Python? Haskell?
Date: 
Message-ID: <m3bqxypx5z.fsf@NOSPAMgmail.com>
··········@gmail.com writes:
>
>> Evidently, Autrijus (the project lead) is evidently producing working
>> code like a madman.
>
> I believe you mean "madperson"
>
> http://pugs.blogs.com/audrey/2005/12/runtime_typecas.html

'Madperson' isn't even a proper word!

-- 
Robert Uhl <http://public.xdi.org/=ruhl>
English was a language invented by Norman invaders to pick up
Anglo-Saxon barmaids.  It retains much of this character.
From: rolfotto
Subject: Re: productivity improvement with Lisp over Python? Haskell?
Date: 
Message-ID: <1138259818.368250.106290@g43g2000cwa.googlegroups.com>
It depends the size of your project.  The larger your project is, the
more you should benefit from using lisp, as it tends to build up a
program easier than other languages (versus the purely top-down
approach).

However, I'm not familiar with web programming enough to say what type
of offset you have with existing libraries for python versus lisp, and
you have to also consider your own experience levels with each.
From: Fernando Rodríguez
Subject: Re: productivity improvement with Lisp over Python? Haskell?
Date: 
Message-ID: <a33bd841528d8c7f07ae2005334@news.supernews.com>
Hello John,

> Hi,
> 
> Is there typically an appreciable improvement in productivity when
> going from Python to Lisp? I'm curious about Haskell too if anyone
> here can comment on it.

Python has a very extensive library, so if you depend a lot on any of them, 
you probably will do better with Python. I'd keep Python for sysadmin wizardry 
and scripting. For more complex stuff, you will probably prefer Common Lisp, 
as you may consider CL as Python on steroids. Make sure you learn macros, 
they are (IMHO) one of the biggest productivity boosters in Lisp.
From: André Thieme
Subject: Re: productivity improvement with Lisp over Python? Haskell?
Date: 
Message-ID: <1138298298.220497.124160@o13g2000cwo.googlegroups.com>
John M. Gabriele schrieb:

> Is there typically an appreciable improvement in productivity
> when going from Python to Lisp?

As I don't know what "typical" means in this context I can't answer. I
don't know what a typical project is, what a typical day of programming
means.

I guess that if you plan to make projects with up to 3000 LOC you
should stay with Python. You already know it and Lisp won't help you
much. Lisp could gain you some execution speed over Python.
For scripting tasks Lisp can't compete with Python because scripting is
the domain of Python. If you plan to be a programmer for the next 20-50
years then learn Lisp. The bigger the project the more useful Lisp will
be. That is because you develop domain specific languages for your
upcoming projects that is perfectly suited to write exactly these
applications. And this means you are maximal productive because domain
specific languages are (well, at least I believe in it) always better.



> Later, I learned Perl and Python, and with Python was amazed yet again at how much
> quicker development went (faster than with Java).

I am not sure that development with Python will be so much
easier/faster than with Java when it comes to big projects. Look at the
application server Zope. It has thousands and thousands LOC. Javas
application server are not that much bigger. And the team already
develops so many years and Zope still has its problems.



> I've read some articles on the Paul Graham site, and am
> intrigued with his claims about how ViaWeb simply out-produced
> (that is, was more productive than) their competition.

That was in the 90's when Java was no competition. If Java were already
so complete as it is today I don't think that Graham would have
out-produced competition that used Java.


> I've got just as little free time as most everybody else here, and so the
> more work I can get done in n hours, the more time I get to
> spend with the family after work.

Learning Lisp will cost you a lot of time. The younger you are and the
more important programming is for you as a hobby the more I suggest you
to learn Lisp.
In the end it probably is the "best" or "most powerful" programming
language available.


> I'm guessing that Common Lisp has similar tools available, but does it offer any substantial
> benefits over using Python?

Lisp does have similar tools, but it might not make you more productive
for "typical" projects.
Python has 15 years of development and great Libs.
So if you want one project fast, do it in Python.
If you are not forced to finish your project in the next couple of
weeks then start learning Lisp now. The earlier you begin the more you
can use it for the rest of your life.


André
--
From: John M. Gabriele
Subject: Re: productivity improvement with Lisp over Python? Haskell?
Date: 
Message-ID: <jHeCf.368$CF3.133@fe11.lga>
Andr� Thieme wrote:
> John M. Gabriele schrieb:
> 
> [snip]
> 
> I guess that if you plan to make projects with up to 3000 LOC you
> should stay with Python. You already know it and Lisp won't help you
> much. 

Interesting. I've never worked on a Python project larger than
that (3000 LOC). I'm guessing that as you get to that size, you
lean more and more on your unit tests to keep you from breaking
the system.

I've never heard yet if Lisp has "unit tests" per se, if it
you even need them when developing with Lisp.

> [snip] If you plan to be a programmer for the next 20-50
> years then learn Lisp.

Well, I'd planned on learning Lisp at some point anyway, if
only to see what everyone is going on about. ;) I've heard
that Scheme is a slimmed-down Lisp, and figured that might
be nice to dip my toes into, and a bit easier and quicker
to pick up.

> The bigger the project the more useful Lisp will
> be.

It's funny that you and most everyone else mentions that. Maybe
it doesn't make sense to me yet because I don't yet understand
how functional programming works. (?) Maybe that's the feature
that helps a language scale up...

> That is because you develop domain specific languages for your
> upcoming projects that is perfectly suited to write exactly these
> applications. And this means you are maximal productive because domain
> specific languages are (well, at least I believe in it) always better.

I'm trying to understand what you're saying there. I think it's
that Lisp has the concept of macros, and maybe you "program" the
language using these macros to make Lisp become your domain-specific
language. (?) I think I've heard of Lisp being the "progammable
programming language".

> 
>>Later, I learned Perl and Python, and with Python was amazed yet again at how much
>>quicker development went (faster than with Java).
> 
> 
> I am not sure that development with Python will be so much
> easier/faster than with Java when it comes to big projects. Look at the
> application server Zope. It has thousands and thousands LOC. Javas
> application server are not that much bigger. And the team already
> develops so many years and Zope still has its problems.
> 

The only large Java program I've worked with seemed to mostly
consist of largely undocumented classes (partly autogenerated
by Eclipse, loaded with "getters" and "setters") and a seemingly
(to me, anyway) overly-designed inheritance hierarchy. Of course,
these same issues could be present in a large Python program
also.

So far, it seems to me that you get more done per Python LOC
than with Java. With both languages I'm guessing you're writing
about the same number of unit tests.

> 
> 
>>I've read some articles on the Paul Graham site, and am
>>intrigued with his claims about how ViaWeb simply out-produced
>>(that is, was more productive than) their competition.
> 
> 
> That was in the 90's when Java was no competition. If Java were already
> so complete as it is today I don't think that Graham would have
> out-produced competition that used Java.

Hm. So, for larger projects, it sounds like you're implying that
Java, Python, and Lisp are quite similar productivity-wise.

> 
> 
>>I've got just as little free time as most everybody else here, and so the
>>more work I can get done in n hours, the more time I get to
>>spend with the family after work.
> 
> 
> Learning Lisp will cost you a lot of time. The younger you are and the
> more important programming is for you as a hobby the more I suggest you
> to learn Lisp.
> In the end it probably is the "best" or "most powerful" programming
> language available.

Thanks Andre.

---J

-- 
(remove zeez if demunging email address)
From: bradb
Subject: Re: productivity improvement with Lisp over Python? Haskell?
Date: 
Message-ID: <1138328393.325534.285280@z14g2000cwz.googlegroups.com>
> I'm trying to understand what you're saying there. I think it's
> that Lisp has the concept of macros, and maybe you "program" the
> language using these macros to make Lisp become your domain-specific
> language. (?) I think I've heard of Lisp being the "progammable
> programming language".

I started to understand what people were talking about with DSLs when I
read Peter Seibel's Practical Common Lisp, particularly the chapter on
parsing binary files.
http://www.gigamonkeys.com/book/practical-parsing-binary-files.html

I still don't grasp Lisp well enough to get all of that chapter, but
seeing the examples I can see the potential of macros.

Cheers
Brad
From: Larry Clapp
Subject: Re: productivity improvement with Lisp over Python? Haskell?
Date: 
Message-ID: <slrndtk93d.2dk.larry@theclapp.ddts.net>
On 2006-01-27, bradb <··············@gmail.com> wrote:
>> I'm trying to understand what you're saying there. I think it's
>> that Lisp has the concept of macros, and maybe you "program" the
>> language using these macros to make Lisp become your
>> domain-specific language. (?) I think I've heard of Lisp being the
>> "progammable programming language".
>
> I started to understand what people were talking about with DSLs
> when I read Peter Seibel's Practical Common Lisp, particularly the
> chapter on parsing binary files.
> http://www.gigamonkeys.com/book/practical-parsing-binary-files.html

I started to understand the idea of DSLs when someone pointed out that
'make' uses a DSL.  Shells use a DSL.  (Instead of writing several
lines of C to run program A and connect its stdout to B's stdin, you
type "A | B".)  Many Wikis have DSLs in them.

This[1] thread has some discussion of DSLs.

Once you realize that DSLs exist all around you, you can more easily
think of ways that a DSL for your domain can help you, save you work,
and make your task easier -- and how to design one.  And, perhaps, how
*not* to design one *cough*sendmail*cough*.  ;)

-- Larry


[1] https://lists.csail.mit.edu/pipermail/ll-discuss/2005-April/000190.html
From: André Thieme
Subject: Re: productivity improvement with Lisp over Python? Haskell?
Date: 
Message-ID: <1138407020.800795.159860@g43g2000cwa.googlegroups.com>
John M. Gabriele schrieb:

> André Thieme wrote:
> > John M. Gabriele schrieb:
> >
> > [snip]
> >
> > I guess that if you plan to make projects with up to 3000 LOC you
> > should stay with Python. You already know it and Lisp won't help you
> > much.
>
> Interesting. I've never worked on a Python project larger than that (3000 LOC). I'm
> guessing that as you get to that size, you lean more and more on your unit tests to keep
> you from breaking the system.

If you mostly made programs in the range of 10-1000 LOC then I doubt
that Lisp will give you a definate advantage for a "typical prject".


> I've never heard yet if Lisp has "unit tests" per se, if it
> you even need them when developing with Lisp.

It has several ways for unit testing.
You could look at chapter 9 of "Practical Common Lisp" to get an idea
how easy it is to develop a unit testing framework in lisp.


> > The bigger the project the more useful Lisp will be.
>
> It's funny that you and most everyone else mentions that. Maybe
> it doesn't make sense to me yet because I don't yet understand
> how functional programming works. (?) Maybe that's the feature
> that helps a language scale up...

Functional programming is only one style of what Lisp can do. In fact
it was able to adopt any programming style. You can't do that with
other languages, so Lisp really is a multiparadigm language.
This style of programming helps to speed up coding. You can also do it
in Python, although nearly noone is doing it.. and it also does not
feel good to do it in Python.
But Lisp offers many more features for productivity.


> > That is because you develop domain specific languages for your
> > upcoming projects that is perfectly suited to write exactly these
> > applications. And this means you are maximal productive because domain
> > specific languages are (well, at least I believe in it) always better.
>
> I'm trying to understand what you're saying there. I think it's that Lisp has the concept of
> macros, and maybe you "program" the language using these macros to make Lisp become
> your domain-specific language. (?) I think I've heard of Lisp being the "progammable
> programming language".

Yes, Lisp is a programmable programmin language.
Does Python have a do-while-loop? No.
Does Lisp have a do-while-loop? No.
Can you change Python so that it does have a do-while-loop? No.
Can you change Lisp so that it does have a do-while-loop? Yes!

The thing is: for programs that have 300 LOC there is not much use of
that feature.


> So far, it seems to me that you get more done per Python LOC than with Java. With both
> languages I'm guessing you're writing about the same number of unit tests.

Java might have some more LOC but most of them will be generated by the
IDE. In the end you won't have to write much more Java than you had to
write Python.
If you are making some scripts then Java can't beat Python because
Python was made for that. But try to make some bigger programs. I don't
think that Python will scale very well... Java would.



> >>I've read some articles on the Paul Graham site, and am
> >>intrigued with his claims about how ViaWeb simply out-produced
> >>(that is, was more productive than) their competition.
> >
> >
> > That was in the 90's when Java was no competition. If Java were already
> > so complete as it is today I don't think that Graham would have
> > out-produced competition that used Java.
>
> Hm. So, for larger projects, it sounds like you're implying that
> Java, Python, and Lisp are quite similar productivity-wise.

That was not exactly what I wanted to express by saying that Lisp is
the "most powerful" programming language ;-)


André
--
From: Larry Clapp
Subject: Re: productivity improvement with Lisp over Python? Haskell?
Date: 
Message-ID: <slrndtn97h.2dk.larry@theclapp.ddts.net>
On 2006-01-28, Andr� Thieme <······························@justmail.de> wrote:
> John M. Gabriele schrieb:
>> I've never heard yet if Lisp has "unit tests" per se, if it you
>> even need them when developing with Lisp.
>
> It has several ways for unit testing.  You could look at chapter 9
> of "Practical Common Lisp" to get an idea how easy it is to develop
> a unit testing framework in lisp.

See also the budding Gardeners Report on testing frameworks, at
http://wiki.alu.org:80/Test_Frameworks.

-- L
From: Majorinc, Kazimir
Subject: Re: productivity improvement with Lisp over Python? Haskell?
Date: 
Message-ID: <MPG.1e4450deb785cc3e989683@news.carnet.hr>
In article <·················@fe10.lga>, ··············@yahooz.com 
says...
> 
> Hi,
> 
> Is there typically an appreciable improvement in productivity
> when going from Python to Lisp? I'm curious about Haskell too
> if anyone here can comment on it.

If your question is "typically," then answer is clearly NO. For some 
problems Lisp is really better choice than Python, but they are 
certainly not typical. Lisp is significantly less popular than Python, 
and knowing how old it is, and how much of support it got from 
academia, it reflects some truth. 

Haskell has some nice feature, but its "pure functional" approach is 
for typical purposes considered unnecessary complication. 
From: ·············@yahoo.com
Subject: Re: productivity improvement with Lisp over Python? Haskell?
Date: 
Message-ID: <1138379089.571170.224230@g49g2000cwa.googlegroups.com>
Thanks for the replies. It's been very enlightening.

I'll very likely continue to use Python for the admin and web stuff,
but it's on my to-do list to eventually stretch my brain some more and
try Lisp.
From: Tim X
Subject: Re: productivity improvement with Lisp over Python? Haskell?
Date: 
Message-ID: <87fynakut1.fsf@tiger.rapttech.com.au>
"John M. Gabriele" <··············@yahooz.com> writes:

> Hi,
> 
> Is there typically an appreciable improvement in productivity
> when going from Python to Lisp? I'm curious about Haskell too
> if anyone here can comment on it.
> 
> In the past I've done some small amount of C++. When I learned
> Java, I was pleasantly surprised to see how much more productive
> I was (mostly this was with my own personal programming projects,
> games, toy programs, etc.).
> 
> Later, I learned Perl and Python, and with Python was amazed
> yet again at how much quicker development went (faster than with
> Java). Perl seems pretty productive, but I always find myself
> having to look up various syntax or default-value rules to make
> the code work right, and that makes development take longer for
> me.
> 
> Python feels even simpler than Java, so that was a plus as well
> (less language to remember).
> 
> I've read some articles on the Paul Graham site, and am
> intrigued with his claims about how ViaWeb simply out-produced
> (that is, was more productive than) their competition. I've got
> just as little free time as most everybody else here, and so the
> more work I can get done in n hours, the more time I get to
> spend with the family after work. At work I'm doing some web
> development, and have been planning on using Python for an
> upcoming project -- maybe with something like Cheetah (templating
> toolkit) and CherryPy (webapp framework). I'm guessing that Common
> Lisp has similar tools available, but does it offer any substantial
> benefits over using Python?
> 
> Anyhow, although this might not be the place to ask about it,
> I'm also curious about Haskell. As readers here will likely
> know, it's the implementation language for a certain Perl6
> interpreter called "Pugs". Evidently, Autrijus (the project
> lead) is evidently producing working code like a madman. Can
> anyone here comment on in which circumstances Haskell might be
> a more productive language than Common Lisp?
> 
> Any advice or comments from the wise village elders here is most
> appreciated.
> 
> Thanks,
> ---J
> 
> -- 
> (remove zeez if demunging email address)

Hi John,

I'm sure the more experienced here will give you lots of valuable
insight. I thought I'd throw my hat in the ring as someone who is
still on th eCL learning curve and who has done considerable
programming in Java, Perl, C and a little python. 

The first thing I'd say about lisp is that its fast to learn, but slow
to master. I wouldn't recommend diving into lisp for a work project
which has definite deadlines if your not yet had any lisp
experience. From some of your comments, I can see you are not familiar
with the language yet and have some of the common misconceptions about
lisp (e.e. reference to it as a functional programming language) that
many have at first. 

Having said that, I have found learning lisp to be a really rewarding
experience and beleive it is also helping my programming in other
languages (though I do find more things frustrating about some of
these languages now). 

I also looked a bit at scheme prior to deciding on lisp. The main
reason I chose lisp was because it had more to offer with respect to
producing applicaitons than scheme - but this is a subjective
opinion and others will disagree.

Personally, I wouldn't bother with Pascal. It was the first language I
learnt and I soon switched to C in preference to Pascal. However,
again this is a bit subjective, but I'd say Pascal and C are on a
similar level with respect to develpment. I would'nt select either C
or Pascal if I wanted to develop something quickly or if I wanted
something with reasonable portability. 

Tim

-- 
Tim Cross
The e-mail address on this message is FALSE (obviously!). My real e-mail is
to a company in Australia called rapttech and my login is tcross - if you 
really need to send mail, you should be able to work it out!