🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.python
Article #26373

Re: Python komunikacja z innymi językami i wydajność

#26373
From: Rob Wolfe
Date: Wed, 15 Jul 2009 14:59
72 lines
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-mail
References: <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