H
H
Hitriy_Zhuk2017-12-01 11:29:28
Python
Hitriy_Zhuk, 2017-12-01 11:29:28

How to choose an application architecture, taking into account the need to use several programming languages?

It is required to create an application so that it can be used in several languages ​​​​when it is extended (C / C ++, Common Lisp, Prolog, Python, and possibly, but not necessarily java), that is, as a single environment.
Well, yes, something like Microsoft's MSIL, approximately.
It is possible, and this is probably correct, to organize all interaction through C.
But then it is not clear what is right, everything is clear from C to C, and while it contains Lisp or, say, Python, too. But if I want to say call a Lisp code from Python (or vice versa) when they are both in the application? Raise servers on localhost, add functionality to C, or what?
Please give advice or tell me what you can read about this.

Answer the question

In order to leave comments, you need to log in

5 answer(s)
L
longclaps, 2017-12-01
@longclaps

Read the parable of the Tower of Babel.

I
Ivan Koryukov, 2017-12-01
@MadridianFox

You didn't say what app. If this is a server, then do microservices on whatever you want. If a more or less loaded desktop application, then look for ways to call code in each language from, say, C / C ++. If the desktop application is not very demanding on performance, then it is possible to transfer data through stdout or sockets between several applications in different languages ​​(as is done in AI Russian Cup).

B
bullock, 2017-12-05
@bullock

You can write in many languages, and use something like nsq or Redis to communicate between components , and here is an RPC implementation for redis.

M
Mikhail Potanin, 2017-12-18
@potan

The most correct way of interaction in this case is microservices exchanging messages. You need to find the right message broker, supported by the right languages, and build the infrastructure around it. The classic solution is RabbitMQ, but it may be more convenient to take MQTT or something that is already at hand (there seems to be some in .net).

V
Victor P., 2018-06-06
@Jeer

Look towards SOA - Service Oriented Architecture. Based on wcf. The service (in any language) has an interface, contracts (xml) are generated on its basis, which are connected to other languages ​​and calls to methods of third-party services are obtained.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question