Architecture is language agnostic. There is so much to learn both from Java and C# environments.
"Nothing but Java? by Daniel H Steinberg -- Since before java.net launched in June (before it was called java.net) we had this notion that the content would not need to be restricted to Java-centric topics but should be of interest to Java developers. There may be Perl or Python related content that might interest you."
The above web log prompted me to crystalize an idea that is at the back of my mind for a while. Most of my articles at O'Reilly some written for c# and some written for java, deal with architecture. Most of them are equally applicable for both languages.
For example the following series of articles I have started at O'Reilly's OnDotnet, are a reimplementation of Aspire'e architecture in .net.
".NET Application Services Part 2: A Unified Factory service by Satya Komatineni -- In part 2 of this series, we look at how the factory service builds on the simple config service to increase the flexibility of your .NET applications."
This brings out another important point. When you have declarative programming implemented in one language it is very easy to implement an interpretation of those declarations in another language. At this level you have really accomplished reuse at it's best: Executable and Reusable Architectures.
For instance when web applications are developed in Aspire for relational databases, although Aspire is implemented in Java, there is no sign of Java in the implementation of the application. This means the entire middleware is declarative and pass through. This pass through is acomplished through reusable java parts that implement either part pipelines or use SQL directly. Now in this optimized case the entire application can be run under .Net by simply reimplementing the engine.
Same thing should be true for such things as "ant" scripts. Because they are declarative, the reuse can be accomplished at the highest level
One benefit of these technologies, Java and C#, looking at each other (hopefully they are), is that as programmers we get to see solutions that are increasingly easier and sophisticated as the competetion is better and ideas are more diverse. The fact that "asp.net" is so successful on the .net side should push Java Server Faces to the forefront as the success of asp.net should indirectly prove the feasibility of JSF to the java community in general.