I've grown through the era of Object Orientation and have a thought about one of those early principles of design and useful practices.
"Object-oriented programming (OOP) offers several significant advantages that enhance the development and maintenance of software. These benefits stem from OOP’s core principles, such as encapsulation, inheritance, and polymorphism, which contribute to more modular, reusable, and manageable code."
(In an explaination of OO - found by Google.)
There's that word - reusable. I've heard this term being used for years... as a desire of the many managers of developers and some times from the developers themselves. Yet in all my practice I find it extremely difficult to remember a time I said... hey there is a piece of code already written, I'll just reuse it - DONE.
Show me a scientific study of software design and reusability where the effort of designing in the reusability of the typical Object payed dividends (ROI). I would wager there are studies like this in the halls of some university's college of Computer Science. I wonder what the excepted wisdom is on the ROI of reusability. And yes I would exclude the purpose build general library (standard C Lib need not apply).
Now we just entered a new era of software design. The rules have changed, but they have not be written or codified. Your computer science proffessor has a renewed purpose.
I believe it is obvious that with an LLM trained Bot codeing faster than I can analyze the problem - we have a new rule for software design. Reuse is a waste of time - unless you are purposfully creating a (there should be a descriptive term for this) library.
My first coding Bot crush: Alex ( the Xcode AI coding assistant)
Here is a nice modern view of Swift Arch and reusability: Structure Views for Reusability and Clarity by avanderlee.com