Stiamo discutendo la proposta di suddividere un grande programma C ++ in più eseguibili separati che comunicherebbero usando la memoria condivisa. Le strutture dati condivise sono grandi, quindi non vogliamo usare la rete loopback o qualsiasi altro approccio che le copierebbe.
Gli argomenti per la suddivisione sono che ogni parte può essere sviluppata separatamente, potenzialmente sostituendola con l'implementazione alternativa, anche in un'altra lingua. Eviterebbe naturalmente l'accesso a dati e codice privati e i processi verrebbero ovviamente eseguiti in thread separati.
Gli argomenti contro sarebbero che C ++ ha built-in mezzi per strutturare anche un progetto ampio e complesso, nascondendo i dati e le funzioni come progettato. È possibile utilizzare il multithreading C ++ per utilizzare tutti i core della CPU. In questo caso i dati possono essere passati per riferimento da un modulo all'altro senza trucchi.
Esiste una visione ampiamente accettata sulla divisione di un programma C ++ in più binari eseguiti in parallelo sullo stesso host? I programmi più conosciuti funzionano in questo modo?
I suggerimenti da implementare in un'altra lingua non rientrano nell'ambito di questa domanda.