4 ms·
OOP doesn't work for the author, while I wouldn't be a developer without OOP. Does not make them wrong, or me right. Where the author fails is in recognizing t
by meesterdude 5y ago
OOP doesn't work for the author, while I wouldn't be a developer without OOP. Does not make them wrong, or me right.
Where the author fails is in recognizing these different approaches can coexist in the field of software engineering; there is no ONE way to build software, and no way is without it's tradeoffs.
OOP is how I think. There is no reasoned argument one could make to undo that. No amount of rightness will change my nature, which leaves this as a boastful display of ones ego and not any meaningful movement in computer science or engineering.
Instead: I would love for the author, if they truly know better, to take those specific situations they highlighted and detail ways those could be improved or done differently. Because they are hard problems, and it would be meaningful & educational to explore refactors to improve.
- didibus 5y agoQuestion to you, did you learn programming through OOP? Cause when you say "OOP is how I think. There is no reasoned argument one could make to undo that", it isn't clear what is the chicken and what is the egg. Do you think naturally in a way where OOP is compatible with your thinking process, or did you learn to think that way?
- danaris 5y agoCan't speak for meesterdude, but... I learned programming first with BASIC, then with C, without any object-oriented trappings. One of my earlier computer science classes was a survey of programming languages of various types, including procedural languages, functional languages and Smalltalk, the grandaddy of object-oriented languages. Programming has always felt most natural to me in an object-oriented paradigm. My brain categorizes things in the world into object hierarchies very intuitively. While I have no scientific evidence that this is the case, I suspect that it is one of the programming modalities that our brains are best-adapted to naturally—or at least, are likely to be, as everyone's brain is different.
- menotyou 5y agoI agree to your point in a way. But for me it is just the opposite, OOP is as counter-intuitive as it can be. My mental model of the world is not categorizing things in the world into object hierarchies. And I always found it absurdly complicated to model anything hierarchies and objects which have attributes and methods. For me OOP code is just obfuscated way of getting things done. So my take on the OOP debate is that is depended on how you brain works whether you'd consider OOP as being awesome or awful. I for myself hate OOP. I find non OOP Program always more easy to understand, having a better organized code base, and are more easy to handle complex requirements because you can modularize you functions more easily, and by far less boilerplate code.
- danaris 5y agoOut of curiosity, is there a particular programming style that does fit more naturally in your brain?
- menotyou 5y agoEven after having a Master's in CS, I never pursued a career in software development but worked as a business consultant in ERP (SAP) implementation. So maybe I am not qualified for an opinion. Before that I programmed a lot in Assembler, and later C, learned and programmed Prolog and LISP, later for side projects I used PHP, Perl or Bash. I occasionally program ABAP for my work. I really enjoyd LISP. I liked C for it's roughness. In many ways I believe ABAP is one of the most misunderstood und underestimated language in this list. SAP, which uses ABAP as codebase, is a integrated software system based on >500k database tables, has >5.5 M programs and about 100k "Apps", all within the same system and available on your fingertips. You have dozens of programs working in parallel on the codebase. In ABAP you have header files, no manifests, no dependencies, no git, no malloc, no gc, no lambdas, no promises, on monads, no clojures and until recently no pointers. Never missed anything of it. The type definitions are stored on the database. You temporal sturctures tables instead of arrays. SQL statements are natively embedded in the language. It supports native rollback an commit functions. The debugger is a dream. You can understand programming in the most simple way: Processing of data. Development times are short due to the simplicity of the concept. But the main point is: In spite of it enormous size the system is simple and easily maintainable. Even I as not being a professional programmer have no issue to understand some 30 year old programming code without documentation. ABAP is procedural.