8 ms·
I don't know of any Lisp programmer who thinks Python in an acceptable Lisp. In fact, there are some things about Python that are completely unacceptable as far
by poet 16y ago
I don't know of any Lisp programmer who thinks Python in an acceptable Lisp. In fact, there are some things about Python that are completely unacceptable as far as a Lisp goes: (1) crippled lambda, (2) no easy way to pass chunks of code around, etc.... Obviously not having macros is a given in anything but Lisp. Ruby (because of blocks) is far more of an acceptable Lisp.
- drcode 16y agoYeah, the lambda issue in Python is definitely not very Lispy. But I think even though Ruby offers a bit more for Lispers, I just don't like the design of the language as much in general as Python. If I don't code Python for a year and have to delve into it again it takes only a few seconds to get back to speed again. In Ruby, on the other hand, I always forget how the blocks & variables behave and am thrown by the strange predicate syntax, making this far more unpleasant.
- ngvrnd 16y agoI agree, I like Ruby better both for the syntax, the cleaner oo integration, and so on -- but a year and a half away from each, I can pick up the Python again a lot quicker. And python is friendly to scripting, low-level and embedded applications, which Ruby (Matz) is not interested in.
- DanWeinreb 16y agoI agree. But if you find yourself with an employer who requires that everything be written one of a few languages, and Lisp isn't on the menu, I'd take Python over C++ in a heartbeat.
- cdavid 16y agoAt least P. Norvig things python is an acceptable language, if not LISP. I think the point about being optimized for small teams is a significant one. Also, because LISP appeals mostly to programmers, but it often "repeals" people with expert knowledge (e.g. scientists without a strong programming background). P. Norvig mentioned that when he converted his AI book from Lisp to python code examples, it seemed much more natural to most people,
- drunkpotato 16y agoI think you meant "repels", unless you meant "refudiates", though perhaps your finger stumbled in the middle of "repls".
- cdavid 16y agoI have at least the excuse of not being a native speaker, contrary to S. Palin :) Thanks for the correction.
- swolchok 16y ago"refudiate" isn't a word (though it appears to be a Palin-ism -- http://www.urbandictionary.com/define.php?term=Refudiate http://www.urbandictionary.com/define.php?term=Refudiate). Perhaps you meant "repudiate?"
- bad_user 16y ago> Obviously not having macros is a given in anything but Lisp At least these languages (that I know of) have macros: http://boo.codehaus.org http://nemerle.org http://www.perl6.org
- poet 16y agoIf your language doesn't have Lisp syntax (or more precisely, a lack of syntax entirely) writing macros will be very unpleasant. How are you going to logically think about manipulating the structure of a program that looks like C# or Perl? Macros are already difficult enough to get right as is, without introducing the problem of syntax. Those languages don't have macros any more than Python has a lambda.
- chromatic 16y agoHow are you going to logically think about manipulating the structure of a program that looks like C# or Perl? In Perl 6, you extend the active grammar within a delimited scope.
- poet 16y agoMy point still holds, just replace manipulating the structure of a program with manipulating the structure of a grammar. In no way is that comparable to manipulating raw parse trees.
- bad_user 16y agoBut you are manipulating parse trees: surely you have to add new grammar rules to the parser, but then the macro itself does just that. Furthermore, when adding syntax you are not limited to a Lisp-style grammar.
- draegtun 16y agoFurthermore, when adding syntax you are not limited to a Lisp-style grammar And this is a very good point because you can add things like XML grammar to Perl6: http://github.com/krunen/xml http://github.com/krunen/xml
- deleted 16y ago[deleted]