"Scritto in"!="Può comunicare con"
I know how, for example, to communicate between two java programs if I needed to. If I had two programs on two different machines, I could use sockets and streams. But what if those programs were written in different languages? You could conceivably use files, but are there any other ways of communicating?
Utilizzerai le stesse tecniche se i due programmi sono scritti nella stessa lingua o in lingue diverse.
Il linguaggio che un sistema può comunicare con non ha niente a che fare con il linguaggio che è scritto . Il tuo browser Chrome, ad esempio, è scritto in c ++, ma la lingua che "parla" è HTTP. Il server Web, purché conforme alle specifiche HTTP, può essere scritto in qualsiasi lingua e funzionerà comunque. E ci sono molte lingue con librerie che consentono loro di comunicare via HTTP.
Lo stesso vale per altri protocolli di comunicazione, inclusi EDI, ODBC, SMTP, tu lo chiami. Se dovessi prendere Wireshare e guardare ciò che viene inviato attraverso la rete, non vedrai alcun codice Java o C ++. La lingua in cui è scritto il programma è totalmente irrilevante.
In effetti, se disponevi di un protocollo che superava c ++ o Java sul filo, ci sarebbero due enormi problemi:
(1) Sarebbe incredibilmente difficile da gestire, perché la maggior parte dei programmi, in fase di esecuzione, non capiscono nemmeno la lingua in cui sono scritti; il compilatore può leggere quella lingua, ma emette sia il linguaggio macchina o una sorta di linguaggio intermedio (bytecode per Java o IL per C #, ad esempio). È spesso il caso che il tempo di esecuzione non capisca affatto il codice sorgente.
(2) Ci sarebbe una grande esposizione alla sicurezza, dal momento che tutto ciò che viene inviato su tale protocollo sarebbe ampiamente aperto a un'iniezione attacco .