Ora sto imparando C++ e ho sentito parlare molto dei linguaggi di scripting incorporati. L'ho immaginato completamente diverso.Perché dovrei incorporare un linguaggio di scripting?
Ho pensato di scrivere tutte le mie funzioni pesanti in C++ e richiamarle da un linguaggio di scripting come Lua o Python.
Ma sembra che sia il contrario. -> Scrivi le funzioni in Lua/Python e chiamale in codice C.
Qual è il vantaggio di incorporare una lingua in C++ anziché scrivere un'API in C++ e chiamare tali funzioni in un'altra lingua?
Esempio:
// function in c++
int expensiveFunction(){
return 1;
}
Poi in Python che chiamerei questa funzione e avrei la performance da C++, ma può apportare modifiche a runtime grazie a interprete runtime di Python.
Un altro motivo è che è possibile consentire agli utenti di scrivere i propri script per estendere il programma. Questo è ciò che fa Unix. –
In che contesto stai parlando? Nei videogiochi, il motore è "chiuso" in C++, ma spesso le cose sono controllate attraverso linguaggi di scripting per consentire modifiche. Lo stesso per qualcosa come un server, o qualsiasi software in cui si vorrebbe mantenere il core chiuso, ma consentire estensioni create dall'utente. Ma l'inverso sarebbe vero, ad esempio, in un software scientifico in cui qualcosa come Python è semplice da scrivere ma lento, quindi le funzioni di base dovrebbero essere in C/Fortran. – tpg2114
@ tpg2114: questo è esattamente ciò di cui sto parlando. Quando dovrei considerare di incorporare una lingua in C++ invece di scrivere il core in C++ e usarlo in python/lua? Forse puoi darmi alcuni vantaggi/svantaggi. –