I work for a public sector organisation that has both .NET and Java applications, in addition to more traditional Win32 and PHP web applications.
Being a public sector organisation we have to tender for work and the specification document won't specify the platform to be used for development, just that it has to run on a Windows 2000/2003 server (or something like that).
I agree that the client should have a say, but mixing and matching these systems quickly becomes a nightmare when it gets to getting things to work together (DTS jobs are wonderful for pushing data between systems). Tread carefully when it comes to specifying the platform, even including version numbers:
For example, we have a Java based application that requires v1.4.0 runtime. Its an externally written app that we don't have the source code for and the developers haven't upgraded to work with a newer version of the runtime.
I've recently discovered that if a client has v1.5.0 or later runtime installed then this doesn't work with the old application because of differences in the way certificates are handled.
It may just be my ignorance with regards to Java on how to get around this without uninstalling the 1.5.x runtime but this is causing my colleagues and I a large headache at present.
John