I find Windows Communication Foundation to be really great (and only getting better in 4.5 with integrated compression among others) for all kinds of communication needs and I truly enjoy programming in .NET.
Yet I really wonder how programmers in other languages deal with all their communication needs. Is there any other comparably comprehensive solution like WCF?
(I know Mono has parts of WCF, this question is about truly different approaches, platforms and OSes.)
RemObjects SDK is a commercial component provided by RemObjects Software that provides WCF-like functionality between a whole range of platforms, protocols and languages. While perhaps not as complete as WCF, RemObjects has been around a long time (since 2002) and it does provide a lot of features:
Platforms supported: .NET (since version 1.1 and including Mono), Delphi (version 7 and later, also including FreePascal on Linux), XCode (Objective-C and Cocoa), Silverlight, Javascript and Java (still in development I think)
Some things are easier than WCF, some things are harder, (and I only have experience of the .NET and Delphi platforms) but the approach is generally as follows:
You use a GUI tool called the Service Builder (which is usually available as an IDE plugin) to define your services, parameters and structs and this generates an XML file called the RODL meta data file (similar to WSDL), from which interface and implementation files are generated for any or all of the supported platforms. An async version of each call is also generated.
You drop components onto a form to configure the channels and the message formats you wish to use and configure everything via these. Many different channel components exist, e.g., HTTP, HTTPS, something called SuperHTTP which is bi-directional, TCP, SuperTCP, named pipes, UDP and broadcast channels, email, etc. You can also choose between many different message formats SOAP, JSON, XML-RPC, a fast proprietary binary format, etc.
Other WCF-like features include: ZeroConf which is similar to WCF server discovery; Smart Services allow you to easily publish the same service using multiple protocols simultaneously; it is extensible via events which can provide additional logging, security, etc. (similar to WCF IServiceBehaviors).