Article View: pl.comp.lang.python
Article #26787Re: python vs php - potrzebne argumenty
From: pakalk
Date: Mon, 02 Nov 2009 08:18
Date: Mon, 02 Nov 2009 08:18
175 lines
7699 bytes
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-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>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