However, my learning until recently was concentrated solely on the languages' control structures and syntax, with my writing focused on devising algorithms to solve problems like the ones found on ProjectEuler (just an example). I was feeling pleased with how well I understood the languages' structure, as well as the logic and thinking required to solve complex problems…
Until a month ago when I started getting into the concept of OOP (on C# to be specific)… And I've gotta say, the implementation is very unelegant and messy in my eyes. I understand the need for orderliness in programming, and to cover any point of potential failure.. However, it seems to me that the way classes and interfaces are supposed to be written and interact with each other is overburdened with tiny and complicated technicalities, which make it look like the whole affair was thought up by some bloke with an extreme case of OCD…
Often times I ask myself "Why wasn't this done in some other way?" or "What is the purpose of adding this annoying little piece of code, except that the manual says so?", etc.
When I talk to fellow students of the language about this matter, I get responses like "It's just made that way. Deal with it." or some pseudo-intellectual response about how this is needed for that, etc. that really sounds like the person just pulled it out of his ass and isn't satisfactory at all.
So, am I insane/lazy, or is this a topic that has been brought up before? Surely I can't be the only one to think that the whole OOP deal (in C# at least) is overcomplicated.
And, as a side question, are there any professionally-viable languages whose OOP structure is more stripped down and elegant than that of C#?
P.S. pardon my questioning of principles with a decades-long tradition. It's just that I'm a guy who is always curious to question the imposed order and find better ways to do things.
by ablaaa via /r/csharp