Firstly, seems like I struck a nerve. Seriously didn't mean to offend.
Everything you said is valid. No doubt. I was just trying to say that it really seems like things tend to become quite complicated. As you said UML is a recognized standard for communicating but it isn't required in every situation. UML is something that has come up with OOP. What about developers not using OOP? Correct me if I'm wrong, but most Linux/open source projects are still done in lower level, non-OO languages, primarily C. Many of these projects are quite huge and the ideas need to get across to many developers. How are they able to do it?
I have not downloaded or worked on any open source projects, even ones based on .NET or Java at places like sourceforge.net, but I wouldn't be surprised if there were no UML diagrams available with the source at these places. I suppose there are tools that will generate these diagrams automatically for you from source. VS .NET 2005 has this capability. I believe there are plug-ins for Eclipse also.
And what about Scripting. I've mentioned over a few posts about its gaining popularity. They are shedding their "toy" status and are being used in larger projects too. A lot of them are OO oriented, but not in the strict sense as in Java and .NET. So again, I wouldn't think UML is very popular in those communities.
I probably threw one too many things in the same boat by including Design Patterns in my dumb rant. I have'nt read the book you mentioned. I should, before saying more. I've primarily referred to this site. It seems to have most, if not all, the major ones listed. As an interesting point, I feel design patterns will be added into languages. For example, the Observer pattern is already a built in component of .NET with Delegates and Events. The next version will include a way to create a "static" class, wherein you can't create an instance of it - i.e. Singleton. If you think about it even getters/setters are in a way design patterns and they are built into .NET languages.
I'm digressing quite a bit, but this is just an example of what I'm talking about. I know I'm taking it out of context... I'm only talking small projects. But can't help but think that the trend is towards more complexity even though things like XP are trying to put up some resistance.
As an aside, dyou understand how open source projects work? How are so many people able to work on a project "unsupervised" as it were? Somehow it's just hard to imagine.
Personally I am very skeptical of Mono being used widely.
I'm assuming this is because of it being tied to .NET. Do you feel Linux guys will always reject it because of the "connection" to MS, even though it might be something useful?