It’s been always a question for me how some (web, desktop) applications are made in couple of programming languages. For example, I hear (or read) that some apps such as firefox, photoshop or even amazon.com (logical codes of course) are written in C++ or that blah-blah app core is C++. To get to the point, I wonder how a programmer(s) can integrate some programming languages or modules written in those to build an application in one piece? What exactly is the idea?
Thanks in advance,
It might make sense to build different parts of an application in different technologies or languages. Some of the reasons might be:
If you are using two different languages that can run in the same runtime environment, the combination can be trivial. For example a .NET application that leverages both a C# and an F# assembly – or a C application with parts assembly code linked in.
However, for large applications today, the most common case is to have software components connected by services or message bus technologies; moving data and events from one component to another. Out-of-process communication can also be as simple as two components sharing a database or a file.