On 22 Aug 2015 at 23:18, Robert Ramey wrote:
To put things in perspective, I might relate my experience along these lines with the serialization library.
Firstly, thanks for the story. I found it very supportive.
Having said that, I did follow he discussion of Monad and was not convinced it is suitable as a real library. No need to go in details here.
I will say I find monad<T> an enormous time saver. I find myself writing most of my functions since Monad as noexcept, and letting monad<T> convert exception throws into returned monads. That reduces the time to implement exception safety hugely by constraining the paths of execution flow inversion, and has led to a substantial speed up in my development productivity.
I saw a little bit of the discussion and attended Niall's presentation on API Bind. As far as I can tell, this addresses the issue of library API versioning. This is a subject we've never explicitly addressed and is much bigger than one library. To make sense it really has to be considered as more than just an implementation detail of the AFIO library. But for now, the only way forward is to consider it as only an implementation detail of the AFIO library which offers facilities for library version control that other libraries don't offer. I think it was a mistake for Niall to include this - it's going to be tough enough to get AFIO over the bar without carrying any extra conceptual baggage. A typical programmer problem - scope creep - I plead guilty.
I unfortunately suspect you are right. I implemented APIBind to solve a local problem I had and tried proposing it as a bigger solution for wider ills, but few if nobody here was interested. But that's okay. It still lets me switch between STL implementations and API versions very easily, and I make heavy use of that facility in my automated testing. It's a big win for me here locally. I expect to be using APIBind in any new C++ library I write into the future. Niall -- ned Productions Limited Consulting http://www.nedproductions.biz/ http://ie.linkedin.com/in/nialldouglas/