Uczę się teraz w C++ i słyszałem dużo o językach osadzonych skryptów. Wyobraziłem to sobie zupełnie inaczej.Dlaczego powinienem osadzić język skryptowy?
Myślałem, że napiszę wszystkie moje ciężkie funkcje wydajności w C++ i wywołać je z języka skryptowego, takich jak Lua lub Python.
Ale wygląda na to, że jest odwrotnie. -> Napisz funkcje w Lua/Pythonie i wywołaj je w kodzie C.
Jaka jest zaleta osadzania języka w C++ zamiast pisania API w C++ i wywoływania tych funkcji w innym języku?
Przykład:
// function in c++
int expensiveFunction(){
return 1;
}
Następnie w Pythonie Nazwałbym tę funkcję i chciałbym mieć wydajność od C++, ale mogą dokonywać zmian w czasie wykonywania Dzięki wykonawczego interpretera Pythona.
Innym powodem jest to, że możesz pozwolić użytkownikom pisać własne skrypty, aby rozszerzyć program. Tak właśnie działa Unix. –
W jakim kontekście mówisz? W grach wideo silnik jest "zamknięty" w C++, ale często rzeczy kontrolowane są za pomocą języków skryptowych w celu umożliwienia modyfikacji. To samo dotyczy czegoś takiego jak serwer lub jakiekolwiek oprogramowanie, w którym chciałbyś zamknąć rdzeń, ale pozwolić na tworzenie rozszerzeń stworzonych przez użytkownika. Ale odwrotność byłaby prawdziwa w, powiedzmy, oprogramowaniu naukowym, gdzie coś takiego jak Python jest proste do napisania, ale wolne, więc podstawowe funkcje powinny być w C/Fortran. – tpg2114
@ tpg2114: o to właśnie mówię. Kiedy powinienem rozważyć osadzenie języka w języku C++ zamiast pisać rdzeń w języku C++ i używać go w python/lua? Może możesz dać mi jakieś zalety/wady. –