If Computer Programming Was Like Running A Starbucks: A Glimpse Of SDK, API, Framework, and Library

MaiWay
Team 3i
Published in
5 min readJun 20, 2023

“What is the difference between SDK, API, Framework, and Library?”

I know, I know… Why don’t I just look them up on Google, right? It will give me 100+ lists of websites that provide all the information I need to know but in the language of developers.

I just wanted to clarify these definitions, and these are what I got at the very top of my page when I googled them.

  • An “software development kit (SDK) is a collection of software development tools in one installable package.” [“Software development Kit”, Wikipedia]
  • “API stands for Application Programming Interface. In the context of APIs, the word Application refers to any software with a distinct function.” [“What is an API?”AWS]
  • A “software framework is an abstraction in which software, providing generic functionality, can be selectively changed by additional user-written code, thus providing application-specific software.” [“Software development Kit”, Wikipedia]
  • A “library refers to a collection of files, programs, routines, scripts, or functions that can be referenced in the programming code.” [“Library”, Computer Hope]

You have no idea how many times I have googled, watched Youtube videos, and asked this same damn question to engineers, yet struggled to fathom. This might be a CS 101 level of a thing for software engineers, but it’s not quite easy for non-developers with zero coding experience to tell them apart.

And I found this, what a lifesaver! click here

This Korean blog post touches upon each terminology’s basic concepts and functionalities, providing a great analogy that non-developers can catch on to.

Photo by kevs on Unsplash

The story starts with Mr. Star Kim (imaginary character), an ex-developer who decides to leave the company and opens a cafe. But the problem is, he’s not sure how and where to start as there are so many to concern. One day, he notices the coffee franchise he can outright own. Starbucks! (FYI, you can only open a Starbucks as a licensor in real life.)

After receiving training from Starbucks, he names his Starbucks franchise system as follows: ‘Starbucks SDK’ — A kit that Starbucks provides for Mr. Star Kim to operate and run the franchise smoothly.

*Again, this is fiction.

Starbucks Operations Manual

Given the ‘Starbucks Operation Manual, Mr. Star Kim finally runs the cafe.

If the stock runs out, all he has to do is to fill out the ‘inventory request form’ and submit it to the system, then the head office will deliver the item for him.

Inventory Request API — It is a program that Starbucks SDK provides to allow Mr.Kim to send inventory requests to the headquarter to receive stocks.

Also, Kim must enter the data for recruitment and dismissal of employees in the ‘employee management program’ after hiring or firing them.

Employee Management Program API — It is a program that Starbucks SDK provides to allow Mr.Kim to submit employees’ data for recruitment and dismissal processes.

The qualification requirements and reasons for disqualification are detailed in the manual. If Mr. Kim tries to register ineligible employees, the program shows an incorrect result or does not process.

Can I make smoothies from an Espresso machine?

Photo by tabitha turner on Unsplash

As the business grows, Mr. Kim hires more staff. The new hires are not well-experienced, and he finds out one of the new employees trying to make smoothies using the espresso machine.

Star Kim then explains to the staff that the espresso machine is designed to make coffee, not smoothies. They go over the manual together to make the smoothies and successfully deliver the drink to the customer.

He also explains how to use the espresso machine. It automatically brews espresso, but they have to put coffee beans into the machine and press the button. The machine can also make thinner or thicker espresso shots.

Kim is also not allowed to use espresso machines provided by other than Starbucks. The same rule goes for other franchise cafes.

Espresso Machine Framework — It’s a prepackaged structure (a coffee machine in this case) that allows Mr.Kim and his employees to make espresso shots.

Photo by Andrea Piacquadio from Pexels: https://www.pexels.com/photo/male-employee-cleaning-floor-in-restaurant-3769711/

Now, one of his employees spills coffee all over the floor. He realizes that he hasn’t instructed the employees on what to do in such situations, so he tries to devise instructions.

  1. Employees need to get the wet mop.
  2. Wipe the floor with the mop
  3. Wash the damp mop well
  4. Dry the mop on a drying rack

It’s not a big deal, but making this kind of procedure with details for every task is pretty time-consuming and inefficient. So Mr. Kim asks the guy who also runs a cafe franchise next door. The owner hands him a document with detailed procedures and says it is open source, meaning anyone can use it free.

Floor Cleaning Library — It’s a prewritten floor cleaning instructions; however, the same instruction can be used for ‘table cleaning’ by just changing the object, for instance, from ‘mop’ to ‘tablecloth.’

This story only scratches the surface of the basic ideas of ‘SDK, API, Framework, and Library’, but do you think you can better comprehend these big words now?

Let’s recap real quick:

  • An SDK (software development kit) provides a set of software-building tools, usually containing APIs, so developers can build a custom app.

‘Starbucks SDK’

  • An API (Application Programming Interface) provides a way for two programs or applications to communicate with each other using requests and responses.

Inventory Request API / Employee Management Program API

  • A framework is a prepackaged structure that helps developers with what kind of programs can be built and how they would interrelate.

Espresso Machine Framework

  • A library is a collection of resources or prewritten code that allows developers to optimize tasks and avoid reinventing the wheel, for e.g., Numpy, Matplotlib, TensorFlow, etc.

Floor Cleaning Library

I hope you find this somewhat helpful!

Originally published at https://www.linkedin.com.

--

--