libera/#clim - IRC Chatlog
Search
7:57:51
beach
contrapunctus: In the Anathema documentation, you want clients to use :IMPORT-FROM. What is the reason for that?
8:03:51
contrapunctus
beach: it's just a suggestion/recipe, provided with the hope of reducing onboarding friction for the application programmer. They don't necessarily have to use :IMPORT-FROM...
8:04:53
beach
I suggest you provide an alternative way in the documentation, say the use of package-local nicknames.
8:44:35
contrapunctus
beach: I see...is it preferable to use PLNs rather than :IMPORT-FROM? (I suppose PLNs can make for more explicit code.)
8:45:18
beach
When I read some code, I would like to know from which package a symbol is taken, unless it is a symbol from the current package or the CL package.
8:54:36
beach
Furthermore, :IMPORT-FROM does not respect the status of a symbol, like whether it is exported or not.
8:55:06
beach
So client code could import a symbol that is not exported and not get any indication that anything is wrong.
9:14:27
beach
The AMOP uses the preposition "to" for specialization. A method "on" a generic function specializes "to" a class.
9:14:28
pjb
beach: but with :import-from, you know where the symbols come from, contrarily to :use ; you should like :import-from!
9:15:14
pjb
I didn't realize you could also import-from internal symbols; this could be a problem indeed.
9:15:17
beach
As the person reading someone else's code, I can't tell from the name of the symbol where it comes from without also consulting the package definition.
9:16:46
beach
Yeah, I don't know why I bother giving advice these days. It seems I am always wrong. Maybe I should give up programming and grow vegetables instead.
9:17:35
beach
Not only am I wrong about programming. I seem to be wrong about pedagogy as well, despite my more than 4 decades of experience.
9:18:20
beach
Of course, as we know, experience does not imply expertise, which must mean that I was never any good.
9:19:38
beach
contrapunctus: What is called "abstract class" in other languages is called "protocol class" in Common Lisp.
9:21:47
beach
contrapunctus: The use of a loop clause such as `when ink collect it' is a direct violation of the rules of page 13 of the LUV slides.
9:22:20
pjb
As for terminology, apart what is in the glossary, I think we can (and should) safely use the usual terminology, even applied to CL.
9:22:29
beach
[of course, I have been told an uncountable number of times that Norvig and Pitman don't know what they are talking about, and that the average newbie knows much better]
9:24:15
pjb
An abstract class, while missing some methods (for the defined protocols that are expected to apply to that class), may often have some concrete methods implemented, to provide generic implementation for all the subclasses. If you take the pain of defining a class in CL, you should have at least one method implemented, and if it's an abstract class, at least one generic function without a method for that class.
9:38:07
beach
contrapunctus: No I mean that the rules of page 13 say that you should not use INK as a Boolean. I suggest you read that page.
9:39:25
beach
But I have been saying this for a very long time, and I guess my pedagogy sucks because I never seem to get the message across.