Why is Python popular, while Lisp and Scheme aren't?
Pascal Costanza
costanza at web.de
Mon Nov 18 14:18:01 EST 2002
More information about the Python-list mailing list
Mon Nov 18 14:18:01 EST 2002
- Previous message (by thread): Popular conceit about learning programming languages
- Next message (by thread): Why is Python popular, while Lisp and Scheme aren't?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Alexander Schmolck wrote: >>I think the blurred boundaries between the core language and the library in >>Common Lisp are a big advantage. > > [...] > Another related problem is that Common Lisp doesn't scale well. It is a big > and complex language and that's it. While this might be a big productivity win > for an experienced developer who can leverage a large collection of well > thought out standard functions, it makes it a bad choice for many other > scenarios (if you knew neight CL nor python, would you rather have your > application scripted in python or CL?). If you had previously worked mainly with languages like Smalltalk, Prolog or some other Lisp dialects, Common Lisp would probably be the better bet. ;-) I am only half-joking - of course, it is more likely that people's previous backgrounds make it more natural to do things in Python than in Common Lisp. But it always depends on the concrete setting. >>To summarize some claims, some people say that Common Lisp is too big while >>some say that it is lacking in APIs. However, you can't say both things at the >>same time, this would be contradictory. If you want to try a Lispy language > > > I see no contradiction. Common lisp, compared to python, for example, is > lacking in libraries to achieve specific tasks needed for many real world > applications (such as GUIs, net protocols, text-processing, etc.), but comes, > unlike to python, with plenty of looping constructs including a Turing > complete format function, amongst other things. Now python programmers doing > Numerics don't have to worry about the SOAP module and vice versa for web > developers, whereas *all* CL programmers have to master loop, dolist, format > and whatever else lurks in cl:. Since specialized libraries for the task at > hand win out over more powerful language concepts, with CL you often have to > know much more in order to be able to do much less than with python. I understand your point. However, some minor points: For all of the areas you mention (GUI, net, text) there exist libraries in Common Lisp. And you don't need to know about the details of loop and format, etc., in the beginning. You're right in that you have to know more when you use Common Lisp. This is partly the case because the culture is very different when compared to Python. Languages like Python, Ruby, Perl, and so on, are primarily "single-vendor" languages. (I don't know if this is a good wording - I am not a native speaker.) Of course, there are other implementations of Python, like Jython, Stackless Python, and so on, but the standards are primarily set by one implementation. The ANSI Common Lisp standard is defined as an abstract definition, and there are many vendors that (more or less successfully) implement this standard. Many of the complications you mention can be traced back to this fact. (For example, Vendor A may provide an excellent GUI API, whereas Vendor B may have the best net library - but you may not be able to have both. I am making this up, it's not as bad as that - this is just to illustrate what I mean.) > That doesn't mean that python is generally better than CL, it just means that > people are not as irrational as lispers generally belief for often prefering > python over CL. Of course not. I think I have mentioned this before - I don't like language advocacy. My take on this is as follows: It pays off to take a look at many different languages and learn what they have in common and in what respects they differ. It's more important to know the general concepts that are common to many languages than to understand the accidental details of a particular language (of course, you should also know a certain number of languages on a very detailed level). In the long run, this allows you to be productive in almost any language in a short amount of time. The more often your head has been turned around by new languages/concepts the better. ;) There are studies that show that knowing several languages well is one of the most noticeable common characteristic of good programmers. So, for example, a set of languages I would propose to learn includes Common Lisp, Scheme, Haskell, OCaml, Prolog, Python, Ruby, gbeta. (Not that I know them all... ;) Pascal -- Given any rule, however ‘fundamental’ or ‘necessary’ for science, there are always circumstances when it is advisable not only to ignore the rule, but to adopt its opposite. - Paul Feyerabend
- Previous message (by thread): Popular conceit about learning programming languages
- Next message (by thread): Why is Python popular, while Lisp and Scheme aren't?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list