3 ms·
If everything is public, you don't make a difference between an interface and implementation. Meaning, your framework users can depend on any implementation de
by The_Colonel 4y ago
If everything is public, you don't make a difference between an interface and implementation.
Meaning, your framework users can depend on any implementation detail and if you change that detail, the framework will break for these users. They will be disappointed since they didn't know they were doing something wrong (all is public and thus available to use).
- sandGorgon 4y agothats a good reason, however a lot of code doesnt need to do these kind of contracts. They are perfectly ok being more accessible to developers than enforce a lot of correctness. Which is where a lot of the JS/Ruby/Python frameworks operate. You're not wrong - my point is that a lot of places, it is not necessary.
- The_Colonel 4y ago> it is not necessary For the price of increased breakage rate. And then people still wonder why many big projects keep choosing Java instead of Ruby.