The old way
As a Drupal developer, you've almost certainly used the "hook" functionality it provides to allow your custom modules to modify all manner of things in Drupal core or contrib modules. Hooks are a way for Drupal to essentially say, "Hey, does anybody want to make changes to this thing I'm about to do?" It's been a powerful foundational feature that has facilitated countless customizations by us developers.
For most of Drupal's life, your hook code was a bunch of global functions placed in a module's .module file. Every hook function has to be globally unique across the entire application, so we named them with a prefix to fake a namespace. There's no protected helper for the bits that two hooks share — those become more global functions, or they get duplicated. There's no constructor, so any service you need is grabbed via \Drupal::service('whatever') mid-function. It's the kind of code that makes me remember (not so fondly) the COBOL days at the start of my career (don't even ask).
Hey Drupal developer - the 1990s called, and they want their coding style back! That's how I felt when I started learning how to write hook handlers in Drupal 7.