🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: python vs php - potrzebne argumenty

#26787
From: pakalk
Date: Mon, 02 Nov 2009 08:18
175 lines
7699 bytes
On 2 Lis, 02:31, "Jaroslaw Zabiello" <use...@onet.eu> wrote:
> Dnia 01-11-2009 o 19:14:22 pakalk <pak...@gmail.com> napisał(a):
>
> >> Tylko kto pisze w tak paranoidalny sposób testując każdą zmienną?  
> >> Wyjątki tu dużo uproszczają.
>
> > Jasne. Bo zamiast ifa, trzeba napisac try..catch
>
> Tylko, że aby ci pehap nie padł na twarz, to te nieszczęsne ify musisz  
> wpieprzać przy każdej zmiennej. Natomiast blok try-catch używasz dużo  
> rzadziej, bo może obejmować sobą dowolną ilość linii kodu.

1. Nie muszę każdej zmiennej - to jakieś totalne nieporozumienie
2. Potem nie trzeba testować jaki wyjątek nam wyskoczył? Ciekawe.

>
> > badzmy paranoidalni - wowczas aplikacja staje i sprawdzamy w logach co
> > jest nie tak.
>
> Jak to aplikacja staje? Staje tylko przy fatal errorze, to tylko PHP  
> staje. Python, Ruby czy Scala nigdy nie musi stanąć, bo po prostu można  
> przechwycić wyjątek i go obsłużyć.

Pisze o sytuacji, gdy nie zostanie przechwycony

>
> > Bo chyba nie wyswietlamy userowi komnunikatu z bledem?
>
> Z błędem - nie. Ale o błędzie - tak (lub dowolną ściemę do wyboru)

jw.

>
> > Ale co to ma wspolnego z systemem wyjatkow? To jest system obslugi
> > bledow.
>
> Ano jest. Django i web2py automatycznie obsłużą ci wszelkie błędy i ładnie  
> to zgłoszą programistom. Użyszkodnik zaś może dostać jakiś sensowny  
> komunikat, a nie pustą stronę, czy techniczną informację o fatal errorze w  
> jakimś pliku. W PHP byle fatal error, cała aplikacja leży i kwiczy o czym,  
> niestety, można się dowiedzieć tylko *po faktach* w plikach z logiem.

Ok.

>
> >> Ta proteza pokazuje kompetencje programistycze tworców PHP.
>
> > W PHP4, nie aktualnej i jedynej wspieranej wersji, czyli PHP5.
>
> Masz na myśli PHP 5.2 czy 5.3, bo w 5.3 znowu pozmieniali coś w modelu  
> obiektowym. LOL!

5.3

Co pozmieniali?

>
> > Obiektowy model Javy jest swiatowym standardem - tu nie ma nic do
> > smiania.
>
> Ależ jest. Każdy wie, że model obiektowy Javy jest daleki od doskonałości.  
> A słyszałeś o tej reklamie, że milion much jedzących gówno nie może się  
> mylić? Jedz więc...

Twórcy UML-a też pewnie jedzą. Czemu o nich nic nie piszesz? ;>

>
> >> W Pythonie to też jest bez sensu, zgoda (w Ruby i w Scali takich głupot  
> >>  nie ma).
>
> > W skali nie ma metod statycznych? Pierwsze slysze. Toz to chocby main
> > () jest statyczny. Co z tego, ze klase z metodami statyczna nazywa sie
> > "object".
>
> Po pierwsze, nie "skali", ale Scali.

Nie czepiajmy się zapisu

> Po drugie, to nie są żadne metody  
> statyczne, ale klasowe, tj. singletony.

Metoda klasowa to metoda statyczna. Wystarczy spojrzeć na UML i kod
generowany potem w javie.

> W Scali nie ma żadnych metod  
> statycznych, nie ma interfejsów, i nie ma podziału na obiekty i typy  
> prymitywne.

Po co mieszasz rozne zagadnienia?

Interfejsow nie ma.
Prymitywow nie ma.
Ale metody statyczne/klasowe sa - co z tego, ze inaczej je nazwiemy?

>
> > Pozatym, to jest chyba jednak pozyteczne z tego wzgledu, ze mozna wtedy
> > uzyc metod prywatnych w metodach publicznych
>
> Co proszę? Metody statyczne, to nie żadne metody publiczne, to nie są  
> żadne metody, to są funkcje nie związane w ogóle z obiektem.  Nie mają  
> żadnego dostępu do bebechów obiektu.

Nie slyszales o prywatnych metodach statycznych?

>
> > 1. Metoda klasowa (np. w pythonie) == metoda statyczna (w np. Javie)
>
> Nie. Klasa w Pythonie jest obiektem a metoda klasowa jest jej singletonem.

Mowie o zachowaniu a nie jego realzacji. I sie tak zachowuje.

>
> >>> Interfejsy sa nieobiektowymi konstrukcjami?
>
> >> Oczywiście że nie są. Już ci ktoś o tym napisał.
>
> > Co z tego, ze napisal. Ja pisze, ze sa.
>
> Eee tam. A jakiś argument dorzucisz czy mam poprzestać na twojej  
> deklarację wiary?

Chcesz porozmawiac o kreacjonizmie? ;>

Czemu ja mam rzucac argumentami, skoro wystarczy spojrzec na UML,
ktory interfejsy zawiera w specyfikacji?

> Ale nie chodzi o spór o słowa. Interfejsy są po prostu  
> do dupy. Z def. nie mogą posiadać żadnej implementacji. To jest ich główna  
> wada.
>
> > Autorzy UML-a mnie popra.
>
> A co mnie obchodzi jakiś UML? Mogą sobie robić diagramy z czegokolwiek,  
> nawet z fusów. Czy zmienią to, że Java nie jest językiem w pełni  
> obiektowym?

UML jest opisem modelu obiektowego stworzonym przez ludzi, ktorzy
znaja sie na rzeczy lepiej ode mnie, czy Ciebie, wiec...


>
> >> lub traits (jak w Scali) ktore z grubsza działają jak interfejsy z tą  
> >> różnicą że mogą posiadać częściową implementację.
>
> > Dzialaja jak (m/w) klasy abstrakcyjne. Nie wiem po co w Scali tyle
> > glupawych nazw.
>
> Nie, traitsy są o wiele bardziej ogólne.

I lepsze i w ogole jazzy.

>
> Po pierwsze, klasa może domieszkować wiele traitsów. A nie możesz  
> dziedziczyć po wielu klasach abstrakcyjnych, tylko po jednej.

Kwestia dziedziczenia wielokrotnego a nie klas abstrakcyjnych. Gdyby
pozwolic na dziedziczenie wielokrotne w javie, to mozna uzyc
abstrakcyjnych.

> > To jest ich cecha, a nie wada.
>
> Cecha, która jest równocześnie ich wadą.

Cecha najnowszego modelu BMW jest to, ze nie jest amfibia. Dla Ciebie
to moze byc tez wada, dla innych niekoniecznie.

>
> > Fakt, ze klasy abstrakcyjne/wirtualne
> > przy dziedziczeniu wielokrotnym moga sie lepiej sprawdzac.
>
> Klasy abstrakcyjne są do bani, bo nie można dziedziczyć po kilku klasach  
> abstrakcyjnych. To duże ograniczenie.

To nie jest cecha klas abstrakcyjnych, tylko realizacji przez jezyk. W
Pythonie mozna chyba?
Technical Details
Message-ID: <0d2efb92-6837-425f-b45e-0d9a8575fc99@v36g2000yqv.googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!wsisiz.edu.pl!plix.pl!newsfeed1.plix.pl!news-out1.kabelfoon.nl!newsfeed.kabelfoon.nl!bandi.nntp.kabelfoon.nl!feeder.news-service.com!postnews.google.com!v36g2000yqv.googlegroups.com!not-for-mail
References: <h83in7$rl3$1@inews.gazeta.pl> <b9dc7116-39db-474f-9282-8862b3f1cad2@d5g2000yqm.googlegroups.com> <a501db87-9ccf-4694-a8f8-330a67cdc839@15g2000yqy.googlegroups.com> <7aa62383-88c2-4138-89d6-594112504075@g27g2000yqn.googlegroups.com> <op.u2nhqrhyeaqjf2@macbook-pro-15-zbiru.local> <97ad13b9-95bf-4c61-8a1b-59c7c57e8499@s31g2000yqs.googlegroups.com> <op.u2oi93ceeaqjf2@macbook-pro-15-zbiru.local> <12b7fbaa-206c-4b39-8868-4e3b96eea704@37g2000yqm.googlegroups.com> <op.u2p83sqyeaqjf2@macbook-pro-15-zbiru.local> <c3247d6d-5199-4c45-9825-772387effd7b@f16g2000yqm.googlegroups.com> <op.u2quicq2eaqjf2@macbook-pro-15-zbiru.local>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!wsisiz.edu.pl!plix.pl!newsfeed1.plix.pl!news-out1.kabelfoon.nl!newsfeed.kabelfoon.nl!bandi.nntp.kabelfoon.nl!feeder.news-service.com!postnews.google.com!v36g2000yqv.googlegroups.com!not-for-mail
From: pakalk <pakalk@gmail.com>
Newsgroups: pl.comp.lang.python
Subject: Re: python vs php - potrzebne argumenty
Date: Mon, 2 Nov 2009 00:18:59 -0800 (PST)
Organization: http://groups.google.com
Lines: 200
Message-ID: <0d2efb92-6837-425f-b45e-0d9a8575fc99@v36g2000yqv.googlegroups.com>
References: <h83in7$rl3$1@inews.gazeta.pl> <b9dc7116-39db-474f-9282-8862b3f1cad2@d5g2000yqm.googlegroups.com>  <a501db87-9ccf-4694-a8f8-330a67cdc839@15g2000yqy.googlegroups.com>  <7aa62383-88c2-4138-89d6-594112504075@g27g2000yqn.googlegroups.com>  <op.u2nhqrhyeaqjf2@macbook-pro-15-zbiru.local> <97ad13b9-95bf-4c61-8a1b-59c7c57e8499@s31g2000yqs.googlegroups.com>  <op.u2oi93ceeaqjf2@macbook-pro-15-zbiru.local> <12b7fbaa-206c-4b39-8868-4e3b96eea704@37g2000yqm.googlegroups.com>  <op.u2p83sqyeaqjf2@macbook-pro-15-zbiru.local> <c3247d6d-5199-4c45-9825-772387effd7b@f16g2000yqm.googlegroups.com>  <op.u2quicq2eaqjf2@macbook-pro-15-zbiru.local>
NNTP-Posting-Host: 85.128.128.135
Mime-Version: 1.0
X-Trace: posting.google.com 1257149940 18029 127.0.0.1 (2 Nov 2009 08:19:00 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Mon, 2 Nov 2009 08:19:00 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: v36g2000yqv.googlegroups.com; posting-host=85.128.128.135;  posting-account=rLTIYAoAAAAC0UY184o3dcMgnRpikGCw
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.14)  Gecko/2009082707 #APP_FULL_NAME#/#APP_VERSION# Firefox/3.0.14  FirePHP/0.3,gzip(gfe),gzip(gfe)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit