🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: python vs php - potrzebne argumenty

#26675
From: Sebastian Kaliszewski
Date: Tue, 24 Nov 2009 12:38
71 lines
4745 bytes
Łukasz Rekucki wrote:
> On Nov 23, 5:27 pm, Bart Ogryczak <b.ogryc...@gmail.com> wrote:
>> On Nov 23, 4:59 pm, Marcin Nowak <marcin.j.no...@gmail.com> wrote:
>>
>>> On 23 Lis, 15:25, Bart Ogryczak <b.ogryc...@gmail.com> wrote:
>>>> On Nov 23, 8:25 am, Marcin Nowak <marcin.j.no...@gmail.com> wrote:
>>>>> Jesli chodzi o Python:
>>>>>   - wysoka wydajnosc
>>>> Co do ostatniego, to bez przesady. Bardzo słabo w porównaniu do
>>>> statycznych języków. Póki Python nie będzie miał JIT, póty nie ma co
>>>> mówić o wydajności.
> 
> Alternatywne implementacje:
>  * Jython - kilka razy szybszy od CPython, tylko trochę wolniejszy od
> zwykłej Javy

Ależ skąd.

>  * IronPython - python dla platformy .NET - podobnie jak wyżej

j.w. Był szybszy kiedy był mało zgodny z oryginałem. Teraz nie jest.

>  * Unladen Swallow - nieoficjalny zastępnik CPython'a dla wersji 3.x,
> na razie tylko trochę szybszy w porównaniu z 2.6

3.x??? Przecież to kod dla 2.6.x

> JIT-y:
>  * Psycho

Psyco nie Psycho. Owszem dużo przyspiesza. Stosuję.

>  * PyPy (robi też dużo więcej, np. funkcjonalności ze stackless
> pythona)

To się rozwija, wygląda obiecująco, ale jeszcze poziomu Psyco nie osiągnęło.

> Aha. I oczywiście, to czy język jest typowany statycznie, czy
> dynamicznie, nie ma dużego wpływu na wydajność. Np. Common Lisp po
> kompilacji ma wydajność jak C.

Po pierwsze w rzeczywistości to ta wydajność jest zbliżona do C, ale nie 
taka sama (jest tzw, porównywalna, czytaj jest zwykle/średnio ze 2x 
wolniej), po drugie kod musi być już przez programistę odpowiednio 
napisany (jawne typowanie parametrów, itd -- czyli explicite wycinanie 
dynamiczności tam gdzie miesza)

Są języki typowane dynamicznie i języki typowane dynamicznie. Była 
dopiero co długa dyskusja na comp.lang.python. CL jest we wrażliwych 
(wydajnościowo) miejscach dużo mniej dynamiczny (jak jest funkcja to nie 
zostanie łatwo, dynamicznie przenazwana na co innego, typy prymitywne są 
"niedziedziczalne", itd.). BTW zrobiono implementację Pythona jako 
(kros)kompilatora do Common Lispa -- kod wynikowy okazał się nie lepszy 
wydajnościowo niż interpretacja z CPythona.

http://common-lisp.net/project/clpython/
http://github.com/franzinc/cl-python/


Python ma parę bardzo trudno przyspieszalnych elementów:
odwołania do pól obiektów przez słowniki (sloty niewiele pomagają, bo w 
podklasie można zrobić po swojemu), możliwość przykrywania nazw funkcji,
rozbudowane wykonywanie operatorów na podstawie metod specjalnych 
(__metoda__), skomplikowany lookup w przypadku dziedziczenia (a 
zwłaszcza wielodziedziczenia).

\SK
-- 
"Never underestimate the power of human stupidity" -- L. Lang
-- 
http://www.tajga.org -- (some photos from my travels)
Technical Details
Message-ID: <65ust6-05n.ln1@bozon.softax.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!news.internetia.pl!newsfeed.neostrada.pl!nemesis.news.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!bozon.softax.pl!news
References: <h83in7$rl3$1@inews.gazeta.pl> <op.u3ngjef4eaqjf2@jzabielloosx.dubtilt.local> <ebb48508-1e60-47a3-87ab-8b4ccebeeba0@a32g2000yqm.googlegroups.com> <op.u3nkjowaeaqjf2@jzabielloosx.dubtilt.local> <17047610-9db9-47fc-9d8f-c476d2009b37@s15g2000yqs.googlegroups.com> <op.u3ore7useaqjf2@macbook-pro-15-zbiru.local> <1ed24c15-19ff-4a55-872c-ed0ecc3302c9@p8g2000yqb.googlegroups.com> <221dc55c-d636-44f1-bf11-c437e392aa69@j19g2000yqk.googlegroups.com> <he7dc2$q7s$1@news.lublin.pl> <3d4aa257-cd86-4220-9917-e7ff6af41193@d5g2000yqm.googlegroups.com> <556ac98b-668b-4b4a-8373-46ed23c0735d@o31g2000vbi.googlegroups.com> <2986fd9f-56a1-41b9-811e-4f27a4b1a8ac@o13g2000vbl.googlegroups.com> <fb102619-d0ae-46de-9078-55561f655075@33g2000vbe.googlegroups.com> <7cf465d2-a344-4a63-9fbc-a8e2d5c72e90@v37g2000vbb.googlegroups.com> <0477cb5d-8df9-4ac6-a8f3-00dd75dc9b61@33g2000vbe.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.nask.pl!news.nask.org.pl!news.internetia.pl!newsfeed.neostrada.pl!nemesis.news.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!bozon.softax.pl!news
From: Sebastian Kaliszewski <s.bez_spamu@remove.this.informa.and.that.pl>
Newsgroups: pl.comp.lang.python
Subject: Re: python vs php - potrzebne argumenty
Date: Tue, 24 Nov 2009 13:38:38 +0100
Organization: TP - http://www.tp.pl/
Lines: 71
Message-ID: <65ust6-05n.ln1@bozon.softax.pl>
References: <h83in7$rl3$1@inews.gazeta.pl> <op.u3ngjef4eaqjf2@jzabielloosx.dubtilt.local>  <ebb48508-1e60-47a3-87ab-8b4ccebeeba0@a32g2000yqm.googlegroups.com>  <op.u3nkjowaeaqjf2@jzabielloosx.dubtilt.local> <17047610-9db9-47fc-9d8f-c476d2009b37@s15g2000yqs.googlegroups.com>  <op.u3ore7useaqjf2@macbook-pro-15-zbiru.local> <1ed24c15-19ff-4a55-872c-ed0ecc3302c9@p8g2000yqb.googlegroups.com>  <221dc55c-d636-44f1-bf11-c437e392aa69@j19g2000yqk.googlegroups.com>  <he7dc2$q7s$1@news.lublin.pl> <3d4aa257-cd86-4220-9917-e7ff6af41193@d5g2000yqm.googlegroups.com>  <556ac98b-668b-4b4a-8373-46ed23c0735d@o31g2000vbi.googlegroups.com>  <2986fd9f-56a1-41b9-811e-4f27a4b1a8ac@o13g2000vbl.googlegroups.com>  <fb102619-d0ae-46de-9078-55561f655075@33g2000vbe.googlegroups.com>  <7cf465d2-a344-4a63-9fbc-a8e2d5c72e90@v37g2000vbb.googlegroups.com> <0477cb5d-8df9-4ac6-a8f3-00dd75dc9b61@33g2000vbe.googlegroups.com>
NNTP-Posting-Host: 83.18.189.42
Mime-Version: 1.0
X-Trace: nemesis.news.neostrada.pl 1259064650 18967 83.18.189.42 (24 Nov 2009 12:10:50 GMT)
X-Complaints-To: usenet@news.neostrada.pl
NNTP-Posting-Date: Tue, 24 Nov 2009 12:10:50 +0000 (UTC)
User-Agent: Thunderbird 2.0.0.23 (X11/20090817)
In-Reply-To: <0477cb5d-8df9-4ac6-a8f3-00dd75dc9b61@33g2000vbe.googlegroups.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit