I was not implying anything about what Rich have said. While the SPI term 
may be used in the 'enterprise' field too much (and in an unnecessary 
complicated manner), I think it has perfectly valid uses in Clojure. The 
API tells you what a function or a macro does for you, but SPI tells you 
what you have to do in order to integrate with existing functionalities.

BTW I think protocol methods should be in SPI too. (Stuart's components 
library made IMO a bit unfortunate decision to expose 'start' and 'stop' 
protocol methods directly) See 
http://kotka.de/blog/2011/07/Separation_of_concerns.html 
for a related write-up.

Jozef

On Sunday, December 28, 2014 4:18:47 PM UTC+1, adrian...@mail.yu.edu wrote:
>
> You're overlooking the fact that a "service provider interface" is simply 
> enterprise design pattern jargon for a subset of public APIs that expose 
> the underlying interfaces of the library to consumers. Saying that Rich is 
> saying protocols should "never ever" be part of the public API is both 
> misleading and false. 
>
> On Sunday, December 28, 2014 2:50:06 AM UTC-5, Jozef Wagner wrote:
>>
>> Protocols should never ever be part of public API. Protocols can be part 
>> of the SPI, if custom extensions are to be supported. Otherwise they are an 
>> implementation detail. See Rich's talk at 4:30 http://vimeo.com/100518968
>>
>> Jozef
>>
>> On Sun, Dec 28, 2014 at 8:11 AM, Mikera <mike.r.an...@gmail.com> wrote:
>>
>>> That depends if the protocols are part of your user-facing API or not - 
>>> a lot of the time I find that protocols are best hidden as implementation 
>>> details rather than exposed to users.
>>>
>>> In core.matrix, for example, users never see the protocols directly: 
>>> only implementers of new matrix libraries need to care
>>>
>>> On Sunday, 28 December 2014 02:32:44 UTC+8, Ashton Kemerling wrote:
>>>>
>>>> Changing old protocol names should trigger a major revision change in 
>>>> the minimum because it breaks backwards compatibility. 
>>>>
>>>> --Ashton 
>>>>
>>>> Sent from my iPhone 
>>>>
>>>> > On Dec 27, 2014, at 11:18 AM, Michael Klishin <michael....@gmail.com> 
>>>> wrote: 
>>>> > 
>>>> >> On 27 December 2014 at 19:10:38, Jozef Wagner (jozef....@gmail.com) 
>>>> wrote: 
>>>> >> clj-time seems to be naming protocols inconsistently. It uses   
>>>> >> ISomething, Something and SomethingProtocol naming. 
>>>> > 
>>>> > I suspect it is because it has 60 contributors and most users never 
>>>> have to 
>>>> > extend the protocols. 
>>>> > 
>>>> > Feel free to submit a PR that standardises all names on Something. 
>>>> > --   
>>>> > @michaelklishin, github.com/michaelklishin 
>>>> > 
>>>> > -- 
>>>> > You received this message because you are subscribed to the Google 
>>>> > Groups "Clojure" group. 
>>>> > To post to this group, send email to clo...@googlegroups.com 
>>>> > Note that posts from new members are moderated - please be patient 
>>>> with your first post. 
>>>> > To unsubscribe from this group, send email to 
>>>> > clojure+u...@googlegroups.com 
>>>> > For more options, visit this group at 
>>>> > http://groups.google.com/group/clojure?hl=en 
>>>> > --- 
>>>> > You received this message because you are subscribed to the Google 
>>>> Groups "Clojure" group. 
>>>> > To unsubscribe from this group and stop receiving emails from it, 
>>>> send an email to clojure+u...@googlegroups.com. 
>>>> > For more options, visit https://groups.google.com/d/optout. 
>>>>
>>>
>>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to