Comments by "Traveller" (@traveller23e) on "Reacting to Controversial Opinions of Software Engineers" video.
-
@voidvector Ironic you mention Java, since it still doesn't have generics working properly in a lot of the more basic classes (methods just return object and stuff, so you lose the type checking). Also, in Java and C# things like lambda expressions keep things from being pure OOP. However, I would posit that that is not a bad thing; pure-OOP is 1) a concept revered by programming philosophers, without much intrinsic merit to the programmer, and 2) a concept people claim to try for yet don't really seem able to consider in concrete terms, sort of like Clean Code or Agile. (Note to clean coders: it's not that I dislike the concept, just it doesn't have any amount of objective measurability and can when unchecked lead to voodoo programming.) One thing I think would be interesting to see would be a language with fully-fledged support for multiple paradigms but with compiler directives forcing you to explicitly label sections as hybrid OOP/procedural or functional or whatever. It would be interesting to see how people react with having to make an explicit decision like that.
Actually, I'd propose adding this feature to Powershell, as it could only make it better.
4
-
1
-
1
-
OOP languages tend to be good, but if someone tells you to stick to strict OOP principles ignore them. Like any other tool in programming, use it when it makes sense. If your code would be better with a lambda expression somewhere or whatever, do that. The strict OOP cops will tell you not to use inheritance ("antipattern") or static methods, for an example of how over-the-top some of the stuff gets.
My controversial opinion would be that it's best to just stop worrying about it and just write code that's readable, low-effort, uses the best tool for the job, and (if applicable) efficient. If the best way forward involves a goto, then fuck it and stick a goto in there. Just double check it was the best way first, and choose a more laid-back coworker to do the peer review.
Also, side note: given the choice of C# and Java, go with C#. It's virtually the same, except generics aren't broken in all the core methods ;)
1