Jakie języki integrują się bardzo dobrze z kodem napisanym w C/C++?

Odpowiedz Nowy wątek
2019-07-17 15:31
0
  1. Przez integrację mam na myśli możliwość zawołania metody z C/C++ przez dany język i w drugą stronę.
  2. Przez bardzo dobrze mam na myśli:
    • rozumienie mechanizmów języka z C/C++ takich jak wskaźniki i dostęp do danych przez nie
    • bardzo mały narzut na wywołanie danej funkcji i czytanie dużej ilości danych bez kopiowania
    • narzędzia (IDE i inne), które nie mają kłopotu z dwoma językami użytymi w 1 projekcie.
  3. Java/C# wydaje mi się, że przez narzut wirtualnej maszyny nie osiągną one punktu 2, jeśli jestem w błędzie proszę o wyprowadzenie. Kotlin Native raczkuje mocno póki co.

Pozostało 580 znaków

2019-07-17 15:41
1

Python + ctypes?


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...
rozumiem, że wszystko z tej listy mojej ma bo tak bez słowa komentarza :) - viader 2019-07-17 15:52
Nie bardzo rozumiem jak wyobrażasz sobie i w drugą stronę - Shalom 2019-07-17 15:58
w sensie, że np. z języka C/C++ można zawołać metodę z Pythona - viader 2019-07-17 16:00
To jest możliwe, ale już niekoniecznie takie całkiem trywialne :) - Shalom 2019-07-17 16:02

Pozostało 580 znaków

2019-07-17 15:41
2
  • C
  • C# i pochodne z pomocą C++ CLI
  • Objective C++

Przeskok do Java to prawdziwy ból. Pisanie kodu z JNI to mordęga.
Jest jeszcze JNA, wiem że dobrze działa z C i jest dość przyjemne w użyciu, ale wolniejsze od JNI. JNA z C++ nigdy nie widziałem w akcji.

Nigdy nie korzystałem, ale słyszałem, że http://www.swig.org/ jest dość dobrym rozwiązaniem, które pozawala korzystać z kodu C++ z bardzo wielu języków wyszego poziomu.


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
edytowany 2x, ostatnio: MarekR22, 2019-07-17 15:43

Pozostało 580 znaków

2019-07-17 16:02
1

Delphi + C++ bardzo prosto z jednego idę debuggowac pliki pas i cpp jak i za pomocą plików hpp dziedziczyć klasy np. Delphi klasami pochodnymi w cpp czy przekazać do funkcji wskaźnik i operować na pamięci a nawet rzutować. Samo IDE potrafi wkurzyć ale chyba szukasz przypadków akademickich?

Pozostało 580 znaków

2019-07-17 16:13
3

Jeśli chodzi o dwukierunkowość to zapewne:

  • Delphi/Pascal
  • Fortran (dziwne, że nikt jeszcze nie wymienił)
  • Rust
  • D
  • Zig
  • Nim
  • Crystal

Z takich "popularniejszych" technologii, które w miarę bezproblemowo działają w obie strony chyba nic więcej. Jeśli jednak trochę "więcej zachodu" jest dozwolone, to w Erlangu jeśli napiszesz sobie C-node to można w miarę łatwo się komunikować w obie strony, ale to trochę oszustwo, bo w ten sposób można uzasadnić wszystkie języki "gadające" poprzez stdio/jakiś bus.


Byłbym zapomniał, jeszcze są języki skryptowe przeznaczone do takiego działania, więc masz:

  • Lua
  • Guile
  • MRuby

Może coś takiego by Cię interesowało, zależy co chcesz osiągnąć i co potrzebujesz.

edytowany 1x, ostatnio: hauleth, 2019-07-17 16:23
Dzięki! Bardzo spoko lista, muszę poczytać o więcej o tych językach. Języki gadające przez stdio to raczej nie :) Chciałbym bardziej obiektowego języka niż C++ (niczego mu nie ujmując) do logiki biznesowej jednak bardzo wydajnego przy OpenGLu. - viader 2019-07-17 16:28
Nie wiem jak z obiektowością (która ogólnie rzecz biorąc często jest IMHO źle zrobiona), ale zakładając, że chodzi Ci o gry, to Lua jest bardzo często wybierana, ze względu na LuaJIT, która gniecie wszystkie inne języki skryptowe jeśli chodzi o wydajność, i to tak srogo. Więc jeśli chcesz coś, to IMHO LuaJIT będzie tutaj najlepszym wyborem (IIRC np. WoW używa Lua do skryptów). - hauleth 2019-07-17 16:35

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0