PHP

#edit lecseréltem egy másikra, talán ez még aktuálisabb is.

Hozzászólások

Ja mert ha van egy nyelv, ami az összes másik trendi, idealista, bloat-nál régebbi és sokkal jobban ki van optimalizálva (lásd PHP7-es gyorsulások), azt illik továbbra is lenézni, mert nem a hatékonyság számít, hanem a trendiség.

Egyszerűen, a fejembe nem fér, mire föl fősodratúék részéről ez az egyre nagyobb PHP gyűlölet. Messze hasznosabb nyelv a szélsőségesen idealista, bloated Python-nál, JavaScript-nél, Java-nál, Scala-nál, meg az összes többi trendnyelvnél.

Ja hogy elsőként csupán egy kényelmi feature vélt hiányával tudsz csak belekötni. Egyébként a válasz igen. A PHP teljesen jól kezeli az UTF-8-at, az mb_ kezdetű függvények segítségével, illetve regexp illesztéseknél is a /u flag megadásával. A többire ott az iconv().

Egyszerűen arról van szó, hogy marketing-idealistáék elkezdték démonizálni az egyetlen normális szintaxisú és hatékony sebességű scriptnyelvet, hogy a saját szarjaikat (Python) benyalassák a hipster-trendi, kávé-kód konverziós, minőséget a menőség alá rendelő, fősodratú fejlesztőközönséggel.

A tudományos világban a Python egy nagyon népszerű nyelv, mert szinte mindenhez van már egy modul, így gyorsan lehet vele haladni. Tegyük fel, hogy egy kiértékelő programot Pythonban tizedannyi idő alatt megírok, mint C-ben, a futási sebességek között meg van max. 10%-nyi előnye a C-nek, mert I/O-limitált a probléma, illetve sok Python csomag is C-s libeket használ a háttérben, így majdnem natív a teljesítménye. Így sem adnád áldásodat a Pythonra? Pedig rengeteg energia megspórolható a rövidebb fejlesztési idővel is.

Azért ezt mérd is meg, ha megvan a kód több nyelven, fel tudom ajánlani az egyébként semmire se jó tesztelő környezetemet: https://github.com/haa-zee/proc_speedtest

A python3, ha integer számolás van benne, iszonyatosan lassú a 2-höz képest. :(
Amit most helybő sikerült cáfolni, szóval k.ra nem értem az egészet... egész aritmetika bizonyos formája iszonyat lassú lett a hármasban, most mégis ugyanazt produkálja, mint a kettes...

PHP-vel nincs semmi bajom, eleg gyakran hasznalom (raadasul nagyon sokszor nem webre, hanem altalanos scriptnyelvkent). A Pythonnak viszont van egy eleg nagy elonye: csomo matematikai feladatra fel tudja hasznalni (C-s libeken keresztul) a videokartyat, amivel aramot es idot is sporolsz. Mondjuk a NumPy eleg jo lesz egy PHP-ban megirt szamolashoz kepest. Matrixmuveletek meg sokszor kellenek. Pythonban gyakorlatilag csak annyit irsz le, hogy mit mivel szorozzon, a tobbit megcsinalja a HW.
Aztan - bar elegge specifikus, de szamolasigenyes feladat - ott a TensorFlow. Ha neuralis halokkal akarsz valamit csinalni, megint a Python all jobban (bar van PHP-s NN lib is).

--
Any A.I. smart enough to pass a Turing test is smart enough to know to fail it. -Ian McDonald

Félre ne érts: ha lehet ilyet mondani, én szeretem a pythont.
De amikor bitről-bitre ugyanaz a szkript 31s slatt fut 2-esben, 66s alatt 3-assal... azért az meredek (int kezelés változása :( )
Bővebbem: https://github.com/haa-zee/proc_speedtest/blob/master/README.md
Illetve mellette a forráskód.

Újra megkeresem: én úgy emlékszem, a számok tárolásával van gond. Konkrétan az int max. ... már nem emlékszem pontosan, talá 64 bites lehet, míg a 3-as alatt bármekkora, kb. olyan tárolási formára tippelnék, mint ami az IBM mainframe packed decimal volt... Ez viszont jelentősen lassít rajtuk. :(

Két külön világot próbálsz egy kalap alá venni. Ha tudományos kutatásokra (kísérletezésre, PoC-olásra) használnak Python-t, arra adnám az áldásom.

Arra viszont semmiképp, hogy olyan cuccokat írjanak benne, amit másnap milliók használnak majd. Vegyék a fáradságot és írják meg C-ben. Oda is van egy rakat lib.

A webes eset se olyan egyértelmű. Ha már egy rendes oldalról beszélünk, ami mögött van adatbázis és valamilyen cache, akkor a Python rész az idő jelentős részében csak amolyan kapocsként működik, és az oldal sebességét az adatbázis lekérdezések fogják limitálni. Ha minden SQL lekérdezést, amit csak lehet, cache-be rakok, illetve használok pl. Redis-t is (C-ben írt irtó hatékony in-memory key-value adatbázis) a nézetek cachelésére, akkor is pazarlónak tartanád a Pythont?

Az itt is igaz lenne, hogy Pythonban töredék idő alatt elkészülne a kód, mint C-ben. Most hirtelen nem is tudnék C-ben írt, Python-Django keretrendszerhez hasonlót mondani. Illetve bele se merek gondolni, hogy miként kezelik a segfaultokat egy C-s webes alkalmazásnál (hiba mindig lehet a kódban).

Vagy mondjuk a két világot vegyítve: Python + lassú részekre dedikált függvényt írni pl. Rust-ban? A Rust rész olyan gyors lesz, mint a C (vagy még gyorsabb is), sosem fog segfaultolni, emellett megmarad a Python gazdag ökoszisztémája is.

> #edit lecseréltem egy másikra, talán ez még aktuálisabb is.

Azert a regit megtarthattad volna legalabb link formajaban, epp linkelni akartam tovabb :)