https://medium.com/better-programming/object-oriented-programming-the-trillion-dollar-disaster-92a4b666c7c7
Why it’s time to move on from OOP
Photo by Jungwoo Hong on Unsplash
OOP is considered by many to be the crown jewel of computer science. The ultimate solution to code organization. The end to all our problems. The only true way to write our programs. Bestowed upon us by the one true God of programming himself…
많은 사람들은 OOP를 컴퓨터 과학의 왕관이라고 여깁니다. 코드 구성에 대한 궁극적인 해결책입니다. 모든 문제의 종점입니다. 프로그램을 작성하는 유일한 진정한 방법입니다. 프로그래밍의 유일한 참신한 신에 의해 우리에게 수여되었기 때문입니다...
Until…it’s not, and people start succumbing under the weight of abstractions, and the complex graph of promiscuously shared mutable objects. Precious time and brainpower are being spent thinking about “abstractions” and “design patterns” instead of solving real-world problems.
Many people have criticized Object-Oriented Programming, including very prominent software engineers. Heck, even the inventor of OOP himself is a well-known critic of modern OOP!
The ultimate goal of every software developer should be to write reliable code. Nothing else matters if the code is buggy and unreliable. And what is the best way to write code that is reliable? Simplicity. Simplicity is the opposite of complexity. Therefore our first and foremost responsibility as software developers should be to reduce code complexity.
그러나 그럴 때까지는 그렇지 않다. 사람들은 추상화와 서로 다른 개체를 무분별하게 공유하는 복잡한 그래프에 무너지기 시작한다. "추상화"와 "디자인 패턴"에 대해 생각하는 시간과 두뇌 노력은 실제 세계의 문제를 해결하는 데 아무런 도움이 되지 않는다.
많은 사람들이 객체 지향 프로그래밍, 특히 유명한 소프트웨어 엔지니어들이 비판했다. 심지어 OOP의 발명가 자체도 현대 OOP의 잘 알려진 비평가이다!
모든 소프트웨어 개발자의 궁극적인 목표는 신뢰성 있는 코드를 작성하는 것이어야 한다. 코드가 버그가 많고 신뢰할 수 없으면 아무 의미가 없다. 그렇다면 신뢰성 있는 코드를 작성하는 가장 좋은 방법은 무엇인가? 간단함이다. 간단함은 복잡함의 반대이다. 따라서 우리 소프트웨어 개발자의 첫 번째 책임은 코드 복잡성을 줄이는 것이어야 한다.