PHP vs Python

1

Przeczytałem ostatnio, że w Pythonie jak najbardziej można pisać aplikacje webowe. Dlaczego wobec tego php jest popularniejszy? Z czego to wynika? Takie są zalety i wady jednego i drugiego? Do czego lepiej nadaje się PHP, a do czego Python? Wybaczcie gradobicie pytań początkującego, ale to dla mnie bardzo ważne, żeby zapytać o to ludzi, którzy znają się na rzeczy.

Pozdrawiam!

1

PHP od zawsze kręcił się przy stronach internetowych i ma najtańsze hostingi.

To tyle.

0

Python nadaje się do wszystkiego, a PHP tylko do webówki. Python jest dużo lepiej zaprojektowanym językiem niz PHP. PHP to zlepek wszystkiego, bez żadnego pomyślunku.

**Dlaczego PHP jest popularniejszy? **
Powiedzmy, że masz zwykłą stronę HTML. Zmień rozszerzenie z .html na .php i voila. Masz już działający skrypt PHP do którego hosting znajdziesz za półdarmo. Teraz możesz powoli zaczać zmieniać jakieś pierdoły, dodawać pierwsze tagi, w stylu <?= date('Y-m-d H:i:s'); ?> i patrzeć jak Twoja strona się rozwija.

W Pythonie nie ma tak łatwo.

1

PHP (Personal Home Page) tak jak @spartanPAGE wspomniał od zawsze kręcił się przy stronach internetowych.
Natomiast Python ma nieco szersze zastosowanie. Można go wykorzystywać również do machine learningu, analizy danych, automatyzacji, pisania różnych scraperów, tworzenia GUI, networkingu itp.

0

aby nie wchodzić znów w jakąś bitwę, do PHP jest więcej materiałów jak i więcej pracy, bo i cmsy na tym stoją, do Python/Django aż tak kolorowo nie jest, dodatkowo wymagania są całkiem spore, z tego co widzę to właściwie w większości taki solidny web dev minimum na średnim poziomie

0

No ok Panowie, dzięki za odpowiedzi, chociaż mam wrażenie trochę ideologiczne nazbyt, nie chciałem wkładać kija w mrowisko. Wiem, że Python ma szersze zastosowanie, ale ja chciałbym uczyć się go właśnie do wykorzystania w webówce. I teraz: jakie mogę napotkać problemy? Co masz na myśli @spartanPAGE, że php ma najtańsze hostingi? Trochę nie rozumiem. Czyli o ostatecznie php jednak lepiej nadaje się do web? Z czego to wynika? Jest szybszy, lepiej się sprawdza w web z powodu...?

Wielkie dzięki za wypowiedzi :D

No i w sumie pytanie koronne: czy skoro php bardziej nadaje się do web, to czy warto w ogóle się uczyć Pythona pod tym kątem?

0

No, ale zależy co chcesz robić?
Jak chcesz pisać Scrapery to lepiej wybrać Pythona, bo na backendzie wszystko ładnie zaimplementujesz (do PHP nie jestem przekonany). A jak chcesz zwykłe strony SPA to może lepiej jakiś JSowy framework wybrać.

Hosting to serwer na którym będziesz mógł trzymać "swoją stronkę". Wychodzi na to, że jeżeli strona jest w PHP napisana to te serwery są tańsze.

0

@Dago napisałem Ci z czego to wynika. PHP nie jest lepszy, ani szybszy, ani nie sprawdza się w web lepiej niż Python. Po prostu kiedyś zyskał w Webie większą popularność, a później to już poszło lawinowo. W tej branży sam język ma niewielkie znaczenie. Bardziej się liczą inne rzeczy np. ekosystem, czy liczba programistów na rynku, która zna daną technologię i których można zatrudnić.

Mimo to, że PHP jako język ssie, to stoi na nim kupa systemów CMS, ma dużo lepiej rozwinięty ekosystem, przez co jest więcej gotowych paczek, które możesz wykorzystać, no i jest mnóstwo ofert pracy w PHP.

To trochę jak javascript. Sporo osób uważa, że beznadziejnie zaprojektowany (ja akurat w tym temacie jeszcze za mało odrosłem od ziemi, zeby sie wypowiadać, więc powtarzam opinię innych), niby jest jakiś Elm, czy coś, ale javascript ma tak gigantyczny ekosystem i tak dużo ludzi go zna, że po prostu króluje w przeglądarkach.

Jeżeli chcesz szybko znaleźć pracę w webie, to moim zdaniem będzie Ci łatwiej jeżeli nauczysz się PHP.

1

W PHP-ie szybciej skręcisz jakąś "stronkę" bo nie musisz się nic uczyć.
W najprostszym przypadku instalujesz Wordpressa, dokładasz szablon, poprzestawiasz kilka widgetów i masz, choćby coś takiego: http://itshelf.net/
(zero kodowania)

Tak samo zrobisz sklep, CRM, forum (w oparciu o Wordpress).

W Pythonie tego masz co kot napłakał. W Pythonie robi się bardziej strony na zamówienie - od początku do końca. Mało jest takich gotowych klocków jak do Wordpress (z tego co się orientowałem).

A który język jest popularniejszy czy składniowo piękniejszy czy bardziej uniwersalny to wiadomo.

0

no właśnie w Pythonie, zwłaszcza w mniejszym mieście nie zarobisz tak szybko hajsu, szczególnie ze słabym frontem, w PHP szybciej coś wyklepiesz, jak i zarobisz nawet bez frontu, szczególnie jak rozszerzysz o jakiś FW MVC, OOP, SQL, a przejść na innych język jak będziesz już bardziej świadomy zawsze można

0

Dzięki wszystkim za wypowiedzi. Pracy w webie nie szukam i nie zamierzam, robię SEO i chcę sobie trochę pomóc jakimiś skryptami/programami, bo irytuje mnie fakt, że nie umiem. Tak intuicyjnie wybrałbym PHP, choćby ze względu na powszechność, ale po pierwszych kilku godzinach z jednym i drugim zdecydowanie bardzie ciągnie mnie do węża. Dlatego tak Was odpytywałem. Ostatecznie stwierdzam, że zostanę przy wężu na start, a jak się rozwinę to będę myślał o ogarnięciu PHPa. To może jeszcze jedno pytanie: przejście z węża na PHP boli/może zaboleć? Będzie trudno? Totalnie co innego?

3

Nie będziesz chciał przejść z węża na słonia :P

1

Jak nie robisz całych stron tylko jakieś dodatkowe narzędzia czy podstrony to Python będzie lepszym rozwiązaniem na dłuższą metę.

0
vpiotr napisał(a):

W Pythonie tego masz co kot napłakał. W Pythonie robi się bardziej strony na zamówienie - od początku do końca. Mało jest takich gotowych klocków jak do Wordpress (z tego co się orientowałem).

Bo w phpie się nie robi stron na zamówienie tylko klepie na darmowych szablonach w wordpressie, geniusz.

0

A czy do Node jest jakiś mały framework do pisania stron jak w Ruby dzięki Sinatra i RoR? Z tego co widzę Node najbardziej nadaje się do czatów z frameworkiem Express.

5

Większość postów nacechowana dziecinnym uprzedzeniem do php.

Pracuje z kumplem nad projektem, który łączy backend w php z modułami w pythonie (korzysta z bibliotek matematycznych etc). Wystawiamy sobie różne API do komunikacji, przeglądamy wzajemnie kod i w 80% to jest dokładnie to samo, tylko składnia inna. W obu językach są projekty które kopiują dokładnie te same idee.

Myślałem, ze tu wyskoczy jakaś dyskusja z porównaniem możliwości największych bibliotek do ORM w obu językach, obsługi kolejek i innych ważnych dla webdev rzeczy, coś o skalowalności czy cacheowaniu. Naaat.

Autorowi polecam podejmowanie życiowych decyzji w oparciu o własny rozsądek :)

0

Też liczyłem na bardziej techniczne wyjaśnienia/porównania. Nie znam się za dobrze, ale doczytałbym i miałbym co rozkminiać :D Także jak ktoś ma czas i chęć jeszcze pognębić ten wątek to zapraszam (:

0

Przypuśćmy że chcę napisać chat video, głosowy z kamerkami erotycznymi oparty na web socketach. Na którym chcę oczywiście zarabiać na kontach premium sms, paypay itp. Obecnie do tego wykorzystuje się technologię Node/Express w którym piszemy w JavaScript/ES6. Pytanie po co mi się uczyć drugiego języka programowania, aby pisać na serwerze, jak powstało już Node? Jeden język JavaScript do wszystkiego, dodatkowy plus to taki że Node działa na kompilatorze V8 i jest szybsze od Pythona i PHP. Jakie zalety daje mi taki powolny język skryptowy, gdy mam szybkie ECMAscript6 które ma nawet przyzwoitą składnię w porównaniu do PHP. ktoś napisze, a bo Node nie nadaje się do prostych stronek jak Django, RoR, Sinatra czy Laravel. Ależ nadaje są frameworki Connect.js czy Hapi.

0

jak już pisaliśmy, szczególnie dla osoby początkującej php ma plusy w postaci sporej dokumentacji, praktycznie zerowej instalacji i środowiska które ma każdy hosting, ot wrzucasz skrypt-działa i tyle, nikt tu nie umniejsza innych języków

0
Desu napisał(a):

@Dago napisałem Ci z czego to wynika. PHP nie jest lepszy, ani szybszy, ani nie sprawdza się w web lepiej niż Python. Po prostu kiedyś zyskał w Webie większą popularność, a później to już poszło lawinowo. W tej branży sam język ma niewielkie znaczenie. Bardziej się liczą inne rzeczy np. ekosystem, czy liczba programistów na rynku, która zna daną technologię i których można zatrudnić.

Mimo to, że PHP jako język ssie, to stoi na nim kupa systemów CMS, ma dużo lepiej rozwinięty ekosystem, przez co jest więcej gotowych paczek, które możesz wykorzystać, no i jest mnóstwo ofert pracy w PHP.

To trochę jak javascript. Sporo osób uważa, że beznadziejnie zaprojektowany (ja akurat w tym temacie jeszcze za mało odrosłem od ziemi, zeby sie wypowiadać, więc powtarzam opinię innych), niby jest jakiś Elm, czy coś, ale javascript ma tak gigantyczny ekosystem i tak dużo ludzi go zna, że po prostu króluje w przeglądarkach.

Jeżeli chcesz szybko znaleźć pracę w webie, to moim zdaniem będzie Ci łatwiej jeżeli nauczysz się PHP.

https://benchmarksgame.alioth.debian.org/u64q/php.html
https://blog.famzah.net/2016/02/09/cpp-vs-python-vs-perl-vs-php-performance-benchmark-2016/
https://www.reddit.com/r/PHP/comments/3vfhrv/php_7_is_faster_than_python_3/

@topic
PHP ma niski próg wejścia i jest po prostu popularniejsze w webówce - narzędzi, tutoriali (choć te bardzo często niestety bardzo niskiej jakości ze względu na niski próg wejścia), frameworków do tego przeznaczonych, napisanych w tym języku jest tym samym też więcej.
Część komentarzy zarówno tutaj jak i w innych miejscach w internecie dotyczących PHP obecnie mija się z prawdą, więc lepiej jak sam zaczniesz coś pisać i sam zdecydujesz, który język bardziej ci się podoba.

0

Ja o PHP mam trochę inną opinię, i proszę nie odbierać tego jako jakąś prowokację. Ale patrząc na znajomych którzy w PHP coś sobie tworzą, gdy dzielą się swoim kodem, to wygląda trochę jak dodawanie sobie męskości przez sposób w jakim się z nim obnoszą. Ja na tym etapie współczuje piszącym w PHP, bo żeby w ten sposób reagować, musieli się namęczyć. W Pythonie idzie wszystko w miare prosto, choć tutoriali jest mniej. Ale funkcjonalność możliwa do wyciągnięcia, setki możliwości ujęcia jednego problemu, oraz przede wszystkim optymalizacja czyli wybór najlepszego wyjścia. Według mnie dają więcej satysfakcji niż szukanie błędu gdzie się psuje w gąszczu znaczków. Oczywiście to tylko moja opinia z poziomu obserwatora, po przeglądaniu dawien dawno tutoriali do php i pythona w web dev'ie. Z tym że mogłem faktycznie źle trafić z tutorialem, bo skoro jak wyżej powiedziano php ma niski próg wejścia, to tutoriali może być masa kiepskich ;p.

Czym można spawdzić optymalizacje strony?
https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fpl.python.org%2Fforum%2F&tab=desktop
(To tylko jedno z narzędzi ;p)

5

Pozwolę sobie dodać linka do mojego posta: PHP7 czy warto?

Wiemy o wadach PHP: o tym, że jest słabo typowany, o bałaganie w nazewnictwie. Porozmawiajmy jednak o różnicach, bardziej merytorycznie, mniej emocjonalnie.

Wydajność: PHP7 nieźle przyspieszało. Jest szybsze od Python 2 oraz Python 3. Jeżeli oczekujesz od Pythona wydajności, może powinieneś pomyśleć o PyPy - alternatywnej implementacji języka Python.

Niekonsekwencje w nazewnictwie: Jasne, w PHP niektóre funkcje stosują podkreślenie (_) a niektóre pisane razem. Czyli mamy np. strpos() oraz in_array(). Weźmy teraz Python. Wiele metod czy funkcji pisanych jest małymi literami, bez znaku podkreślenia, bez camel case. Przykład: "foo".isalpha(). Mimo wszystko mamy coś takiego jak PEP, który zaleca standard nazewnictwa metod i funkcji. Zaleca on stosowanie podkreślenia w nazwach metod czy funkcji. Jednak biblioteka Pythona się do tego nie stosuje (pewnie zaszłości historyczne) i mamy metody pisane łącznie. Z drugiej strony mamy np. metodę is_integer() która jak widzicie - już stosuje znak podkreślenia. Mamy tutaj niekonsekwencje w nazewnictwie. Pomijam fakt, że w wielu bibliotekach nazwy metod pisane są za pomocą camel-case.

Atrybuty private oraz protected: W Python nie mamy tego typu słów kluczowych. Jeżeli chcemy, aby dane pole było prywatne, dodajemy przed nazwą znak _ informując innych programistów, że jest to pole prywatne. Jednak dla interpretera nadal będzie to pole publiczne. Co ciekawe, gdy użyjemy podwójnego znaku podkreślenia, sytuacja wygląda inaczej.

class Foo:

    def __init__(self):
        self.__bar = 1

f = Foo()
print f.__bar

AttributeError: Foo instance has no attribute '__bar'

Interfejsy: Jak w Pythonie zadeklarować interfejs? Nie ma słowa kluczowego interface. Trzeba za to importować moduł abc. Niefajne to, nieintuicyjne.

Składnia: Niektórzy lubią, niektórzy nie. Ja osobiście preferuje składnie podobną do tej z C#. W Pythonie za to można pisać "ciekawe" jednolinijkowce: {k: v for k, v in self.__dict__.iteritems() if not isinstance(v, Foo)}.iteritems(). Niektórzy chwalą, inni by powiedzieli że nieczytelne.

Dekoratory: Tego nie ma w PHP. Chcesz aby metoda była statyczna? W PHP używasz słowa kluczowego `static. W Python?

class Foo:

    @staticmethod
    def bar():
        return 'bar'

print Foo.bar()

Typehint: W PHP: function foo(int $a, string $b). W Python? Chyba w 3.x to dodali, tak?

Dziedziczenie: PHP umożliwia dziedziczenie po jednej klasie. Python po wielu. W PHP mamy za to coś takiego jak traits które mają rozwiązać problem braku dziedziczenia po wielu klasach:

class Foo 
{
    use traitA, traitB;
}

Prostota: IMHO PHP jest prostsze dla newbie. Łatwiej jest jednak pisać "zły kod". Zły kod, tzw. spaghetti, czyli pomieszany kod HTML z PHP. Jeżeli zaczynacie przygodę z PHP, to od razu po opanowaniu podstaw, polecam zacząć pisać przy użyciu jakiegoś frameworka.

Rynek pracy: W PHP jest więcej ofert. Niestety wiele z nich to "klepanie stronek" z WordPress, Joomla. Niestety te produkty nie są dobrze napisane, jakość kodu jest dość niska. Na początek może i ok, ale osobom ambitnym szybko się znudzi.

O różnicach można by pisać i pisać... Dla jednego to, co wymieniłem, może być zaletą, a dla drugiego wadą.

0

Te porównania Adama są słabe i generalnie jeśli się w obu językach się nie wymiata to raczej to nie ma sensu pokazywać, że jedno jest jaśniejsze od drugiego.

0

Teraz jak powstało Node po co Python i PHP? Przecież Node szybkością dogania JVM.

0

Może po to, że nie nadaje się do wszystkiego?

0
Zimny Rycerz napisał(a):

Teraz jak powstało Node po co Python i PHP? Przecież Node szybkością dogania JVM.

To nie ta sama grupa odbiorców. poza tym wrażenia z produkcji są często średnie. Python jest bardzo uniwersalny i bardziej dojrzały.
https://blog.geekforbrains.com/after-a-year-of-using-nodejs-in-production-78eecef1f65a

I te narzędzia do budowania grunt, gulp, webpack, teraz yarn... milion innych. Żaden tool nie jest w stanie utrzymać się kilku miesięcy i za chwile musi być zaorany.
Potrzebujemy DZIAŁAJĄCYCH rozwiązań. Koledzy też coś popełnili w Node i nie chwalą jakoś szczególnie.

Poza tym Python może mieć to samo co Node.js
http://masnun.rocks/2016/11/17/exploring-asyncio-uvloop-sanic-motor/

A jak tak gdybamy to czemu nie Go?
https://medium.com/@tjholowaychuk/go-blows-away-node-in-pretty-much-every-way-3b412b5050d8
https://medium.com/@tjholowaychuk/farewell-node-js-4ba9e7f3e52b
Wpisy popełnione przez jednego z najbardziej udzielających się contributors w Node.js , huh ?
Z tym, że Go ma dość wąskie zastosowania.

0

Ja wybrałem PHP z prostego względu .. posiada klamry :D Dobry programista napisze dobry program i w tym i w tym. O szybkości działania nie myśl bo wszystko jest zbliżone do siebie że różnicy nie zauważysz no chyba że będziesz robił zaawansowane rozproszone obliczenia cudownych danych magicznymi algorytmami.
Najlepszy test? Stwórz stronę/aplikacje w jednym i w drugim identyczną. I zobaczysz w którym przyszło ci łatwiej, mniej mordęgi było, łatwiej sie debugowało itp.
A reszta jest mniej ważna. Najwazniejsze to polubić swój język programowania tak, że jak pójdziesz kiedyś do pracy nie będziesz się męczyć przy tym co robisz.

0

Python daje po prostu więcej frajdy... Jeżeli zaczniesz od Pythona to PHP będziesz omijać szerokim łukiem...

1 użytkowników online, w tym zalogowanych: 0, gości: 1