• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Czy da się zrobić aplikację do gry/programu w innym języku niż sama gra/aplikacja ?

Object Storage Arubacloud
+2 głosów
365 wizyt
pytanie zadane 1 lutego 2021 w Offtop przez Gowi Użytkownik (830 p.)
Witam,

nurtuje mnie pytanie czy da się stworzyć aplikację do jakiegoś większego programu czy gry, która jest napisana w innym języku?

Tzn. mając grę w C++ czy można zrobić do niej aplikację powiedzmy w Pythonie, Javie ? Jak to wygląda w teorii i jak to się przekłada w praktyce, gdzie mogą się pojawić problemy ze sprzętem czy OS'em ?
komentarz 1 lutego 2021 przez manjaro Nałogowiec (37,390 p.)
A co to jest aplikacja do gry? Bo nijak nie mogę sobie wyobrazić o co ci chodzi...
komentarz 4 lutego 2021 przez Gowi Użytkownik (830 p.)
Powiedzmy, że aplikacja do League of Legends czy Counter-Strike, która wyśle nam powiadomienie na telefon, że znalazło nam grę w poczekalni. Często się czeka na takie zjawisko nawet 10 minut, a możnaby ten czas spędzić inaczej, powiedzmy w innym pokoju, niekoniecznie siedzieć i pilnować komputera.

1 odpowiedź

+4 głosów
odpowiedź 1 lutego 2021 przez JAKUBW Nałogowiec (33,470 p.)
Tak, można mieszać wiele języków programowania w jednym projekcie. Wiele gier udostępnia możliwość modowania w innych językach niż zostały one napisane np. Factorio napisane w C++ pozwala na modyfikacje napisane w Lua. Są też gry jak Minecraft, w którym modyfikacje i pluginy pisze się w Javie (lub w innym języku kompilowanym na JVM np. kotlin)

W praktyce przekłada się to bardzo różnie, lecz często ma to negatywny wpływ na wydajność, gdyż zmienne z jednego języka programowania nie mogą być bezpośrednio przeniesione do innego, konwersja zajmuje czas oraz JIT nie może optymalizować dwóch różnych języków na raz. To oczywiście nie dotyczy gdy pisany kod jest w tym samym języku.

Jeśli chodzi o OS to mogą być problemy z uruchomieniem na różnych platformach tego samego kodu. Np. C++ musi być skompilowany na każdy system / sprzęt osobno podczas gdy Java już nie. W Java możesz wczytywać 'pluginy' czyli odseparowane fragmenty kodu dynamicznie i jest to wbudowane w JVM. W c++ np. nie ma natywnego mechanizmu i trzeba się wspomagać systemowym API co jest mniej praktyczne i wygodne.

Natomiast zamiast wczytywania 'pluginów' do działającej aplikacji to aplikacja może udostępniać API poprzez gniazdo Unix lub TCP, protokół HTTP itp. Tak działające programy są bardzo odseparowane od siebie i mogą być bez problemu pisane w innych językach a format wymiany może być wspólny dla wszystkich języków np. JSON. Wadą takiego podejścia jest bardzo niska wydajność, ale za to wysoka wygoda.

Podobne pytania

0 głosów
1 odpowiedź 173 wizyt
0 głosów
2 odpowiedzi 427 wizyt
pytanie zadane 31 października 2019 w Offtop przez Iam Nowicjusz (150 p.)
+5 głosów
1 odpowiedź 263 wizyt
pytanie zadane 23 grudnia 2017 w Offtop przez iNakeii Obywatel (1,030 p.)

92,545 zapytań

141,387 odpowiedzi

319,503 komentarzy

61,930 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...