I had a serious epiphany with OOP, when i was first learning it, where i realized that the real power of object oriented programming is the ability to build your own language dialect. No longer are you forced to use abstract constructs to make up your application. When i start a project, i throw down the idea as physically relatable as possible on paper, and the next step is to do the same in stub classes in the project. This translates to boxes and arrows first, and then classes with names like Image and UserInputField. There is obviously already a Bitmap class and a TextField with an input type, but when i work, to keep myself in check and not lose track of the process, it helps me mentally to think of a specific input-field type rather than an input-field variant of another type. Long story short, this boils down to taking the tools i have available and labeling them for what use i have intended, both practically and mentally.
This ability to “bend the dictionary” is the #1 reason i am in love with programming, and probably why i can stomach doing it for a living at all. Design patterns are Good Things, but overuse and attitudes bordering on religion take this flexibility and bashes it with rocks until you’re back to square one; Speaking another people’s language.
Recent comments