Common software design patterns implemented in various programming languages