Integracja Pythona z Javą

Ogólnie rzecz biorąc, łączenie języków programowania systemowego i skryptowego nie jest nową, dziwną koncepcją, po prostu nie jest powszechnie stosowane. Jest to możliwe dla języków programowania, które dzielą wspólny interfejs binarny aplikacji, aby być połączone w jedną bibliotekę lub plik wykonywalny, i chociaż może to być trochę trudne, aby uzyskać podpisy dwóch języków wewnątrz siebie, narzędzia istnieją, aby pomóc.

Jeden przykład języków programowania pracujących razem można znaleźć w kodzie polyglot. Na przykład, strona 404 na Stack Overflow może wydrukować „404” w Pythonie, Ruby, Perlu, C i kilku innych.

As for Python and Java specifically, these two languages actually complement each other. Można na przykład używać jednego z nich do typowych zadań, a drugiego jako języka skryptowego do rozszerzania możliwości dostosowywania aplikacji, którą tworzymy.

Zobacz także: Indeks pakietów Pythona ma teraz automatyczne sprawdzanie złośliwego oprogramowania

Jakkolwiek JavaScript nie jest powszechnie używany poza przeglądarkami internetowymi, przynajmniej w porównaniu z innymi językami skryptowymi, takimi jak Perl, Tcl, Visual Basic i Python, wszystkie te języki są powszechnie łączone z innymi językami. Python tradycyjnie idzie obok C i C ++, podczas gdy Visual Basic jest często językiem skryptowym wyboru dla C ++ na platformie Windows, a zarówno Perl i Tcl są zwykle używane na C / Unix.

Python jest używany nieco więcej na Windows, ponieważ jest płynnie zintegrowany z architekturą Microsoft Scripting Host, jak również COM. Jest również świetny na Macu, z dobrym wyborem natywnych zestawów narzędzi MacOS.

Aby uzyskać więcej zasobów na temat Pythona i możliwości integracji z Javą, dobrze jest sprawdzić kursy online dla Pythona.

Dlaczego Java i Python?

Python jest obiektowym językiem skryptowym, co automatycznie czyni go dobrą parą dla Javy. Ale w połączeniu z interpreterem Pythona napisanym w całości w Javie, takim jak Jython, można robić takie rzeczy, jak pisanie całych apletów w Pythonie, które można uruchomić w dowolnej przeglądarce zgodnej z JDK, z wykonywaniem kodu prawie tak szybko, jak C / CPython.

To, co robi interpreter Python-Java, taki jak Jython, to tłumaczenie kodu źródłowego Pythona bezpośrednio na kod bajtowy Java, co daje niesamowitą szybkość, ponieważ nie jest to interpreter Pythona napisany w Javie, który byłby znacznie wolniejszy. To, co inne rozwiązania skryptowe Java zazwyczaj robią (Java/TCL, Java/Perl, itp.) to dołączenie JVM do implementacji C w tych językach, co nie tylko wprowadza problemy z przenośnością, ale nie jest tak bezproblemowe, jak można by mieć nadzieję.

    Efektywne transformatory

    Christoph Henkelmann

    .

    Machine Learning 101++ Using Python

    Pieter Buteneers

Jak najlepiej używać Javy i JPythona razem?

Istnieje kilka renomowanych narzędzi, które implementują Pythona w Javie lub odwrotnie, dzięki czemu można wykonywać polecenia jednego języka w drugim. Oto szybka lista niektórych z najwyżej ocenianych narzędzi do integracji Python + Java:

  • Jython – Python zaimplementowany w Javie
  • JPype – pozwala Pythonowi uruchamiać polecenia java
  • Jepp – Java osadzona w Pythonie
  • JCC – kod C++ generator kodu C++ do wywoływania Javy z C++/Python
  • Javabridge – pakiet do uruchamiania i interakcji z JVM z CPython
  • py4j – pozwala Pythonowi na uruchamianie poleceń java.
  • voc – Część pakietu BeeWare. Konwertuje kod Pythona na kod bajtowy Javy.
  • p2j – Konwertuje kod Pythona na Javę. Nie jest już rozwijany.

Istnieje kilka podejść do używania tych narzędzi, z ich własnymi zaletami i wadami. Tak więc na przykład można zbudować prototyp całej aplikacji w Jythonie, a po kilku cyklach testowania i przeprojektowywania przepisać wszystko w Javie. Pozwala to na wykorzystanie zwiększonej elastyczności i szybkości rozwoju języków skryptowych we wczesnej części projektu, a końcowy produkt powinien być nieco bardziej dopracowany, niż gdybyś po prostu zaczął w Javie.

A jeśli martwisz się o biblioteki interfejsu użytkownika, Jython może podłączyć się do tych samych UIL’s, co podstawowa Java, więc ostateczne przepisanie Javy powinno pójść bez problemu.

Jednakże nie jest to takie proste, jeśli próbujesz zbudować większy system. Prawdopodobnie napotkasz wadę różnych komponentów i warstw mających niezależne cykle rozwojowe, takie jak komponenty najwyższego poziomu ewoluujące, podczas gdy niższe warstwy stają się zamrożone. Oczywiście, możesz przepisać poszczególne komponenty w Javie, gdy zbliżysz się do stabilności projektu, lub po prostu napisać niektóre komponenty wyłącznie w Javie od samego początku.

Zobacz także: Wizualizacja danych w Pythonie z Bokeh

Inną opcją jest skupienie się na przepisywaniu tylko tych komponentów, w których wydajność jest krytyczna. Można więc pozostawić komponenty wysokiego poziomu w Jythonie, co oznacza, że tylko komponenty niższego poziomu będą musiały zostać przepisane – a w niektórych przypadkach może nie być konieczne przepisywanie czegokolwiek w ogóle.

Więc jeśli części twojego wydanego systemu są napisane w Jythonie, użytkownicy końcowi mogą pisać swoje własne dostosowania poprzez skrypty Jythona – nie wspominając o tym, że aplikacje Jythona mogą być dystrybuowane jako kod bajtowy Javy, co oznacza, że nie musisz się martwić o to, że użytkownik końcowy spieprzy komponenty, z którymi nie powinno się zadzierać.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.