4 ms·
> What people like to blame Java for… … perhaps came later, with embellishment 2004 https://martinfowler.com/articles/injection.html https://martinfowler.com/
by igouy 5y ago
> What people like to blame Java for…
… perhaps came later, with embellishment
2004 https://martinfowler.com/articles/injection.html https://martinfowler.com/articles/injection.html
- pjmlp 5y agoCORBA, SOM, COM, DCOM/MTS+ came before Fowler's stuff, and DI was already a thing in such frameworks.
- eternalban 5y agoWhat do all these things have in common? They are all 'component oriented' architectures and DI is required for systemic treatment of [3rd party] components. (Btw add J2EE to your list.) DI allows a generic runtime to instantiate and compose component graphs [via declarative initialization contexts]. The idea was we'd have reusable components. Somewhere along the line came Spring ("J2EE is too complex" lol) and before you knew it, any old application was using DI and now (per a scan of comments in this thread) everyone is quite confused what is the purpose of "passing variables to your functions" in this obscure manner.
- pjmlp 5y agoJ2EE started as a Objective-C framework and was ported to Java as Sun ramped down their OpenSTEP efforts. > NEO was re-positioned as a Java system with the introduction of the "Joe" framework,[2] but it saw little use. Components of NEO and Joe were eventually subsumed into Enterprise JavaBeans https://en.m.wikipedia.org/wiki/Distributed_Objects_Everywhere https://en.m.wikipedia.org/wiki/Distributed_Objects_Everywhe... And we did just the same with objects factories and directories on the listed technologies.
- eternalban 5y agoThanks, didn't know this bit of history.
- igouy 5y agoPost hoc ergo propter hoc ? Perhaps "What people like to blame Java for…" is how it was required to be done in Java.
- pjmlp 5y agoFeeling superior quoting Latin? Perhaps Java became a victim of enterprise culture, just like nowadays everyone is doing system level DI with Kubernetes orchestrations and WebAPI?