The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.
Everything I develop is centered around OOD/OOP as I use objects for the organizational constructs of my projects.
However, with very rare exception I do not use inheritance due to the many problems that senior software engineering analysts have found with it over the years.
This is not to say that inheritance is a bad concept but that it has to be used sparingly and carefully. Unfortunately, many developers rush into using it thinking that it is the real meaning of OOD.
When I was learning OOD many years ago I actually studied the history of its invention in Sweden (Simula-67). My conclusion was that it was created so that developers could better organize their development endeavors, not for the primary constructs that people promote.
In business applications, in general, there is little actual need for the use of inheritance and polymorphism, though there are applications that certainly could make good use of these attributes. However, here I am speaking generally.
As OOD emerged in popularity within the development community a small book was produced by a computer scientist back in the 1980s. This book went through all of the types of applications that could truly benefit from the use of OOD. None of the applications related to business development as all were from the scientific and internals communities.
In addition, the use of generic modules and the concepts of reuse were completely disproven many years ago simply from the statistical studies that were made against so many such projects.
Generic modules are nearly impossible to create as regular implementations into most applications since such modules must be relatively static in nature (ie: date validation module). The rise of popularity of generically designed modules was a direct result of incompetent technical managers who tried to foresee every possibility for any module developed. The result was terrible frustrations on the part of developers and projects that did not succeed very well if at all.
This was because, in reality, very few modules can be designed to be generic just like not every type of design can be shoe-horned into being an "Expert System" when that too was a craze in the late 1980s and early 1990s.
Object re-use failed as a direct result of organizations not setting up working repositories for re-usable modules that were designed to be used in such a manner (ie: data access layer). The result here, and which was eventually written about in our technical journals was that development teams\developers simply recreated the same modules multiple times for their own projects.
Also, the concept of reuse, when taken to the extreme as it was at NBC when I worked there in the 1980s, very easily gives rise to an environment of boredom as developers are rarely allowed to to experiment with their own creativity.
If new developers are not using OOD in a significant way than it is probably a result of the training they are receiving. However, not everything need hold to OOD through strict orthodoxy. Like everything else, OOD is a tool in our toolboxes and should be used with good understanding and care...
Sr. Software Engineer
Black Falcon Software, Inc.
On my team of 4 programmers, I am the only one who even knows that the four pillars exist. Getting any of them to use a property is near impossible, but reflection is in almost every program. Mind you, there are utility classes for email, sFTP, etc, but the class that uses them is C code consisting of inline functions with everything forced through the same path. Special cases requires switches everywhere they differ from the rigid flow. (carp mode off).
I have 5.5 years of OOP before this job and wish OOP was appreciated. The problem is that just like 'cheapest programmers', management is 'cheapest management' and no longer has the tech savvy to use the proper techniques. It is a self-feeding trend that I do not see changing. If a programmer can write code that stumps his coworkers, he gets a raise.
it baffles me to the point of wanting to cut myself why encapsulation is ignored.
Depending on what you cut with, and where, and how, you cut, it may violate encapsulation.
«... thank the gods that they have made you superior to those events which they have not placed within your own control, rendered you accountable for that only which is within you own control For what, then, have they made you responsible? For that which is alone in your own power—a right use of things as they appear.» Discourses of Epictetus Book I:12
If you have just under 3 hours of spare time this is once of the better renditions of the The Matthew Passion[^].
Not quite as fast as Gardiner's version but well paced enough not to wonder when the next note is coming.
“That which can be asserted without evidence, can be dismissed without evidence.”
Or much? more older but cool stuff like this: Rolling Stones - Honky Tonk Women - YouTube
Can anyone explain me why I can't control my right foot (kick) while ringing the bells (like in this piece of music) with my right Hand?
It does not solve my Problem, but it answers my question
Fun thing, "classical" music can be divided in roughly three era's, baroque, classical and romantic.
Before that music isn't classical, but "early", which means from the renaissance period or the (even earlier) middle ages.
After the romantic period "classical" music somehow becomes "modern"
In the grand scheme of things your Eagles and Stones are like futuristic hypermodern