Follow-up to comp.lang.lisp. Even though it doesn't even belong to
comp.lang.lisp, let's at least free other groups from this topic. Or
provide me with better judgement.
Post by Lawrence D'OliveiroPost by Antonio MarquesPost by Lawrence D'OliveiroPost by HenHannathe acronym (?) REPL must be new in Lisp (and Scheme)
i'm sure i never saw it (used or mentioned) 25 years ago.
There are many new terms coined for old concepts. Like “capture” for
“lexical binding”, or “dependency injection” for “callback”.
I can more or less see how callbacks can be used as a kind of dependency
injection, but those are separate concepts.
“Dependency injection” is just packaging up a bunch of callbacks as
methods in a class.
Why would you say ``packaging up''? Can we look at Wikipedia? (I'd
appreciate a good reference. I don't know exactly where to look.)
--8<-------------------------------------------------------->8---
[...] dependency injection is a programming technique in which an
object or function receives other objects or functions that it
requires, as opposed to creating them internally. Dependency injection
aims to separate the concerns of constructing objects and using them,
leading to loosely coupled programs.[1][2][3] The pattern ensures that
an object or function that wants to use a given service should not
have to know how to construct those services. Instead, the receiving
'client' (object or function) is provided with its dependencies by
external code (an 'injector'), which it is not aware of. --Wikipedia
--8<-------------------------------------------------------->8---
So I see why you're saying ``callback'' because the object or function
will call your procedures to get what it needs (instead of creating them
internally). But why would say ``packaging up''? (Couldn't I
``inject'' the ``dependencies'' by passing them all as arguments.)
I suppose ``packaging up'' would be appropriate if we pass in to a
procedure an object containing all the callbacks that you say.
Anyway, my interpretation of the Wikipedia article is merely
abstraction. Nothing but abstraction. I don't see why we need to call
it ``injection'' or even ``dependency'', even though the choice of words
isn't absurd.
(*) The source
Dependency injection
https://en.wikipedia.org/wiki/Dependency_injection