L P

L P podskala.net

Temat: Dlaczego Python

Marek Wywiał:
Dodam jeszcze jedną ważną rzecz. W pythonie piszę sporo mniej kodu dlatego, że większość moich potrzeb realizują dostarczane z nim biblioteki (ew. doinstalowane).

W PHP spora część kodu to własnie pisanie na brakujących elementów na własne potrzeby (standardowe Java => PHP, czyli kolekcje, strumienie, downloadery, itp). Tak jest napisane sporo softu w PHP, wystarczy spojrzeć na źródła phing'a (prawie ant).

Pisałem kiedyś na potrzeby jednego projektu - listę liniową 3-głowową dwukierunkową. Do dyspozycji mając najbardziej złożona w PHP strukture danych, tablice - ktora moglem jedynie trawersować, gdyż php nie ma czegoś takiego jak odwolanie sie do konkretnego wewnetrzengo w tablicy wskaznika - 22kB skrypt - masakra ;) Pozniej zastapilem to stl-owa wersja po napisaniu extension. Masz racje, coż. To jest przykład docelowości pierwotnej.

L

Temat: Dlaczego Python

pomijając już Twoje perypetie z implementacją listy w 22kB, czy mógłbyś wytłumaczyć, co to jest "docelowość pierwotna"? google nie znajduje mi takiej frazy
L P

L P podskala.net

Temat: Dlaczego Python

Marcin Stefaniak:
pomijając już Twoje perypetie z implementacją listy w 22kB, czy mógłbyś wytłumaczyć, co to jest "docelowość pierwotna"? google nie znajduje mi takiej frazy

"Docelowość pierwotna języka PHP" - docelowo to nie miał być jezyk programowania a jezyk skryptowy do latwego tworzenia dynamicznych stron www. Takie sa postulaty pierwotne utozsamiane z pomysłem i w ogole powstaniem PHP. Posługiwanie się jezykiem to też zaleta skracania sobie myśli słowem - inaczej sformulowane dla google na pewno przejdzie.

L

konto usunięte

Temat: Dlaczego Python

Łukasz Podkalicki:
Marcin Stefaniak:
pomijając już Twoje perypetie z implementacją listy w 22kB, czy mógłbyś wytłumaczyć, co to jest "docelowość pierwotna"? google nie znajduje mi takiej frazy

"Docelowość pierwotna języka PHP" - docelowo to nie miał być jezyk programowania a jezyk skryptowy do latwego tworzenia dynamicznych stron www. (ciach)

Nie miał być i nie jest. To dobry język do robienia stron WWW i skryptów shella. Są ludzie, którzy implementują w tym biblioteki matematyczne lub algorytmy genetyczne - takich szczerze podziwiam. Ale fakty są takie, że taki sam program napisany w C++/Delphi/Java będzie kilka-, kilkanaście-, kilkadziesiąt razy szybszy, więc złożone procesy obliczeniowe nie mogą być wykonywane w skryptach.
To leży u podstaw założeń języków skryptowych - prostota i "luźne" typy. Czyli elementy hamujące wydajnośc.

http://shootout.alioth.debian.org/gp4/benchmark.php?te...
http://www.osnews.com/story/5602/Nine_Language_Perform...
http://www.timestretch.com/FractalBenchmark.html

konto usunięte

Temat: Dlaczego Python

Jak rownież należy pamietać o całej urodzie php(brak namespaceow, dziwaczny syntax sugar, brak jednej polityki rozwoju). Ja wiem że się narażam ale to co sie aktualnie dzieje w php mnie od niego odpycha. Cokolwiek by mówić, dla mnie sformułowanie 'bez php' jest rownoznaczne z 'lepiej'. Czemu? Bo np. php'owskie funkcje isNull i empty.
Marcin Lulek

Marcin Lulek Programista -
WebReactor

Temat: Dlaczego Python

michale ok, masz racje, w wielu sprawach i generalnie python > php, co nie znaczy ze w php mozna wiele ciekawych rzeczy stworzec, i mozna to naprawde zrobic wcale zgrabnie i "po bozemu".

Musisz zaufac na slowo :)

Do zastosowan webowych to naprawde w 85% (tak se strzelam) wystarcza :]Marcin Lulek edytował(a) ten post dnia 29.12.08 o godzinie 00:36
Marek Wywiał

Marek Wywiał Programista,
administrator,
instruktor

Temat: Dlaczego Python

W php zrobiliśmy spory projekt ponad 500tyś linii kodu (w tym biblioteki różne, więc nie tylko praca własna) i działa.

Problem zaczyna się gdy dzała za dobrze ;) ludzie chcą więcej opcji, większych obciążeń, rozpraszania po wielu serwerach, itp + zdażające się sigfault'y 'złap mnie jak potrafisz'.

Nieźle nas pogonił błąd w bodajże 5.2.3:
* (string) $SomeObjectZToStringiem - zwracało obiekt (tylo print $SomeObject używało __toString())
, który był przekazywany do innej funkcji (nie pamiętam w tej chwili jakiej), która rzucała sigfault'em jak zobaczyła obiekt zamiast stringa :)

Przeszliśmy nagle na te 15% gdzie nie wystarcza i co teraz? przepisać to wszystko na nowo? Ale to już nasz problem :)

btw. przy tej ilości wiedzy w kodzie, brak przestrzeni nazw to udręka.

Nie uważam, że PHP jest nie do używania, tylko przestrzegam by odpowiednio wybrać język względem planów rozwoju (my nie mieliśmy wyboru, kod zastany).

konto usunięte

Temat: Dlaczego Python

Łukasz Bandzarewicz:

Spróbuj w czymkolwiek innym w rozsądnym czasie napisać aplikację, która korzysta z zaawansowanych metod przetwarzania obrazów, sieci neuronowych i algorytmów genetycznych ;)

True jeśli chodzi faktycznie o inżyniera/technologa, Matlab po prostu jest do takich rzeczy, obecnie np. budowa i nauka sieci sprowadza się do wyklikania kilku elementów.

Z drugiej strony jeśli ktoś siedzi w temacie, a przy tym programuje w Pythonie to przy użyciu tego języka + SciPy, NumPy, PIL, PlotLib (są już całe śrocdowiska integrujące te biblioteki), nie będzie miał żadnych problemów, a efekt końcowy nie będzie odbiegał od Matlabowego (co więcej, w Pythonie można robic dużo
ładniejsze wykresy jak w labie :-)Dariusz Ormicki edytował(a) ten post dnia 30.12.08 o godzinie 17:45

konto usunięte

Temat: Dlaczego Python

Dla mnie z kolei Python zaczął się od przypadku. Jeden współpracownik rozwiązywał ze mną problem notując sobie pomysły "pseudokodzie" (czyli w Pythonie :) ). Rozwiązanie przemyśleliśmy i już miało paść "to teraz wystarczy to tylko zaprogramować", gdy padło "no to mamy zrobione". I pokazał mi wynik.

Tak zakochałem się w Pythonie.
Mateusz Jan Przybylski

Mateusz Jan Przybylski programista, BKF
Myjnie Bezdotykowe

Temat: Dlaczego Python

Do szybkiego prototypowania, podręcznych skryptów i jako kalkulator (konsole -> python -> 1<<17 -> 131072)

Dla bardzo wygodnych w użyciu tablic asocjacyjnych i innych silnych primitives. Dla dobrych bindings do Qt i KDE (sip) jeżeli potrzebuję jakąś małą aplikację okienkową. Dla eleganckiego syntaxu.

Napisałbym `dla lambd', ale jeszcze nie nauczyłem się ich używać :/

A największą wadą jest dla mnie brak możliwości szybkiego statycznego sprawdzenia syntaxu, zgodności typów i innych aspektów, co w normalnych językach wykonuje kompilator.Mateusz Przybylski edytował(a) ten post dnia 09.01.09 o godzinie 17:12
L P

L P podskala.net

Temat: Dlaczego Python

Mateusz Przybylski:
Do szybkiego prototypowania, podręcznych skryptów i jako kalkulator (konsole -> python -> 1<<17 -> 131072)

Dla bardzo wygodnych w użyciu tablic asocjacyjnych i innych silnych primitives. Dla dobrych bindings do Qt i KDE (sip) jeżeli potrzebuję jakąś małą aplikację okienkową. Dla eleganckiego syntaxu.

Napisałbym `dla lambd', ale jeszcze nie nauczyłem się ich używać :/

A największą wadą jest dla mnie brak możliwości szybkiego statycznego sprawdzenia syntaxu, zgodności typów i innych aspektów, co w normalnych językach wykonuje kompilator.

Typ prosty(primitive data) to taki typy, ktorego wartości są uporządkowane. Znnany jest poprzednik i nastepnik dla kazdej wartości z przedziału, ktory ma zarówno początek jak i koniec. W Py to bedzie np. int czy bool. Tablica (Array) jest typem złożonym, tablicowym. W Py cześciej używa sie Słownika(dict) - typu złożonego rekordowego g'woli ścisłości - w prostym uzyciu przypomina tablice asocjacyjna.

Tutaj o konstrukcji lambda mozesz poczytać.
http://www.secnetix.de/olli/Python/lambda_functions.hawk

LŁukasz Podkalicki edytował(a) ten post dnia 09.01.09 o godzinie 21:56

konto usunięte

Temat: Dlaczego Python

O ja, pojazd na intelektualiste :). A pamiętacie obaj o tym że lamdy sa wolniejsze od normalnych funkcji. Mniej czytelne i wolniejsze :).
L P

L P podskala.net

Temat: Dlaczego Python

Michał Domański:
O ja, pojazd na intelektualiste :). A pamiętacie obaj o tym że lamdy sa wolniejsze od normalnych funkcji. Mniej czytelne i wolniejsze :).

:) ale mi poleciałeś ;P

To jest tak jakbys powiedział, że w C++ szybszą konstrukcją jest "if" niż "switch". I tak i nie. Zależy dla jakiej liczby elementów. Dla większej liczby elementów (10 000 np.) tak ..masz racje. Dla malej ilości elementów (np. 200) nie.

L

Temat: Dlaczego Python

Ja wiem, że to ma być taki luźny wątek, do dyskusji, ale "nóż się w kieszeni otwiera" jak słysze takie definicje typów prostych, albo że lambdy są wolniejsze od normalnych funkcji.

konto usunięte

Temat: Dlaczego Python

Funkcja lambda o ile pamietam w pythonie jest wolniejsza od normalnej funkcji ze wzgledu na lookupy ktore musi zrobic interpreter
L P

L P podskala.net

Temat: Dlaczego Python

Marcin Stefaniak:
Ja wiem, że to ma być taki luźny wątek, do dyskusji, ale "nóż się w kieszeni otwiera" jak słysze takie definicje typów prostych, albo że lambdy są wolniejsze od normalnych funkcji.

Troche przesadziłem, fakt ;P
L P

L P podskala.net

Temat: Dlaczego Python

Michał Domański:
Funkcja lambda o ile pamietam w pythonie jest wolniejsza od normalnej funkcji ze wzgledu na lookupy ktore musi zrobic interpreter

Prawda ale sprobuj doświadczalnie mały benchmark zrobic dla dlambda i def.

Temat: Dlaczego Python

a do tego zdisasemblować bytecode (import dis; dis.dis(funkcja)) w obu przypadkach i zobaczyć czym się różniMarcin Stefaniak edytował(a) ten post dnia 13.01.09 o godzinie 12:18

konto usunięte

Temat: Dlaczego Python

Zgadzam sie, zwyczajnie rzadko operuje na zbiorach < 1000 elem. Lambde uwazam za dziwna rzecz w pythonie. Słabo sie skaluje, czesto jest nieczytelna i w zasadzie cieżko stwierdzić że jest niezbędna. To tak samo jak używanie monad w pythonie. Da się. Jest nawet parser oparty o to. I jest przeraźliwie powolny. Po prostu sprytne/cwane/hakerskie manewry algorytmiczne z posmackziem obfuskacji zwyczajnie często dają po łapach. Sądzącym inaczej polecam sobie wpisac 'import this' w konsole pythona :)

Temat: Dlaczego Python

Oczywiście możesz sobie uważać o lambda w pythonie, co tylko ci się żywnie podoba. Chętnie natomiast zobaczę przykład kodu w pythonie, oraz tego samego kodu ze zmiana jakiejś definicji funkcji na postać lambda, taki że druga postać kodu będzie wolniejsza od pierwszej.

Następna dyskusja:

Python + GUI




Wyślij zaproszenie do