Wątek przeniesiony 2020-03-21 03:02 z Nietuzinkowe tematy przez somekind.

Czy tak się robi w środowisku programistycznym?

0

Witam,
Chciałbym stworzyć aplikację wykorzystująca Java (Spring) oraz Sztuczna inteligencję.
Do sztucznej inteligencji chciałbym wykorzystać Pythona z biblioteką Tensorflow.

Czy w świecie IT łączy się dwa różnie języki?
Czy ma to sens?
Jak TAK
To w jaki prosty sposób to zrobi?

2

Najpierw powinieneś poznać wiele tooli i robić w tych toolach to do czego zostały stworzone. Później mając problem powinieneś dobrać do problemu toole, nie odwrotnie.

Jeżeli ktoś ma młotek to wszędzie widzi gwoździe.

0

To niedorzeczne, jak dla mnie, ale rozumiem, Znasz Javę + Spring do backendu i tensorflow do sieci. Możesz poszukać, są rózne sposoby "deployowania" modeli, np.:
https://course.fast.ai/
Sekcja: Production.

5

Ja bym zadał sobie pytania:

  • Po co mi ten Spring? Czy to co chce zrobić w Javie nie można zrobić w Pythonie - czyli całą aplikację zrobić w Pythonie (sam nie wierzę że to mówię, jestem przeciwnikiem języków dynamicznie typowanych, no chyba ze to Scheme/Racket)
  • Czy Tensorflow nie ma Javowego api? Może wtedy całą aplikację da się zrobić w Javie?

Jeśli naprawdę chcesz użyć dwóch języków języków to są (co najmniej) dwie drogi:

  • Zbudować dwie niezależne aplikacje/mikroserwisy i Java będzie wywoływać (np. przez Resta) Pythona
  • Spróbować skompilować wszystko razem za pomocą GraalVM. Teoretycznie jednym z feature Graala jest to że można połączyć Javę i Pythona. Niestety na razie Spring (podobno) nie działa na Graalu. Więc wracamy do punktu Po co Ci ten Spring
0

To chcesz stworzyć aplikację wykorzystujące te technologie czy rozwiązująca jakiś problem? Jak to drugie to npaisz, jaki to problem wówczas można cos doradzać.

0

Nie wiem, jak się robi, ale jak próbowałem użyć czegoś w Pythonie do Machine Learning, to musiałem instalować oprócz bibliotek pythonowskich kompilator Fortrana, bo jakaś biblioteka tego używała.

0
Tomek Pycia napisał(a):

To chcesz stworzyć aplikację wykorzystujące te technologie czy rozwiązująca jakiś problem? Jak to drugie to npaisz, jaki to problem wówczas można cos doradzać.

Stworzenie aplikacji wykorzystującą obie technologie.

0

Powszechnym jest łączenie języków w projekcie. Mozna to robic w osobnych aplikacjach - baza to SQL, backend to Java a front JS. Można łączyć w ramach bibliotek - OpenCV to C++ a wykorzystuje się jego funkcje w Pythonie przez DLL. Można tez bezpośrednio w rakach języka - ja utrzymuje jeden system gdzie połowa hierarchii klas jest w Delphi a po nich dziedziczą klasy C++ No i w C++ mogę powoływać obiekty Delphi natywnie. Tylko wszystko ma swój cel wiec opisz dlaczego chcesz łączyć springa z pythonem bo to mi wyglada na XY problem.

1
  1. Da się, są takie cuda jak jython czy https://github.com/kivy/pyjnius pytanie czy warto?
  2. W praktyce lepiej zrobić sobie dwa osobne serwisy, ten Pythonowy z ML i z jakimś flaskiem żeby wystawić RESTa a ten Springowy jako jakiś "frontend" do tego. Czyli realnie robisz dwie aplikacje które się ze sobą komunikują.
4

Oczywiście, że tak się robi. Kiedyś np. połączono język Java z językiem Script i powstał JavaScript.
Ale sensu to nie miało.

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