Article View: pl.comp.lang.python
Article #26373Re: Python komunikacja z innymi językami i wydajność
From: Rob Wolfe
Date: Wed, 15 Jul 2009 14:59
Date: Wed, 15 Jul 2009 14:59
72 lines
4012 bytes
4012 bytes
walec51 napisał(a): > Witam. > > Ostatnio przyglądam się pythonowi z różnych stron i zastanawiam się > czy trochę głębiej w niego nie wejść. Kuszom mnie dwie obiegowe opinie > jakie słyszałem. Pierwsza to że łatwo go interfejsować z językami > statycznymi (głownie C i C++) oraz druga że łatwo przyspieszyć jego Jesli mowa o uzywaniu bibliotek z innych jezykow, to podstawowe znaczenie ma wybor konkretnej implementacji Pythona. CPython (implementacja Pythona w C) faktycznie bardzo latwo integruje sie z C/C++. > działanie w przypadku gdy interpreter nie domaga (psycho, pypy, > cython). PyPy [1]_ to nie jest "przyspieszac", a odrebna implementacja Pythona w Pythonie. > I tu miał bym parę pytań do osób, które miały okazję już nieco wejść w > temat: > > - jaki jest wachlarz języków z których lib'ami można się > interfejsować ? To nie jest tak, ze Python jako jezyk ma jakas cudowna wlasciwosc, ktora pozwala na przezroczyste uzycie wszystkiego co kiedykolwiek zostalo napisane. Taki Jython (czyli implementacja Pythona w Javie) kompilowany jest do bajtkodu Javy, dziala na JVM i moze korzystac z wszystkiego co jest dostepne z poziomu JVM. Jesli chcesz uzyc bibliteki z C w Jythonie musisz zrobic to samo, co musialbys zrobic, aby uzyc tej biblioteki z poziomu Javy. Czyli napisac kod w Javie (rozszerzenie Jythona) i uzyc JNI lub JNA. > - jak wydajne są te psycho, pypy, cython, jython, ironpython i inne > "przyspieszacze" ? Z tego co wyminiles, to tylko psycho i cython mozna nazwac "przyspieszaczami". Pozostale to implementacje Pythona w roznych jezykach i z przyspieszaniem nie maja wiele wspolnego. Psycho to taki optymalizator bajtkodu Pythona, czyli piszac w czystym Pythonie (bez zadnych rozszerzen w C) mozesz uzyskac duze przyspieszenia. Cython daja mozliwosc latwego pisania rozszerzen do CPythona. Nie trzeba rzezbic w czystym C/API, lecz mozna uzyc bardziej wysokopoziomowego jezyka (podobnego do samego Pythona zreszta - przyjemna rzecz). Ciekawa opcja jest tez ctypes [2]_. > - jak te "przyspieszacze" wpływają na interfejsowanie z innymi > językami ? Jezyk implementacji jest kluczowy. Psycho ma sie nijak do Jythona, poniewaz Jython kompilowany jest do bajtkodu Javy, a nie Pythona. Cython ma sie nijak do IronPythona czy PyPy. Sluzy wylacznie do pisania rozszerzen do CPythona. Pogloski, ktore slyszales o latwej integracji z bibliotekami w innych jezykach sa prawdziwe, ale na poziomie konkretnej implementacji Pythona. Pomiedzy implementacjami przenosny jest czysty kod Pythona, a nie rozszerzenia napisane w C czy Javie. .. [1] http://codespeak.net/pypy/dist/pypy/doc/index.html .. [2] http://python.net/crew/theller/ctypes/ RW
Technical Details
Message-ID:
<fa291ad1-9d5c-44f7-b656-8c8db6dfa502@h11g2000yqb.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!postnews.google.com!h11g2000yqb.googlegroups.com!not-for-mailReferences:
<2a074241-854d-42a3-bb70-6e4a85ecf6b9@d32g2000yqh.googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!postnews.google.com!h11g2000yqb.googlegroups.com!not-for-mail From: Rob Wolfe <rw@smsnet.pl> Newsgroups: pl.comp.lang.python Subject: Re: Python komunikacja z innymi językami i wydajność Date: Wed, 15 Jul 2009 07:59:07 -0700 (PDT) Organization: http://groups.google.com Lines: 78 Message-ID: <fa291ad1-9d5c-44f7-b656-8c8db6dfa502@h11g2000yqb.googlegroups.com> References: <2a074241-854d-42a3-bb70-6e4a85ecf6b9@d32g2000yqh.googlegroups.com> NNTP-Posting-Host: 194.197.79.18 Mime-Version: 1.0 X-Trace: posting.google.com 1247669947 12091 127.0.0.1 (15 Jul 2009 14:59:07 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Wed, 15 Jul 2009 14:59:07 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: h11g2000yqb.googlegroups.com; posting-host=194.197.79.18; posting-account=Kl85yQoAAACAhtXaf_cPVYWRBT7UPb10 User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.172.33 Safari/530.5,gzip(gfe),gzip(gfe) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit