Pragmatic Objects
An explanation of Object Oriented concepts under a pragmatic lens to make proper Object Oriented Design accessible and usable in your day-to-day programming life.
This book contains a collection of articles aiming at explaining my vision of object-oriented programming, in a pragmatic way.
Most of our industry develops using so-called "object-oriented languages". Dominating the scene are JavaScript, Java, C#, Python, PHP & Ruby, all incorporating some flavor of object orientation. However, using classes doesn't mean the program will be object-oriented. To be clear, using an OO language doesn't guarantee the program will feature object thinking.
Is it a problem ? I don't know, maybe it is.
But the biggest problem is that : most people using these languages believe they're doing object-oriented programming, while most of them are actually doing a somewhat flavored variant of procedural programming.
Which leads to the second biggest problem : most content involving OOP focuses on the tools and techniques, which are already heavily covered in the tech literature, and tell nothing about the spirit of OO.
Thus, anyone looking to get better at object-oriented programming will only be flooded by the implementation techniques (inheritance, polymorphism...) and the patterns, exit the motivations and reasons that first led to these techniques.
Now, I don't want to blame anyone or argue against procedural programming, it's a very fine way to develop programs. But most of those thinking they're doing OO are missing out.
They have no idea how bad they're missing out and how far away they are from taking full benefits of OO.
That's the motivation for my effort in writing this book : to provide guidance, ideas, tools and principles toward a more object-oriented programming style.
But why "pragmatic" ? Would it be saying that object-orientation isn't pragmatic ?
Not exactly. The first developers of Simula were very pragmatic. The thinkers behind Smalltalk were very pragmatic. Heck, even the authors of The Pragmatic Programmer were heavy on object-orientation !
But the integral concept of OO may be very difficult to achieve. If you're familiar with Object Thinking or Elegant Objects, you may have some idea of what I'm talking about. Reaching purity in OO in the modern world asks for a lot of effort. Would it be rewarding to follow that path ? Maybe. I don't know. But I don't want to scare people away from OO, an already quite obscure concept, and I would like to ease the transition from absence of OO to better OO.
I firmly believe that better OO would already be a huge progress. First, for the OO world that has been begging to be recognized and contrasted away from procedural. Second, for all the goodies it will bring to developers around the world in their battle against rising complexity and technical debt.
Hence, Pragmatic Objects. Not too pure, not too simple, just what you need for a first step, applicable at the get go.
Last updated