PHP vs Phyton

0

Chciałbym zacząć naukę któregoś z tych dwóch języków.Wiem,że u mnie w szkole w następnym roku lub w jeszcze następnym będę miał PHP.
Bardziej przemawia za mną Phyton swoją prostotą i w dodatku słyszałem takie pogłoski że PHPowcy mało zarabiają stosunkowo do dev Phytona i że on ma lepszą przyszłość.
Co radzicie ?

Riddle
Php jest zepsuty
J0
Jakbyś lubił pythona naprawdę to byś pisał php w pythonie.
zgub4
  • Rejestracja:ponad 10 lat
  • Ostatnio:około 8 lat
  • Postów:11
0

Przede wszystkim radzę nie sugerować się zarobkami. Ja osobiście wybrałbym węża ze względu na uniwersalność (możliwość robienia od małych hacker tool'i przez gry po web appki).

Zobacz pozostałe 2 komentarze
vpiotr
@n0name_l: tak po prostu jest że to właśnie Python często (najczęściej?) jest do tego wykorzystywany (i nie tylko do tego). A dlaczego tak jest? Zgaduję że może dlatego że ścieżka do budowania modułów w C/C++ w tym języku jest już dawno przetarta. A jeśli masz moduł w C, masz dostęp do całego API systemu.
n0name_l
@zgub4 Co się robi dużo łatwiej i od czego dużo łatwiej? @vpiotr Raczej przez niski learning curve dużo osób go po prostu zna, a jak nie zna to i tak coś będzie w stanie naskrobać, stąd jest popularny.
zgub4
@n0name_l chociażby pobranie xml'a z danego url i wyszukanie wszystkich interesujących mnie danych w formularzu zajmuje w porywach 5 linii kodu, a w C++/C przy dobrych wiatrach kilkadziesiąt :)
n0name_l
Sa inne języki niż C/C++.
zgub4
@n0name_l chciałeś przykład, dostałeś. Nie wiem skąd twój ból d**y. Wyraziłem swoją opinie, nikt nie każe ci się zgadzać.
0

Ja bym wybrał Django lub Pyramid bo w samym pythonie nie napiszesz webowej aplikacji po stronie serwera apki.

vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
0

Jeśli pokażesz nauczycielowi że zrobisz to samo bez jego pomocy w Pythonie to nie powinien Ci robić problemów.

PrzemolPrzemol
A nawet powinien być pozytywnie zaskoczony
Riddle
@PrzemolPrzemol u nas w technikum by to np nie przeszło. Raz jak zrobiłem klasę w pierwszym semestrze to Pani powiedziała że nie wolno XD szczytem jej możliwości były chyba operatory arytmetyczne.
Riddle
A co dopiero inny język.
vpiotr
@TomRiddle, wystarczy się zapytać. Wątpię żeby oficjalnie kazała wlec się za klasą. A jak by kazała to skarga przez rodziców.
Riddle
Obawiam się że to nie przez program tylko brak umiejętności. Przecież słowa klasa i obiekt wywoływały u niej epilepsję. Funkcje w kilku językach jak c, php i js to jej szczyt.
0

Tylko że PHP jest sporo szybsze od Pythona 3, a co dopiero PHP 7?
http://benchmarksgame.alioth.debian.org/u64q/php.html

Wizzie
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 7 lat
0

Szybkość nie jest najważniejszym priorytetem dla żadnego z tych języków, nie za bardzo widzę sens porównywania tego pod względem wyboru języka.

vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
0
Mały Shinobi napisał(a):

Tylko że PHP jest sporo szybsze od Pythona 3, a co dopiero PHP 7?
http://benchmarksgame.alioth.debian.org/u64q/php.html

Ten test pokazuje wyniki dla PHP7 (patrz stopka).

Niestety muszę zburzyć ten optymizm - w końcowym efekcie PHP jest jednak wolniejszy od Pythona. I to nawet bez numpy czy innych modułów C/C++ - wystarczy odpalić przy pomocy PyPy.

Wyniki u mnie dla nbody i 100000:

Kopiuj
Python 2.7.6

real	0m1.100s
user	0m1.096s
sys	0m0.000s

PyPy 2.2.1

real	0m0.095s
user	0m0.088s
sys	0m0.008s

PHP 5.5.9

real	0m0.647s
user	0m0.644s
sys	0m0.000s

Dokładny opis wersji:

PHP 5.5.9-1 Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
Python 2.7.6
PyPy 2.2.1 with GCC 4.8.4

edytowany 1x, ostatnio: vpiotr
MW
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:6
0
vpiotr napisał(a):
Mały Shinobi napisał(a):

Tylko że PHP jest sporo szybsze od Pythona 3, a co dopiero PHP 7?
http://benchmarksgame.alioth.debian.org/u64q/php.html

Ten test pokazuje wyniki dla PHP7 (patrz stopka).

Niestety muszę zburzyć ten optymizm - w końcowym efekcie PHP jest jednak wolniejszy od Pythona. I to nawet bez numpy czy innych modułów C/C++ - wystarczy odpalić przy pomocy PyPy.

Równie dobrze, skoro porównujesz standardowego PHP z PyPy, można spróbować pokusić się o porównanie PyPy z HHVM - wtedy będzie to wiarygodne porównanie dla "alternative implementation" obu języków. Trzeba natomiast przyznać, że różnica pomiędzy PHP 7 a Pythonem 3 jest dosyć wyraźna na korzyść tego pierwszego.

Ogólnie sam wybór pomiędzy oboma tymi językami jest mocno subiektywny. Python jest bardziej uniwersalnym językiem, ogółem zastosowań Pythona jest od groma więcej, niż PHP-a, można go użyć w skryptach sieciowych, przez standardowe aplikacje webowe, po zastosowania typu zarządzanie kontrolą startową wahadłowców. Składnia języka jest też na pewno bardziej uporządkowana od PHP. W odróżnieniu od PHP, trudniej jest nabrać złych nawyków, niestety do nauczenia się pisania porządnego kodu w PHP trzeba dużej dozy samozaparcia, intuicji, śledzenia również materiałów przygotowanych pod kątem innych języków (m.in. wzorce projektowe). Deweloperzy Pythona wydają się być też bardziej otwarci na zmiany, niż dev-owie PHP-a, chociaż "siódemka" daje pewne nadzieje na "dobrą zmianę" w tym względzie

Z takiego, a nie innego dotychczasowego podejścia deweloperów PHP-a wynika natomiast pewna zaleta tego języka, z punktu widzenia programisty - otóż język, nawet w nieco przełomowej wersji 7, zachowuję w maksymalnym, możliwym stopniu kompatybilność wsteczną i tak pisząc aplikację w PHP 5.6 masz sporą szansę skorzystać w niej z dobrodziejstw "siódemki", m.in. wzrostu wydajności. Dla programisty stricte zafiksowanego na pisanie aplikacji webowych (szczególnie dla celującego w działanie na pograniczu frontendu i backendu i szczególnie dla działającego na rynku polskim), w mojej subiektywnej opinii, PHP jest lepszym wyborem, jest coraz większy wybór naprawdę dobrych frameworków, gotowych do pisania biznesowych aplikacji, jest coraz więcej świetnych narzędzi deweloperskich, a sam język jest już teraz bardzo wydajny - w tych aspektach sytuacja wygląda lepiej, niż w Pythonie.

W kontekście pracy, czy też konkretniej zarobków podejrzewam, że patrząc globalnie lepiej wygląda to w przypadku Pythona, w praktyce natomiast, w większości przypadków, naprawdę dobry programista PHP zarobi porównywalne pieniądze do osoby mającej porównywalne umiejętności w Pythonie. Celując w rynek krajowy przewagę ma natomiast PHP, ze względu na popularność, większą ilość ofert. A tak naprawdę dla dobrego programisty nie ma większego znaczenia od którego języka zacznie swoją przygodę - dla doświadczonego programisty PHP, który będzie świadomy braków tego języka i będzie miał wolę przejścia na język typu Python, czy Ruby cały proces nauki nowej technologii powinien pójść gładko, natomiast programista Pythona nie powinien mieć problemu, aby w miarę szybko stać się produktywnym w PHP.

Wszystko zależy gdzie widzisz się za 5 czy 10 lat, czy chcesz mieć stosunkowo szybki start, jaka jest już ogółem Twoja wiedza na tym etapie, ile masz czasu aby poznać jeden z tych języków jeszcze przed rozpoczęciem pracy zawodowej, lub czy masz taką możliwość pracując w innym zawodzie / innej technologii.

vpiotr
"Trzeba natomiast przyznać, że różnica pomiędzy PHP 7 a Pythonem 3 jest dosyć wyraźna na korzyść tego pierwszego" - bez wyników testów? nie trzeba. Zrób zestawienie, załącz do postu - póki co to pustosłowie.
MW
Hmmm...https://benchmarksgame.alioth.debian.org/u64q/php.html? Jak to sam stwierdziłeś: "...Ten test pokazuje wyniki dla PHP7 (patrz stopka)...".
vpiotr
1) Nikt komu zależy na wydajności nie korzysta z gołego Pythona. To jak korzystanie z Excela bez użycia VB. 2) PyPy3 obsługuje skrypty Python 3 (prostsze skrypty nawet stare PyPy - patrz moje zestawienie).
NoZi
chyba nikt nie używa Python'a dla wydajności
vpiotr
@NoZi - mistrz ciętej riposty :)
0

Patrząc od strony bezpieczeństwa (tylko statystycznie, jest to złe porównanie, ale jakieś tam jest):
źródło www.exploit-db.com

Wyszukiwanie dla frazy "PHP":
7,857 total entries
Wyszukiwanie dla "Python":
51 total entries

To troszkę daje do myślenia.

vpiotr
Np. że PHP jest bardziej popularny w webdev...
MW
Fakt, że PHP jest popularny to jedno, drugie jest to, że jest kompatybilny wstecz, co ułatwia / umożliwia kiepskim programistom pisanie kiepskiego kodu. Pierwszy przykład z brzegu, z linka którego podał Dziadziuś: https://www.exploit-db.com/exploits/39711/ Gdzie tu podatność samego PHP...? To jest przecież kwestia takiego, a nie innego kodu przez programistę.
0

No to piszcie więcej Polskich tutoriali, jakieś książki do Pythona, Django, Pyramid, Flask im więcej jest materiału do danej technologii tym bardziej jest popularna. Dla mnie python jest łatwiejszy i prostszy od ruby. Railsy niby wprowadzają te nowinki bardzo szybko ale jakieś niestabilne na macach tylko działa prawidłowo. Już powstają ebooki epub, mobi, pdf o PHP a o pythonie nic, a szkoda chętnie bym nabył o nowym Django 1.9.6, Pyramid 1.7.

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)