3 ms·
I agree about developing a house style. It is not my Java programming experience that the Java language limits the too-clever-by-half idiocy. If you want to sa
by raganwald 15y ago
I agree about developing a house style. It is not my Java programming experience that the Java language limits the too-clever-by-half idiocy.
If you want to say that the kinds of companies that hire Java developers don’t hire clever idiots, that’s a different discussion. But I’ve seen so many convoluted architectures built out of Java that it feels to me like too-clever-by-half is a constant across all languages, and the very best thing for me is discouraging cleverness, with second best being let people do their clever things in a language that helps them, rather than making them write even more inscrutable clever code just to get away with being clever in Java.
This is my point above, and perhaps it doesn’t match your experience, namely that some clever things will be done, and Java will not prevent them from being done, but merely prevent them from being done simply and cleanly. So why not have this other “pro” do what she is going to do, but do it simply and cleanly thanks to a powerful language, rather than resorting to XML and other shenanigans?
But honestly, I fear we are now having a weird discussion where our working assumption is inheriting code from people we don’t respect. It’s far, far easier to simply work with reasonable, sane people, than to make all your choices predicated on the idea that your colleagues are psychopaths.
It makes for witty sayings, but terrible careers.
- wpietri 15y agoHmmm. I think I still maintain my preference for bad Java over bad Ruby. The AbstractSingletonProxyFactoryBeanImpl insanity is painful, but I feel like most Java problems can be solved with pruning shears. Ruby's metaprogramming, on the other hand, puts COMEFROM-style functionality into the hands of noobs, and its duck typing makes it very hard to answer basic questions about what the hell X is. In Java, I can always tug on something and figure out what it's connected to. But perhaps that's just a matter of my personal debugging style. Broadly, though, I think you're right: it's irrelevant to the real problem. Java is the new COBOL because most large software development organizations are functionally insane. They can't tell good code from bad, and rig things in a way that bad code is almost guaranteed anyhow. So naturally they'd prefer a language in which bad code is merely painful, not fatal. Because that lets them cover up their failings for much longer periods. My personal solution is yours: stop working with other people's shitty code. I'd like to see the problem solved across the industry, but focusing on language choice doesn't seem like it's getting us anywhere.
- raganwald 15y agoApplying hordes of programmers to solving a programming problem always runs into limits governed by Conway’s Law: http://en.wikipedia.org/wiki/Conways_Law http://en.wikipedia.org/wiki/Conways_Law