I've noticed two trends that seem to be accelerating in the Java (and C# - generally speaking, the C language family) world:
- An increase in the number of configuration files - typically XML - that things have
- An increase in the amount of code generation - both the amount being done, and the amount being advocated.
Apparently, code is so incredibly hard to produce in the C world, that it's simpler to create a huge morass of configuration files - and generate a ton of code. Somehow, I have a hard time thinking of this as progress. Here's a comment on this trend by Charles Miller:
One example of this is JBoss, and its mass of thinly documented XML configuration files. Of course the developers know exactly how they work. They know where to find everything so they don't find the complexity annoying4. Find that a problem? It's Open Source and you can fix it yourself. However, by the time you know enough about a product to fix a problem like this yourself, you know enough not to be experiencing the problem any more. Hence it falls down the back of your priority list. Catch-22.