🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Największy problem Pythona.

#8660
From: RobertSzefler
Date: Tue, 10 May 2005 11:24
75 lines
4612 bytes
Qertoip wrote:
> Na początek uczciwie zaznaczę, że jestem w Pythonie początkujący. Nie
> licząc różnych "wprawek", napisałem około 1000 wierszy działającego kodu
> (wątki, sockety, XML). Inną część tej samej aplikacji (również: wątki,
> sockety, XML) piszę w .NET (VS2003).

Ja osobiście w dotnecie dotarłem do etapu hello world i tam poległem, 
dokładnie z tego samego powodu, dla którego Ty wolisz C#... Mi się 
wydaje, że to jest jednak w większym stopniu kwestia 
przyzwyczajeń/doświadczeń/traum.

> Tym samym miałem okazję porównać swoją produktywność na tych dwóch
> platformach. Podkreślę - nie tyle językach, co *platformach*.
> 
> Zauważyłem, że choć Python jest bardziej ekspresywny niż C#, to jednak
> wydajność tworzenia oprogramowania jest istotnie większa w tym drugim...
> 
> Spostrzegłem, że składają się na to dwie prozaiczne rzeczy:
> - bardzo słaba (w porównaniu do MSDN) dokumentacja bibliotek Pythona

To fakt, nie jest z tym najlepiej. Nie ukrywam, że zdarza mi się np. 
zerkać do sorców żeby wykumać, jak to wszystko jest poskładane i co się 
dzieje w "corner cases".

> - niemożność wylistowania składowych obiektu (w VS: Ctrl+Space) wraz z
> podręczną dokumentacją dla każdej składowej (metody, atrybuty). Osoby
> piszące w nowoczesnych IDE wiedzą o co mi chodzi.

Ja nie wiem, ostatnio jadę pod windą w Notepad2 a tradycyjnie joe'm (od 
którejś tam wersji ma fajne podświetlanie składni Pythona). Mi inspektor 
obiektów nie jest z reguły potrzebny, chociaż wiadomo, co osoba to inne 
preferencje.

> To drugie wynika z faktu, że w Pythonie rzadko kiedy da się statycznie
> ustalić typ obiektu (jeśli się da, najlepsze pythonowe IDE potrafią
> wylistować składowe).

Nie ma problemu z inspekcją metod klasy i atrybutów klasowych. Natomiast 
fakt, w praktyce sprawdzenie atrybutów w teorii i praktyce jest poza 
runtimem właściwie niemożliwe. Jakimś tam lekarstwem na to są sloty w 
składni 2.4, ale to półśrodek. Python jest językiem młodym i ciągle 
ewoluującym, a ta sprawa właśnie (bardziej statyczna obiektowość) jest 
co chwilę poruszana wśród jego tfurców, bodajże nawet sam BDFL Guido się 
do tego skłania.

Zobaczymy, co nadejdzie z Py3K. Chociaż ja osobiście wolałbym dobrze i 
wydajnie zaimplementowaną maszynę wirtualną dla 2.4, no ale cóż...

> Niby pierdółki... ale *naprawdę* ma to zasadniczy wpływ na wydajność.

Kwestia gustu, acz oczywiście rozumiem i po części podzielam Twoje obiekcje.

> Jestem głodny Waszych uwag na ten temat. 
> Czy da się jakoś zniwelować powyższe problemy?

Kwestia paradygmatu inżynieryjnego i organizacji pracy w grupie. Uwierz 
mi, brak statycznych prototypów dla klas nie jest największym problemem 
przy współpracy grupowej. Są poza tym różne podejścia próbujące to w 
pewnym sensie niwelować (PyProtocols chociażby).

To w ogóle taki temat trochę szeroki, bo trzebaby najpierw zdefiniować, 
czym na prawdę jest atrybut obiektu i czy ma konkretny związek z klasą 
obiektu - Guido i spółka przyjęli, że tak nie jest, większość reszty 
świata, szczególnie z korzeniami w C, jest innego zdania...

> Jak porównujecie swoją wydajność w Pythonie do wydajności w innych
> nowoczesnych językach?

Ja mogę z osobistego doświadczenia porównać to schematycznie tak:

Angielski > Polski > Python > C ~ C++ > asembler x86 ;) > Java > Perl 
 >>>>> PHP

od najwydajniejszych dla swojej klasy zastosowań do najmniej wydajnych 
;) co przekłada się bezpośrednio na jakość "ideologiczną" języka.
Technical Details
Message-ID: <d5q5l7$20ag$1@news2.ipartners.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.internetia.pl!news.ipartners.pl!ipartners.pl!not-for-mail
References: <jsq2enrcpp4r$.nmpn8bgh83ge.dlg@40tude.net>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.internetia.pl!news.ipartners.pl!ipartners.pl!not-for-mail
From: RobertSzefler <rszeflerUSUNTO@murator.com.pl>
Newsgroups: pl.comp.lang.python
Subject: Re: Największy problem Pythona.
Date: Tue, 10 May 2005 13:24:22 +0200
Organization: Internet Partners
Lines: 75
Message-ID: <d5q5l7$20ag$1@news2.ipartners.pl>
References: <jsq2enrcpp4r$.nmpn8bgh83ge.dlg@40tude.net>
NNTP-Posting-Host: intranet.murator.com.pl
Mime-Version: 1.0
X-Trace: news2.ipartners.pl 1115724263 65872 217.153.39.22 (10 May 2005 11:24:23 GMT)
X-Complaints-To: abuse@ipartners.pl
NNTP-Posting-Date: 10 May 2005 11:24:23 GMT
In-Reply-To: <jsq2enrcpp4r$.nmpn8bgh83ge.dlg@40tude.net>
X-Accept-Language: en-us, en
User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit