🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: python vs php - potrzebne argumenty

#26577
From: Jaroslaw Zabiello
Date: Sun, 15 Nov 2009 06:10
89 lines
5055 bytes
Dnia 13-11-2009 o 22:22:58 pakalk <pakalk@gmail.com> napisał(a):

>>> Jedyne co moge stwierdzic, to to, ze jesli
>>> zamienic bledy na wyjatki
>>
>> ... to wtedy to już nie byłby PHP. Taka zmiana to poważna robota, bo  
>> trzeba by poprawić wszystkie funkcje wbudowane, gdyż one nie rzucają  
>> wyjątków.
>
> To się realizuje przez error handler

Chyba śnisz. Jak sobie wyobrażasz i poprawną czytelną obsługę setek  
różnych funkcji w jednym miejcu? Co z tymi, które nie zwracają nawet  
errora?

> Zend Framework mnie zabil

tymi_Długimi_i_kretyńsko_NazwanymiNazwami? ;)

>> Django, Rails czy Merb  deklasują pehapowe frameworki.
>
> Railsow, czy Merba nie widzialem.

hehe, ty tak poważnie? No, może Merb nie jest aż tak popularny, ale że by  
Railsa nawet nie widzieć??

> Pod wzgledem funkcjonalnym Symfony tez jest niezle.

Symfony to żałosna (i wolna jak żółw) próba zaimplementowania Rails w PHP.  
To samo Cake.


> Jako skryptow mozna uzyc tez PHP

LOL. A dlaczego od razu nie Assemblera? Przecież PHP się do tego niewiele  
lepiej nadaje. Jak np. napiszesz skrypt który działa wielowątkowo skoro  
PHP nie ma wątków? :)

>> Ano pozostaje. Samoobsługowego serwera nie napiszesz w pehapie. Jeden  
>> przypadkowy fatal error i wszystko leży.
>
> Mozna to obejsc niby handlerem bufora wyjscia, ale to troche
> naciagane.

No to pokaż jak byś to obszedł i obsłużył.

>> > Zagladanie do logow tez nie jest takie straszne - szczegolnie,
>>
>> W wypadku pehapa nie masz innego wyjścia jak grzebać w logach i szukać  
>> miejsc które spowodowały kompletne załamanie się całej aplikacji.
>
> Z tym sie wciaz nie bede zgadzal, bo wg mnie w logach powinny byc dane
> o bledzie.

Czy także dane o błędzie który został poprawnie obsłużony przez kod? A  
trzymaj sobie w logach nawet wyniki losowań totolotka. Problem w tym, że w  
pehapie nie masz wyboru - grzebanie po faktach w logach to jedyna pewna  
metoda wyłapania błędów, o czywiście *po faktach*.

>> Oczywiście, wszystko po faktach. Najlepiej jak fatal error padnie  
>> podczas operacji finansowej, zakupu czegoś w sklepie internetowym.
>
> No to znaczy, ze na produkcji byla niestabilna wersja, co nie powinno
> miec miejsca.

Tyle teorii, a praktyka? Błędy w kodzie to codzienność, zwłaszcza w  
większym kodzie.

>> Jak ktoś lubi  ryzyko to niech używa pehapa i potem kłóci się z  
>> klientami że serwis działa jak kupa.
>
> Ale jak blad sie zdarzy w pythonie po operacji finansowej, to co? W
> magiczny sposob sie przywroci stan sprzed bledu? Raczej nie..

Nie mówie o błędzie w algorytmie, ale o błędzie który spowoduje załamanie  
się aplikacji. Błędzie, który pehap nie jest w stanie obsłużyć, a klient  
dostanie.. pustą stronę. Nie ma możliwości aby w pełni zabezpieczyć pehapa  
przed czymś takim.

> Zepsuc mozna wszedzie i wszystko. To, ze w PHP jest jak jest z bledami
> to "zasluga" liczby programistow - szczegolnie nieudolnych.

Jeśli masz na myśli to, że większość programistów pehapa jest nieudolna,  
to zgoda. Jeśli masz na myśli tych, co stworzyli pehapa, to też zgoda (to  
w końcu ich "zasługa" że stworzyli taki językowy potworek). Bo faktycznie  
trzeba być idiotą aby dodać do języka nieobsługiwalne błędy.

-- 
JZ http://blog.zabiello.com
Technical Details
Message-ID: <op.u3e93yy1eaqjf2@macbook-pro-15-zbiru.local>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mail
References: <h83in7$rl3$1@inews.gazeta.pl> <hcc9nt$eqr$1@news.lublin.pl> <f03c49b0-651b-4afa-ad73-db8dde63fdef@p35g2000yqh.googlegroups.com> <hccvvt$u0t$1@news.lublin.pl> <ac46bc62-a3ee-40a1-ac5d-860be3029272@z41g2000yqz.googlegroups.com> <hcd7ck$3a6$1@news.lublin.pl> <2f2d1c53-fa9a-40b1-be71-60f530a0be72@g23g2000yqh.googlegroups.com> <21c2c0bd-464f-45b2-a3ce-449c0412d48c@b2g2000yqi.googlegroups.com> <ad429fa2-5c6d-47a8-8337-1dafcd18c0b9@a31g2000yqn.googlegroups.com> <858f3466-5bdd-4c10-baa1-974089ef29ba@s31g2000yqs.googlegroups.com> <op.u2tsh4k3eaqjf2@mydot.ftpviewlocal.com> <1be92709-f662-4da5-8f44-3ab83d3915d3@k19g2000yqc.googlegroups.com> <op.u2vg6knceaqjf2@mydot.ftpviewlocal.com> <f45ba553-947c-40ff-a96a-88ac21ea20ab@37g2000yqm.googlegroups.com> <op.u26lj6r2eaqjf2@jzabielloosx.dubtilt.local> <929230b3-8c01-4aa0-ba4d-af46cf4196f1@m16g2000yqc.googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.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: Sun, 15 Nov 2009 06:10:36 -0000
Organization: http://onet.pl
Lines: 141
Message-ID: <op.u3e93yy1eaqjf2@macbook-pro-15-zbiru.local>
References: <h83in7$rl3$1@inews.gazeta.pl> <hcc9nt$eqr$1@news.lublin.pl> <f03c49b0-651b-4afa-ad73-db8dde63fdef@p35g2000yqh.googlegroups.com> <hccvvt$u0t$1@news.lublin.pl> <ac46bc62-a3ee-40a1-ac5d-860be3029272@z41g2000yqz.googlegroups.com> <hcd7ck$3a6$1@news.lublin.pl> <2f2d1c53-fa9a-40b1-be71-60f530a0be72@g23g2000yqh.googlegroups.com> <21c2c0bd-464f-45b2-a3ce-449c0412d48c@b2g2000yqi.googlegroups.com> <ad429fa2-5c6d-47a8-8337-1dafcd18c0b9@a31g2000yqn.googlegroups.com> <858f3466-5bdd-4c10-baa1-974089ef29ba@s31g2000yqs.googlegroups.com> <op.u2tsh4k3eaqjf2@mydot.ftpviewlocal.com> <1be92709-f662-4da5-8f44-3ab83d3915d3@k19g2000yqc.googlegroups.com> <op.u2vg6knceaqjf2@mydot.ftpviewlocal.com> <f45ba553-947c-40ff-a96a-88ac21ea20ab@37g2000yqm.googlegroups.com> <op.u26lj6r2eaqjf2@jzabielloosx.dubtilt.local> <929230b3-8c01-4aa0-ba4d-af46cf4196f1@m16g2000yqc.googlegroups.com>
NNTP-Posting-Host: 78.16.58.241
Mime-Version: 1.0
X-Trace: news.onet.pl 1258265438 28582 78.16.58.241 (15 Nov 2009 06:10:38 GMT)
X-Complaints-To: niusy@onet.pl
NNTP-Posting-Date: Sun, 15 Nov 2009 06:10:38 +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