For the first time in several years I find myself working in Java again[1]. It occurs to me though that it probably isn’t anything about Java itself that rubs me so wrong, it’s the community or ecosystem if you will. The conventions, common practice, standards, frameworks, etc.
Case in point, embedding third-party libraries. In the sane world, embedding code from another project into your own is considered Bad. The duplication is not only wasteful, but it creates all kinds of problems for developers, admins and users alike. But in the world of Java, dropping a jar file downloaded from a website into the source tree of your project is the status quo. No one bats an eye, and if you call them on it you get anything from shrugged shoulders, to complete bewilderment. It’s not a problem so get off it already. These same people would likely tell you that code duplication within a project is wrong, and proceed to rattle off the all reasons, despite the fact that embedding third-party jars shares all of the same drawbacks.
How does this happen I wonder? How is that there is such disconnect between the way developers think? Can you imagine the author of a GNOME application embedding copies of all the X, GNOME, GLIB, and GTK+ libraries? Can you imagine how quickly everyone would rally to setup an intervention?
I realize this probably comes off a little rantish, and truth be told I am colored by some recent frustrations, but mostly I am just curious.
[1] To those I made prior arrangements with, the time is now, don’t let me down.