we stick to long names (and use fuzzy completion in slime).
I will try this fuzzy completion thing but I'm sceptical. Shorter names may still give you an advantage when it comes to reading code. :)
i suggest a bit more meditation on this. and if you still haven't changed your mind, then run experiments that include returning to code you wrote several months/years ago... :)
Writing code in such a way that you can come back to it after years and understand it is certainly a skill. A skill I don't have much experience with. I will encounter this challenge soon enough, though.
sometimes it happens that i accidentally implement something twice because of patch organization problems and/or not having an unlimited memory. to my delight, i more often than not name stuff exactly the same way in both implementations which are quite distant in time.
As for patching I don't have much experience either. I have never really collaborated with others when writing code. I'm using bazaar tentatively to sync my stuff between desktop and laptop but that's about it. (well, and since recently some kind of production server)
it also means that when i happen to look for something, i'll grep for at least a part of the name i would give it. this strategy usually very cheaply gets me to what i'm looking for. even years later...
Global grep certainly benefits from long descriptive names but it can, as I see it, lead to weak files/directories and systems/packages structures.
A grep of a sub-directory should do the trick even for short names. (short names may also appear in conjunction with package names) Ensuring that meaning is distributed equally on all levels (text/code, files/directories, systems/packages) should make short names more practical. I have to admit that I enjoy working with packages a lot, even as to go so far as to shadowing symbols so that I can reuse them as often as I see fit.
Fictional example:
(defpackage "CURL" (:export "GET"))
(defpackage "FOO" (:use "CURL") (:shadow "GET"))
(in-package "FOO")
(defun get (arg) (do-additional-stuff (curl:get arg)))
I'm also fond of using :shadowing-import-from. For me calling the same thing (or almost the same) with the same words is just to relieving.
all in all, having long and descriptive names is not a question for me anymore, especially with slime's fuzzy completion.
I'm afraid I have to learn this the hard way even if it is just for finding the right balance between short and long.
Writing down what some abbreviations stand for is also something I'm willing to do. (readme file, documentation string, comments) Also, in my opinion, the more local a name the shorter it can be.
Enough of my strange customs. :) Wish you a nice weekend.
( P.S. So now you have it, hopefully not a debate. Let's make sure this stays dialogue. (and just in case you have doubts, I'm still willing to adapt))
Just want to add that I'm grateful for your software, thank you.
we're glad you find it useful!
-- attila
!DSPAM:4cd42ec048584894726250!