Article View: pl.comp.lang.python
Article #26765Re: python vs php - potrzebne argumenty
From: pakalk
Date: Sun, 01 Nov 2009 19:14
Date: Sun, 01 Nov 2009 19:14
143 lines
7233 bytes
7233 bytes
On Nov 1, 6:48 pm, "Jaroslaw Zabiello" <use...@onet.eu> wrote: > > >> To, że to wygląda jak kupa to jedno. > > > Jak dla mnie to ify takie kupowate nie sa :P > > 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 - oczywiscie nie badzmy paranoidalni - wowczas aplikacja staje i sprawdzamy w logach co jest nie tak. Bo chyba nie wyswietlamy userowi komnunikatu z bledem? > > Tego, że nie można w prosty i spójny sposób założyć pułapki na wszelkie, > możliwe błędy. Ale co to ma wspolnego z systemem wyjatkow? To jest system obslugi bledow. > > >> Podobnie z modelem obiektowym. Za pierwszym razem (w wypadku PHP4) > >> wyszło im to tak nieudacznie, że ten kod nie nadawał się do dalszych > >> poprawek. > > > Lepiej o tym nie mowic. To byla tylko proteza. > > Ta proteza pokazuje kompetencje programistycze tworców PHP. W PHP4, nie aktualnej i jedynej wspieranej wersji, czyli PHP5. W PHP3 w ogole obiektowki nie bylo - i co? To tez mamy krytykowac? To moze dorzucmy cos z PHP/FI, co co prawda nie ma juz nic wspolnego z rzeczywistoscia, ale fajnie tak dowalic, byle dowalic ;) > Dobrze, że nie zostano przy modelu z PHP4. Źle, że musiano to robić od > zera po raz drugi wprowadzając zamieszanie do już istniejącego bajzlu w > PHP. I źle, że to zrobiono znowu kiepsko. Czy kiepsko, to nie wiem. Ale jak dobrze zrobiono, to o co chodzi? > > LOL! Obiektowy model Javy jest swiatowym standardem - tu nie ma nic do smiania. > > 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". > Ale w Pythonie przynajmniej klasy są obiektami i nie trzeba w > ogóle używać tych metod statycznych bo do niczego nie są potrzebne. Nie trzeba uzywac, bo mozna zdefiniowac funkcje w modulach. Jakby sie nie dalo, to by trzeba jako metdoy statyczne, coby je zagregowac. Poza tym, to jest chyba jednak pozyteczne z tego wzgledu, ze mozna wtedy uzyc metod prywatnych w metodach publicznych - da sie tak zrobic z funkcjami? (Tzn. ustawic ich modyfikator na private? Nie znam sie na tyle - wiec pytam) > Pythonowe ma metody klasowe. 1. Metoda klasowa (np. w pythonie) == metoda statyczna (w np. Javie) 2. Metoda statyczna w pythonie == funkcja przyczepiona do klasy, nie uruchamiana w jej kontekscie. > > > Interfejsy sa nieobiektowymi konstrukcjami? > > Oczywiście że nie są. Już ci ktoś o tym napisał. Co z tego, ze napisal. Ja pisze, ze sa. Autorzy UML-a mnie popra. > Dodam jeszcze że > interfejsy są głupią konstrukcją. Znacznie lepsze są miksiny (jak w Ruby) To inna konstrukcja, a nie lepsza i raczej przypominajaca inline'owe klasy abstrakcyjne, ale nie pamietam dobrze, nie pisze na 100%. > 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. > Interfejsy nie mogą mieć > żadnej implementacji. To jest ich główna wada. To jest ich cecha, a nie wada. Fakt, ze klasy abstrakcyjne/wirtualne przy dziedziczeniu wielokrotnym moga sie lepiej sprawdzac. > > > Tzn. pythona bez podstawowego modyfikatora protected i __protezy dla > > private? :) > > Ruby i Scala mają kwalifikatory dostępu :P Co do Pythona, to już ci > odpowiadziano, że to kwestia bardziej konwencji, a nie zabezpieczeń. No to moge kazdy argument przeciw PHP zbywac tym, ze to kwestia konwencji, bo tak jest. > > >> Jest coraz wolniejszy w stosunku do innych języków dynamicznie > >> typowanych. > > > To zalezy od implementacji, ale nie znam dobrych benchamarkow. > > Jakie byś nie brał, PHP jest wolny. Szczególnie silnie to widać po > webowych frameworkach. Wszystkie są wolniejsze od dowolnego frameworka > napisanego w Ruby (Rails, Merb, Sinatra, Ramaze, etc.) czy Pythonie > (Django, Pylons, Tornado itp). A wspomniany wcześniej Symfony to chodzi > zupełnie jak żółw (Cake jest jeszcze wolniejszy!). Mozliwe. > > > Ci, ktorzy sie podszkola wola jave. > > Tylko skąd się bierze tyle konwertytów Javy do Ruby/JRuby? :) Java jest > językiem przestarzałym i ograniczonym. Ale ma dobrego Hotspota i kupę > ciekawszych języków zgodnych z JVM. Java nie jest taka zla. Po prostu jest sztywna ;) JRuby/Jython zapewniaja standaryzowana skryptowosc aplikacji, co czesto bywa bardziej pozadane od silnego typowania (choc z dobrymi narzedziami do tworzenia aplikacji, to roznie..). > > > Co tez nie znaczy, ze dobrych programistow PHP jest mniej niz Pythona > > czy Ruby. > > Myślę, że jest nawet mniej. Mało który dobry programista zostaje przy PHP. > Zresztą, nowoczesny programista musi być poliglotą, znać więcej niż jeden > język programowania. Takie czasy. A jak raz poznasz jakiś lepszy, to nie > będziesz chciał używać gorszego. Proste i logiczne. Ja np. używam PHP > tylko wtedy, kiedy muszę. Kiedy nie muszę, używam głównie JRuby. Prościej, > szybciej i wygodniej. Czemu nie Jython?
Technical Details
Message-ID:
<c3247d6d-5199-4c45-9825-772387effd7b@f16g2000yqm.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!lublin.pl!uw.edu.pl!newsgate.cistron.nl!newsgate.news.xs4all.nl!194.109.133.84.MISMATCH!newsfeed.xs4all.nl!newsfeed5.news.xs4all.nl!xs4all!feeder.news-service.com!feeder1.cambriumusenet.nl!feed.tweaknews.nl!postnews.google.com!f16g2000yqm.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>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!lublin.pl!uw.edu.pl!newsgate.cistron.nl!newsgate.news.xs4all.nl!194.109.133.84.MISMATCH!newsfeed.xs4all.nl!newsfeed5.news.xs4all.nl!xs4all!feeder.news-service.com!feeder1.cambriumusenet.nl!feed.tweaknews.nl!postnews.google.com!f16g2000yqm.googlegroups.com!not-for-mail From: pakalk <pakalk@gmail.com> Newsgroups: pl.comp.lang.python Subject: Re: python vs php - potrzebne argumenty Date: Sun, 1 Nov 2009 11:14:22 -0800 (PST) Organization: http://groups.google.com Lines: 164 Message-ID: <c3247d6d-5199-4c45-9825-772387effd7b@f16g2000yqm.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> NNTP-Posting-Host: 83.4.162.97 Mime-Version: 1.0 X-Trace: posting.google.com 1257102862 27410 127.0.0.1 (1 Nov 2009 19:14:22 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Sun, 1 Nov 2009 19:14:22 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: f16g2000yqm.googlegroups.com; posting-host=83.4.162.97; posting-account=rLTIYAoAAAAC0UY184o3dcMgnRpikGCw User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.27 Safari/532.0,gzip(gfe),gzip(gfe) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit