The other day we were talking to one of the QA guys about the Perl API that I am working on for our product at NetCon, and there was clearly some confusion distinguishing the Perl API (client side) and the Rails API (server side) until the QA guy saw the parallel between our our Perl API and VMWare's SDK. I try to come up with meaningful names, but I clearly do not see all potential pitfalls, because I had for this entire time understood quite clearly the difference. Bee Man today suggested that we we follow VMWare's example (any many other companies) and call it an SDK instead, and internally this is exactly what we are going to do, the Product Management (PM) guy we were working with on the Perl API project was hesitant to do anything quite so radical for customer facing interfaces, but as my Plan For World Domination proceeds, I expect to get my way eventually.
When I was still deciding between API and SDK I went looking for opinions on my IM buddy list (from people I know, but not from work) and wound up asking Dima who said he preferred SDK:
“Call it SDK :)
more substantial
will make [your users] feel more empowered :)”
To which I responded “mostly I think that people around here hate our customers so that would be a new experience for them.”
About the only thing I DO NOT want to call it is PAPI which is the name that most people use. What happens when we also have a PHP and Python APIs?
Today we also had our monthly engineering meeting in which Bee Man mentioned the work that I had done on the Perl SDK (nee API). It felt really good because what he was saying was quite complimentary. I am really enjoying the stuff that I am working on now because I have carved out a niche where I have total control. Eventually other developers are going to start working on the code in my domain, but by the time that happens the code base will be established and I will have veto on any checkins. It's so different from the stuff that I was working on before which had all the design finesse of a junior level computer science student's school project.