Workshop: Paradigms Lost, Paradigms Regained




9:00am - 4:00pm

Key takeaways

Programming paradigms: there can be more than one

Paradigms are not mutually exclusive and overlap strongly with one another

Within a single paradigm there can be surprising variation

Other factors in a programming language can interfere with or reinforce the paradigms it supports

Programming paradigms represent both stylistic and pattern-like choices that can also be architectural


Some knowledge of modern programming languages, with experience in at least OO programming

It is very easy to get stuck in one way of doing things. This is as true of programming as it is of life. Although a programming paradigm represents a set of stylistic choices, it is much more than this: a programming also represents a way of thinking. Having only way to think about problems is too limiting. A programming paradigm represents a set of patterns of problem framing and solving and contains the ingredients of software architecture. As Émile Auguste Chartier noted, there is nothing more dangerous than an idea when you have only one idea.

Perhaps even more problematic than being stuck with a narrow view of paradigms, is being stuck with a dysfunctional view of each paradigm. For instance, many developers working in languages and frameworks that support object orientation lack a strong idea of the principles of interaction, data abstraction and granularity that support an effective view of OO, and instead surround themselves with manager objects, singletons and DTOs.

During the day we will explore the strengths and weaknesses of different programming styles, patterns, paradigms, languages, etc., with examples and opportunity for discussion.

Speaker: Kevlin Henney

Editor of "97 Things Every Programmer Should Know "

Kevlin is an independent consultant and trainer based in the UK. His development interests are in patterns, programming, practice and process. He has been a columnist for various magazines and web sites, including Better Software, The Register, Java Report and the C/C++ Users Journal. Kevlin is co-author of A Pattern Language for Distributed Computing and On Patterns and Pattern Languages, two volumes in the Pattern-Oriented Software Architecture series. He is also editor of 97 Things Every Programmer Should Know.

Find Kevlin Henney at

Other Workshops: