| | I ran across a discussion at the comp.lang.lisp Usenet group, about comparing Python and Lisp. It has 1070 responses, which is just amazing. ( merits of Lisp vs Python, Dec 8 2006, you can use groups.google.com to interface with Usenet, it's something older than the internet we are used to, before web browsers ).
Here's a response from Carl Banks, one of the Lisp programmers joining in:
Mark Tarver wrote: > This confirms my suspicion > that Lisp is losing out to newbies because of its > lack of standard support for the things many people want to do.
Whoa there, that's a pretty big logical jump there, don't you think? Consumer choice can never be boiled down to one thing; there are so many factors. No one knows the whole answer. I certainly don't. (If I did, I'd be courteously turning down the Nobel Prize for Economics on account of being so rich I really didn't need the extra pocket change.)
I have no doubt that what you say is a contributing factor, but if I had to guess the main reason why Lisp is losing out to newbies, I'd say it's first impressions. When newbies see Python they say, "Ok, I can kind of follow that, it doesn't look too hard to learn." When they see Lisp they say, "WTF IS THAT???"
It's kind of sad, in a way, that a superficiality would be so crucial. (Not that I think outward appearance is all superficial--I think humans have evolved and/or learned to regard as beautiful that which minimizes effort--but it's not the whole story and not basis for a whole judgment.)
Carl Banks
***********************************************
OK, so that maybe shows me something I should have noticed earlier. The code examples that I've shown so far are where the data processing function is used to solve a pretty tough data crunching problem, and many data transforms are all thrown into one paragraph of code. The code looks complicated because the problem I chose to solve is complicated. The vast majority of people who see it just don't understand the data crunching problem I chose.
What I really need to do is post some super-simple examples, where you read in the input data , make a very easy modification to the data, write out the output data .... When a data processing function is used to do a very simple data modification, the paragraph of code should be very small and clear.
Also , I'll need to blog about the directoryref, print, asciitobinary, and binarytoascii statements, all of which are much simpler things than the data processing function....
The directoryref statement is wicked simple, at the top of the program:
directoryref a="/home/tom/mydata" ;
So that when you do : inlist a/datafile1 ; You mean : read in the input dataset "/home/tom/mydata/datafile1"
When you do : sendoff(a/newdatafile) ; You mean : write out the current dataset to "/home/tom/mydata/newdatafile" , writing a new output dataset.
The print statement just does a page-by-page printout (as an ascii file) of a dataset.
The asciitobinary statement creates a binary dataset from an ascii data file( typically comma delimited ).
The binarytoascii statement creates an ascii data file from a binary dataset.
These "helper" statements are needed because the data processing function does not (yet) read directly ascii data or write out ascii data, and the data processing function does not produce print-outs. The data processing function reads in input datasets ( that are in the binary data format native to this application ) , transforms the data (that's where the power of the product is), and writes out the output datasets (also in binary data format).
All of these "helper" statements are wicked easy to explain.
Truth is Vilno is a very easy language to learn. Well, since SPSS, SAS ( SAS datastep ), and Vilno are all in the same language family, they all have a fairly similar learning curve. (You can also compare all three to SQL SELECT, also very easy to learn).
One guy said that Python is both easier to learn and better than Vilno for this sort of data crunching. This is absolute rubbish. It's true that Python is easier to learn than C++ ( I've used both ). But specialized programming languages have an easier learning curve than all-purpose languages: that would imply that all three languages ( SAS, SPSS, Vilno) are easier to learn than Python. That indeed is true. For the same reason SQL is easier to learn than Python.
Python is powerful and all-purpose, so there is a great deal to learn. People think Python is super-easy to learn because Python is cool and van Rossum is well-respected.
That's an emotional reaction. All purpose programming languages that are powerful are not super-easy to learn.
|
| | Posted 1/29/2007 9:53 PM - 44 Views - 0 eProps - 0 comments
- recommend
    - recs0
- share
- email
 - sent0
Give eProps or Post a Comment |