I'm tasked, among other things, with writing a C++ component that makes CORBA calls (no alternative, because that's the requirement). Sounds about as much fun as wrestling a guy wearing a suit made of sandpaper, doesn't it?
Poring over the documentation for the Corba ORB I've chosen to use made me think of the merits of simplicity, and why easier to program always trumps more complicated.
When I've broached this topic in the past, some have argued that the comparative complexity of the UNIX programming domain leads to more knowledgeable programmers. Perhaps. Maybe the Chinese are inherently smarter because they have to navigate a more complicated written language. Maybe artists who have to make their own paint are more knowledgeable artists. Those who use the stairs at the Sears tower are certainly fitter than those who take the elevator.
The comparison, though, only makes sense if there is sufficient benefit derived from expending effort on work unrelated to the core task.
In software, I doubt if the benefits resulting from such efforts outweighs the distraction from a business problem. I could a) spend lots of time setting up my environment, navigating the complexities of an arcane configuration system and/or learning the intricacies of some overly-complicated (but flexible) tool for which I discover a need in the course of development, or b) spend most of my time concentrating on the core business task, and finding it easy to use new tools because they were designed that way in the first place.
To be fair, CORBA isn't any more complicated than COM/DCOM. However, there are hundreds of tools designed to make COM easy in C++ (many of which plug in to the Windows standard development environment, Visual Studio), and few that exist for CORBA.
Many moons ago, when I assisted a company with their video encoding products, I got into an email debate with those who worried that making DirectShow filters would tie their product too closely to the Windows platform. Ignoring for the moment that all the DirectShow filter would do is wrap their cross-platform encoding library (something I pointed out), it's a simple fact that their product would be used more often if it was easy to use. Given that DirectShow is the media handling API for Windows, their products would be playable within all DirectShow-compatible products (including MediaPlayer).
The same applies in programming technology. Just as people are more likely to take an elevator to get to the top of the Sears Tower, people are more likely to use complicated technology if someone has bothered to make it easy.