Article View: pl.comp.lang.python
Article #26789Re: python vs php - potrzebne argumenty
From: Jaroslaw Zabiello
Date: Mon, 02 Nov 2009 08:51
Date: Mon, 02 Nov 2009 08:51
108 lines
5479 bytes
5479 bytes
Dnia 02-11-2009 o 08:18:59 pakalk <pakalk@gmail.com> napisał(a): >> > 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 Bynajmniej. Chodzi o każdą taką, która mogłaby sypnąć fatal errorem. > 2. Potem nie trzeba testować jaki wyjątek nam wyskoczył? Ciekawe. Prawda? Możesz wszystkie wyjątki do kup wyłapać w wyższej warstwie bez wnikania w ich rodzaj. >> 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 Tak jest możliwe tylko w PHP bo ma dziurawy system wyjątków. W Pythonie (i reszcie normalnych języków) można przechwycić *wszelkie wyjątki*. >> >> 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? I ty mówisz że znasz PHP? > Twórcy UML-a też pewnie jedzą. Czemu o nich nic nie piszesz? ;> Bo już dostałeś na to odpowiedź. UML nie ma tu nic do rzeczy. > Metoda klasowa to metoda statyczna. Oczywiście, że nie. Metoda klasowa to singleton. Czy metoda statyczna może być singletonem? Nie. Czy metodę statyczną można przesłaniać? Nie. Czy metodę statyczną można wywołać tak jakby wyglądała na klasową? Tak. Czy to dowodzi, że to jest konstrukcja obiektowa? Nie. > Wystarczy spojrzeć na UML j.w. > Ale metody statyczne/klasowe sa - co z tego, ze inaczej je nazwiemy? Singleton to nie jest metoda statyczna. Nawet w Javie singleton nie jest metodą statyczną. Mylisz pojęcia. >> > 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. Właśnie że tak się *nie* zachowuje. Metodę klasową przeciążysz, statyczną już nie. Spróbuj jak nie wierzysz. > Chcesz porozmawiac o kreacjonizmie? ;> Nie radzę, opiekuję się portalem creationism.org.pl ;) >> 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. Ale nie można. W PHP też nie można. Więc nie pleć bzdur, że miksiny/traisy zachowują się tak jak klasy abstrakcyjne, bo się nie zachowują. Klasy abstrakcyjnie nie potrafią nie mają też linearyzacji tak jak traitsy. Nawet podałem ci przykład kodu w Scali. Spróbuj napisać coś takiego w Javie albo PHP za pomocą interfejsów i klas abstrakcyjnych. Powodzenia! >> > 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. Różnica jest zasadnicza. Ja podałem ci na czym polegają te wady, nawet podałem ci przykłady kodu nie do zrealizowania na interfejsach i klasach abstrakcyjnych. A co ty pokazałeś? Powtórzę, jeśli nie dotarło. >> 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? W Pythonie nie ma przecież klas abstrakcyjnych. :) -- JZ http://blog.zabiello.com
Technical Details
Message-ID:
<op.u2revzrfeaqjf2@macbook-pro-15-zbiru.local>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mailReferences:
<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> <0d2efb92-6837-425f-b45e-0d9a8575fc99@v36g2000yqv.googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mail From: "Jaroslaw Zabiello" <usenet@onet.eu> Newsgroups: pl.comp.lang.python Subject: Re: python vs php - potrzebne argumenty Date: Mon, 02 Nov 2009 08:51:25 -0000 Organization: http://onet.pl Lines: 161 Message-ID: <op.u2revzrfeaqjf2@macbook-pro-15-zbiru.local> 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> <0d2efb92-6837-425f-b45e-0d9a8575fc99@v36g2000yqv.googlegroups.com> NNTP-Posting-Host: a-98-39.cust.iol.ie Mime-Version: 1.0 X-Trace: news.onet.pl 1257151885 24269 194.125.98.39 (2 Nov 2009 08:51:25 GMT) X-Complaints-To: niusy@onet.pl NNTP-Posting-Date: Mon, 2 Nov 2009 08:51:25 +0000 (UTC) To: pakalk <pakalk@gmail.com> User-Agent: Opera Mail/10.01 (MacIntel) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit