Does anybody have any good analogies for explaining the difference between frontend and backend?

I have been thinking about a possible keyboard analogy since a keyboard is very well understood these days. This only really works for membrane keyboards, but that's fine.

We can all guess where this is going. If you remove the keycaps from a membrane keyboard, you pretty much cannot use it unless you poke into the membrane with something else. So the keycaps are the frontend. They are generally labeled so you know what they do, they are organized into some form of layout which can vary even on a country-by-country basis, they may have pretty colors and they make it easier to interface with the backend. The backend is the rest and the users don't really have to know how it works, its just supposed to work.

For mechanicals, obviously, the removal of the keycaps means it becomes a shitty frontend that is not easy to use, but does have great potential.

  • 8
    The frontend is the waiter and the backend is the cook. The menu is the UI.

    User selects meal from the menu presented by the waiter. The waiter then tells the cook which meal has to be made. The cook creates the meal and the waiter takes it and presents it to the user. The user normally doesn't interact directly with the cook.

    In general, the frontend is a translating proxy between the user and the backend.
    The latter contains the business logic and maintains the persistent state of the system,
    while the former ideally doesn't own any long-lived state but contains all the presentation logic and provides the UI.
  • 0
    An analogy would only serve to obscure a simple concept. Backend is dealing with storage and data, especially databases. Frontend is presenting HTML, nowadays mostly with an interpreted language to generate it.

    Trying to analogize this is just mystifying it.
  • 0
    The meal analogy is excellent, although I would use it for someone just starting out with programming, or CS or what have you. For O'l plumber Joe, I would move the waiter into the backend and simply say the food is the frontend and you would consume it with a tool. be it your hand or a door knob. If they ask about frontend (which is they have), I would not start throwing in UX and UI and all this stuff, frontend would simply be the UI and nothing more.

    Also, the meal analogy does have one minor issue. What if, in the late 1950's, there is an nosy old hag complaining directly to the chef about a hair in her soup and the chef comes out and presents his immaculate bald dome? and also his shaved arms and beard, and lack of eyebrows. He is basically faultless.
  • 1
    @sweetnothings Oh I gotcha, then its all good. I will try out a slightly simplified meal analogy on plumber joe's.
  • 0
    go with a car analogy, how all the machinery that actually makes it run is filthy and oily and noisy, but it's all hidden under the cover of the interior and exterior plates of the vehicle.
Add Comment