On Feb 8, 8:00 am, Steven Hirsch <snhir...@gmail.com> wrote:
It seems like every major application I install that's written in Java comes
with its own huge discrete JRE. That's almost a tacit admission of the lack
of interoperability. Anyone can write bad code, but there just seems to be a
lot of it written in Java. Probably a lot of good examples out there, but I
just haven't run into much of them <shrug>.
It does tend to feel worse due the "payload size" of the JRE, but
really, most platforms are plagued by this problem. Vendors will
usually take the path of least resistance(tm), and simply bundle
dependencies as a part of their distribution.
A classic problem you do get in the Java world is this one: Vendor
writes app that depends on newer features that are not (yet) a part of
the standard runtime. When a new runtime comes along, the feature is
often folded in, but teams don't typically get the time to rationalise
their codebase against the newer versions, resulting in duplication
and additional complexity.
It's almost universally true in the software industry that 'just
barely good enough' is seen as acceptable, since product lifetimes are
so short. I spend a lot of time trying to convince phb's that the
'technical debt' incurred by taking the shortest path ends up being
paid for over and again for each iteration, and there are real
benefits to be reaped from cleaning it up.