views:

352

answers:

8

I am a college student at a school that teaches mainly in Java. One of the strong points of Java, which I quite enjoy, is the large collection of libraries. What makes these libraries especially useful is the extensive documentation and organization presented via JavaDoc. Are there any library collections for Common Lisp which also have these qualities, and is there a tool similar to JavaDoc which would assist in the building, maintaining, or expanding of these libraries?

+2  A: 

Github contains a lot of lisp projects, not to mention Sourceforge

dsm
+2  A: 

Try cliki or common-lisp.net.

As to javadoc...you know about docstrings? If not, find out. Also find out about all the other self-documenting features.

It sounds like you haven't read the spec. Always read the spec, whatever you are doing.

Marcin
I started reading the specs related to posting a comment here, but after I got through HTTP and TCP/IP, I completely forgot what I was going to say. ;)
J c
You should have used a macro to do it.
Marcin
+1  A: 

Tinna is a Lisp documentation system that is comparable to JavaDoc.

sanxiyn
+3  A: 

No, there is no comprehensive, consistently documented library collection. The inexistence of such a thing is Common Lisp's biggest problem right now. If you're interested in helping the Lisp community, this may well be the thing to attack first.

Also, while there are various JavaDoc equivalents, there is no widely accepted quasi-standard as for Java.

Matthias Benkard
Downvoters: I'd appreciate if you could comment briefly on what you found unhelpful about my answer, so that I can do better next time. Thank you.
Matthias Benkard
+6  A: 

Yes there are extensive, documented library collections at http://www.cl-user.net, http://www.cliki.net and http://clocc.sourceforge.net. As well as advanced 'asdf' or 'mk-defsystem' base infrastructures to use them.

fincomus
heh, i wouldn't call ASDF advanced, though... :)
Attila Lendvai
+1  A: 

There are many available libraries for Common Lisp and many of them are thoroughly documented. JavaDoc, in my own experience (or any such tool like Doxygen for C++), is not a valuable tool to document a library but more to document its implementation.

So documentation is not a matter of tools here, but of will of the lib's author to write a decent manual. In this area, Common Lisp is like any other language: there are beautiful pieces of engineering with wonderful documentation, quick and dirty code without the slightest sign of documentation, as well as all possible combinations of code and documentation qualities...

All in all, I personnally found that Common Lisp libraries have a pretty high overall quality.

Nowhere man
+2  A: 

I recommend clbuild, which contains a collection of quality libraries compiled by a group of experienced, discerning lisp programmers (as well as script to download and install those libraries).

If you want guidelines for writing highlevel/api documentation, I suggest you follow the examples set by Edi Weitz and others (e.g., see Hunchentoot, Vecto).

For lower level implementation documentation, I think the built-in docstring mechanism together with Slime's source navigation and autodoc facilities comprise the best existing environment for code exploration.

huaiyuan
A: 

If you are used to Java, you may give Clojure a chance and keep using the Java libraries you know.

J. Pablo Fernández