Adrian Jochymczyk

Adrian Jochymczyk www.ambg.pl
Doradztwo
techniczne; Projekty
budowlane; Pro...

Temat: Python do JavaScript?

Witam! Mam takie pytanie:
Czy jest możliwość deskopową aplikację napisaną w pythonie przenieść do sieci?
Tak aby program funkcjonował na stronie www?

Nadmienię iż program w pythonie nie jest napisany przezemnie i nie wiem czy jest w jakiś sposów możliwość podglądu algorytmu z jakiego korzysta?

konto usunięte

Temat: Python do JavaScript?

Rzeczy niezwiązane z interakcją z użytkownikiem faktycznie można praktycznie przekopiować - algorytmy, biblioteki obliczeniowe. Model interakcji z użytkownikiem jest zupełnie inny, więc do napisania nadal zostaje dużo.
Adrian Jochymczyk

Adrian Jochymczyk www.ambg.pl
Doradztwo
techniczne; Projekty
budowlane; Pro...

Temat: Python do JavaScript?

Tak właśnie chodzi mi o algorytmy obliczeniowe.
Dodatkowo ich nie znam.. wiec nie wiem czy będzie możliwość odczytać ich z plików pythona?

A model interakcji z użytkownikiem chciałbym napisać od nowa (znaczy zlecić napisanie)
Jakub L.

Jakub L. Programista

Temat: Python do JavaScript?

Przede wszystkim musisz sobie ustalić, czy obliczenia mają być po stronie serwera, czy klienta.
Jedno i drugie wymaga nowego interfejsu użytkownika, pierwsza wersja dodatkowo wymaga konfiguracji serwera, druga przepisania algorytmu do innego języka.
Adrian Jochymczyk

Adrian Jochymczyk www.ambg.pl
Doradztwo
techniczne; Projekty
budowlane; Pro...

Temat: Python do JavaScript?

algorytmy są dosyć skomplikowane - dużo zależności.
A zależy mi też na szybkim działaniu tego na stronie www.
Więc nie wiem po której stronie klient- serwer będzie lepiej?
Dominik Kierzek

Dominik Kierzek Programista
Python/JS/PHP

Temat: Python do JavaScript?

jeżeli jakieś skomplikowane obliczania to tylko server-side ze względu na bezpieczeństwo.

http://www.google.pl/search?sourceid=chrome&ie=UTF8&q=...
google nie boli :)
Jakub L.

Jakub L. Programista

Temat: Python do JavaScript?

Dominik Kierzek:
jeżeli jakieś skomplikowane obliczania to tylko server-side ze względu na bezpieczeństwo.

? Możesz rozwinąć?
Maurycy Mikulski

Maurycy Mikulski programista
C++(MS,QT),C#-MVC,SO
AP,AJAX-REST,SQL

Temat: Python do JavaScript?

To proste.
Po stronie klienta ,trzeba przetransportować wszystkie algorytmy i dane a to raczej nie jest wskazane (w wielu przypadkach). Kod jest jawny a klient niekoniecznie da sobie z tym radę(takie mam doświadczenie praktyczne).
Po stronie serwera wszystko siedzi ukryte. Przekazujesz parametry i dostajesz odpowiedz.
Jak zrobisz to AJAXEm to nawet nie poczujesz ,że to działo się na serwerze.
Proste i skuteczne i bezpieczne.

Temat: Python do JavaScript?

Adrian Jochymczyk:
algorytmy są dosyć skomplikowane - dużo zależności.
A zależy mi też na szybkim działaniu tego na stronie www.
Więc nie wiem po której stronie klient- serwer będzie lepiej?

Odnoszę wrażenie, że trochę nie rozumiesz tematu. Generalnie, w aplikacjach internetowych rzadko kiedy wykorzystuje się skrypty client-side do wykonywania obliczeń lub jakichkolwiek skomplikowanych operacji, aby nie obciążać komputera użytkownika. Takie rzeczy prawie zawsze wykonuje się po stronie serwera. JavaScriptu możesz użyć co najwyżej do jakichś interakcji związanych z interfejsem użytkownika po stronie klienta lub do cyklicznego odpytywania serwera, czy wykonał już operację w przypadku jakiegoś czasochłonnego procesu (XMLHttpRequest i AJAX). Cały czas miałem tutaj na myśli client-side JavaScript, bo od jakiegoś czasu można pisać w JS też po stronie serwera (node.js).
Ponadto, Python jest językiem, którego możesz używać do pisania aplikacji internetowych. Chociażby na serwerze Apache możesz sobie zainstalować mod_python i uruchamiać skrypty Pythona na serwerze www. Do bardziej złożonych aplikacji możesz użyć frameworka Django. Nie wiem, jak jest napisana aplikacja, o której mowa, ale myślę, że przy odrobinie wysiłku dałbyś radę skonwertować aplikację desktopową w Pythonie na aplikację www w tym samym języku na zasadzie kopiuj/wklej odpowiednio dostrajając ją do mechanizmów, jakie są dostępne w aplikacjach internetowych oraz dodając webowy interfejs graficzny.
Dominik Kierzek

Dominik Kierzek Programista
Python/JS/PHP

Temat: Python do JavaScript?

Maurycy Mikulski:
To proste.
Po stronie klienta ,trzeba przetransportować wszystkie algorytmy i dane a to raczej nie jest wskazane (w wielu przypadkach). Kod jest jawny a klient niekoniecznie da sobie z tym radę(takie mam doświadczenie praktyczne).
Po stronie serwera wszystko siedzi ukryte. Przekazujesz parametry i dostajesz odpowiedz.
Jak zrobisz to AJAXEm to nawet nie poczujesz ,że to działo się na serwerze.
Proste i skuteczne i bezpieczne.


100% w sedno
Piotr Koszuliński

Piotr Koszuliński JavaScript ninja

Temat: Python do JavaScript?

Myślę, że w tym wypadku macie rację, wciągając ciężkie obliczenia, czy też operacje na serwer, bo nie sądzę by był to projekt, w którym jest chęć testować różne świeże architektury. Nie uważam jednak by takie podejście było jedynym słusznym zawsze.

Przede wszystkim należy sobie zdać sprawę z tego, że JS w niektórych przeglądarkach jest już zaskakująco wydajny (porównywalny, bądź wydajniejszy od typowych Ruby, Python, czy PHP - polecam http://devcamps.pl/topics/perf_io_cpu, czy http://devcamps.pl/topics/perf_templates [chociaż tutaj został wybrany bardzo słaby EJS dla Node'a, co wypaczyło wyniki]). Z drugiej strony nasz serwer też ma określoną moc i jeśli na horyzoncie pojawia nam się aspekt jego przeciążenia, to warto pomyśleć o skorzystaniu z CPU i GPU (!) klienta. Oczywiście trzeba wiedzieć jak pisać takie obliczenia w sposób nieblokujący - kłaniają się WebWorkery, bądź też po prostu zapętlony setTimeout().

Pojawia się jednak problem - co ze starszymi przeglądarkami, IE i mobile'ami? Otóż, fajnie byłoby dla nich wykonać obliczenia na serwerze. Nie lubimy się jednak powtarzać, więc kod chcielibyśmy napisać raz i koniec. Oczywiście możliwy jest przypadek, że do sportowania jest 20 linii matematycznych obliczeń, które metodą kopiego pejsta można przenieść z Pythona do JS. Załóżmy jednak, że chcemy przenieść system template'owania (operacje na DOM itp.). Napiszmy to w JS dla klienta i... odpalmy na serwerze dla śmIEciowych przeglądarek, bądź słabszych urządzeń. Taką architekturę, czy też bardziej warstwę nazywa się ostatnio middle-endem (nie mylić z middleware).

W przypadku opisanym w tym topicu można byłoby po prosty napisać algorytmy w JS (w tym wypadku, to oczywiście duplikacja pracy, ale założenie jest, że startujemy od zera ;), postawić je jako usługę w Nodzie (w uproszczeniu JS-owy backend) i ten sam kod mieć w przeglądarce. Gdyby backend Pythonowy rozpoznał, że gada z wolnym klientem, to mógłby odpytywać ten serwis Node'owy, bądź jeszcze prościej - klient mógłby to robić sam (pojawia się problem Same Origin Policy, ale są rozwiązania).

W każdym razie - przestrzegałbym przed przedwczesnym skreślaniem JS i CPU klienta jako dostępnej dla nas mocy obliczeniowej.

PS. prowadziłem kilka tygodni temu szkolenie z Middle-end w oparciu o Node'a. Gdyby kogoś interesowało - moja prezentacja związana z kilkoma aspektami serwerowego JS i samym middle-endem http://reinmar.github.com/dm-middle-end/pres/
Jakub L.

Jakub L. Programista

Temat: Python do JavaScript?

Maurycy Mikulski:
To proste.
Po stronie klienta ,trzeba przetransportować wszystkie algorytmy i dane a to raczej nie jest wskazane (w wielu przypadkach). Kod jest jawny a klient niekoniecznie da sobie z tym radę(takie mam doświadczenie praktyczne).

Jak kod jest proprietary, to i może, głupie jquery to ponad sto kilo kodu więc wielkość nie jest przeszkodą.
Po stronie serwera wszystko siedzi ukryte. Przekazujesz parametry i dostajesz odpowiedz.
Jak zrobisz to AJAXEm to nawet nie poczujesz ,że to działo się na serwerze.
Proste i skuteczne i bezpieczne.

Na serwerze poczujesz, kwestia jak bardzo.
Maurycy Mikulski

Maurycy Mikulski programista
C++(MS,QT),C#-MVC,SO
AP,AJAX-REST,SQL

Temat: Python do JavaScript?

"proprietary" proszę o definicje.
Co do poczucia to zwykle serwer to super komputer,a klient to g... komputer.
Takie założenie , przy preferencjach do AJAXA. By się nie zdziwić.
Piotr Koszuliński

Piotr Koszuliński JavaScript ninja

Temat: Python do JavaScript?

Parafrazując Mistrza - gdzie requestów dużo, tam i super komputer dupa :P

Następna dyskusja:

JavaScript a programowanie ...




Wyślij zaproszenie do