I think that's where Scala shines. I don't know if you have tried it, but it solves a bunch of the problem you enumerate with Java & C.
Sure, it can be hard to read because you can write the same thing in tens of different ways and some people abuse it, but if you don't and your team does not, you end up with a beautiful code base.