Jak łączyć języki programowania?

0

Witam mam pewne pytanie poniewaz znam dosyc dobrze jezyki c++ i c# i mam pytanie jak mozna oplaczyc te jezyki ale nie tylko bo np jak bym sie kiedys nauczyl przykladowo javy to w jaki sposob laczy sie te jezyki >

1

Wbrew współnej literce, a ta została wymyślona w dziale prawnym, C++ i C# mają głębokie różnice. Pierwotna nazwa C# to J#, coś Ci to mówi.

PS. łączenie C++ i C# jest w googlu bardzo łatwo do znalezienia. Widocznie nie poznałeś ich na tyle dobrze.

2

Jak się łączy... robi się oddzielnie biblioteki/narzędzia uruchamiane z linii poleceń, korzystamy z nich w naszej głównej aplikacji (pisanej w jednym języku) i każdy moduł coś tam sobie robi.

Albo stosujemy CORBA ( https://pl.wikipedia.org/wiki/Common_Object_Request_Broker_Architecture ) lub inną technologię tego typu.

Programując aplikacje webowe łatwiej łączyć różne języki (backend, frontend...), bo to jest oklepane ;)

0

W przypadku C# i Javy można użyć IKVM.

0

RESTem sie łączy

1

Jeden program może produkowac źródło drugiego. To się często robi w praktyce.
Nieco mniej praktyczny, za to spektakularny przykład tutaj:
https://github.com/mame/quine-relay

0

JavaC# :-) Gotowe :-) a na poważnie to Spine już wspomniał o Corba, a ja dodam jeszcze grpc.

2

Myślałem że CORBą to już się tylko juniorów straszy na studiach - jak się nie będziesz uczył to Ci dadzą CORBę do wspierania...

0

Łączenie języków brzmi trochę enigmatycznie. Kojarzy mi się głównie z wykorzystaniem w danym języku jakiejś biblioteki napisanej w innym języku.

Są też różnego rodzaju wrappery/bindingi jednego języka do innego. Poszukaj pod hasłem "binding", np. "java python binding". Niektóre rozwiązania udostępniają odpowiednie API (znów ta java), np. Java Native Access, Java Native Interface.

Można tworzyć aplikacje w różnych językach, a później je ze sobą integrować. Takie aplikacje udostępniają na potrzeby integracji interfejs(y) i/lub korzystają z interfejsu/ów innej aplikacji.
np. :

  • aplikacja w Javie wywołuje web serwis napisany w C#.
  • aplikacja napisana w C produkuje cyklicznie pliki CSV, które cyklicznie pobierane są przez mediację i przenoszone po SFTP do katalogu wejściowego innej aplikacji (napisane w C++), która "zmienia" pliki CVS na wiadomości publikowane do topica Kafki, z topica czyta klient napisany w Pythonie
    itd.
0

Pytanie (w temacie):
jak to jest z łączeniem różnych języków ?? Ma to większy sens ?? Na przykład łączenie Pythona z Javą ?? Podobno schabowego lepiej z czekoladą nie jeść ?? Co sądzicie na ten temat ?? Nie lepiej na wstępie dobrać technologię (w miarę samodzielną i odpowiednią) do projektu, aby nie musieć tworzyć sklejek w różnych językach ??

0
hurgadion napisał(a):

Pytanie (w temacie):
jak to jest z łączeniem różnych języków ?? Ma to większy sens ?? Na przykład łączenie Pythona z Javą ?? Podobno schabowego lepiej z czekoladą nie jeść ?? Co sądzicie na ten temat ?? Nie lepiej na wstępie dobrać technologię (w miarę samodzielną i odpowiednią) do projektu, aby nie musieć tworzyć sklejek w różnych językach ??

Ma sens (miewa sens).
W uznanym języku kompilowanym linia oprogramowania od producenta - będąca silnikiem dla interpretowanych reguł biznesowych odmiennych na każdym wdrożeniu, od zupełnie innych ludzi, w zupełenie innym rytmie.

Rzeczony Pytnon w wersjach 1.x (dinozaury) miał całą koncepcję wbudowywania (embedded) do C/C++, dawało się zrobić środowisku dla skryptów np nie posiadające koncepcji pliku (jail / sandbox). Lua, Groovy (szkoda, że dynamikę rozwoju utracił), liczne silniki JS / EcmaScriptu poza światem przeglądarek, wersje wbudowanych Basiców itd...

Aryman1983 napisał(a):

JavaC# :-) Gotowe :-) a na poważnie to Spine już wspomniał o Corba, a ja dodam jeszcze grpc.

Jeśli tak, to i Apache Thrift.

Wadą pytania jest, że nie określa czy** łączenie w jednej przestrzeni** adresowej, czy ** siec-między procesami**.

0
hurgadion napisał(a):

Nie lepiej na wstępie dobrać technologię (w miarę samodzielną i odpowiednią) do projektu, aby nie musieć tworzyć sklejek w różnych językach ??

Czasem celowo wybiera się technologię opartą na kilku językach. Kiedyś skryptowałem w Groovym aplikację tworzoną w Javie. Takie skryptowanie ma o tyle sens, że pozwala znacznie zwiększyć produktywność (oczywiście kosztem szybkości wykonywania kodu). Zresztą po to się tworzy też różne DSL'e.

0

Jakby ktoś miał jakieś artykuły, materiały, a może jakieś prace (mgr, itp.) na temat temat, to podlinkujcie, wydaje mi się, że temat jest ciekawy, i wyjątkowo ważny. :)

0
hurgadion napisał(a):

Pytanie (w temacie):
jak to jest z łączeniem różnych języków ?? Ma to większy sens ?? Na przykład łączenie Pythona z Javą ?? Podobno schabowego lepiej z czekoladą nie jeść ?? Co sądzicie na ten temat ?? Nie lepiej na wstępie dobrać technologię (w miarę samodzielną i odpowiednią) do projektu, aby nie musieć tworzyć sklejek w różnych językach ??

Trzeba przyjąć inną perspektywę i spojrzeć parę lat wstecz... ;-) W czasach kiedy IBM używał tcl'a do skryptowania WebSphere (i taka funkcjonalność to było coś!), pojawienie się JSR-223 było pewnego rodzaju przełomem i otwierało możliwości np. ożenienia pythona z javą. Więc wtedy to było jak danie umierającemu z głodu, schabowego i czekolady. Dziś, gdy konsumpcja jest rozpasana, takie pomysły mogą słusznie budzić wątpliwości

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