Hacker News new | past | comments | ask | show | jobs | submit login
Clojure is almost as big as Common Lisp (arcanesentiment.blogspot.com)
79 points by blasdel on April 3, 2011 | hide | past | favorite | 8 comments



Interesting to note, but not really all that informative. An in depth comparison of libraries might be more useful.


Bigness is relevant, CL advocates still cite the size of its standard library as an advantage:

http://www.lispworks.com/products/myths_and_legends.html

The library is large and supplies several hundred highly flexible functions

How many do you get in a "batteries included" Python, Tcl or Perl? How many in Java or .NET? It may be that the CL ones are "better" but that's subjective...


I think what's more relevant is how well the standard library is designed to stay out of your way. Bloat and size are not always the same thing.


Preferably staying out of the way by providing the right abstractions. Even a huge library can feel light and flexible if the design encapsulates all the unnecessary details and translates well into the way we think about the problem.


So, how about that Common Lisp community spirit?


How big is something like python?


I'd say that's possibly a not so interesting comparison, in the sense that python and clojure seem to have quite different name-usage patterns, but some values that may interest you: the size of __builtins_, the basic types and functions would be

    len(__builtins__.__dict__.values()) #=> 143
but then you'd have to consider the methods/attributes on each object

    len(list(chain( *[dir(o) for o in __builtins__.__dict__.values()]))) #=> 4133
but then again, most of these are either the same method that keeps appearing via inheritance, or a different implementation of the same protocol, so you may want to collapse same-named objects

    len(set(chain( *[dir(o) for o in __builtins__.__dict__.values()]))) #=> 250

which added to the names of the first iteration gives you ~400 names, about half of clojure.

But a lot of code in python is in the standard lib even if not loaded as __builtin__, sadly, I'm not sure how to list/load all the standard library in one go.


I think that's a valid question. Python aims at "batteries included," so everything you get out of the box when you do a "make install" should count.

With that in mind, I can't think of many that are bigger in terms of coverage.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: