Új hozzászólás Aktív témák
-
FTeR
addikt
az érved ott megdől, h php már rég nem arra van hazsnálva, amire kitalálták.
a php egy perl klón script nyelvnek indult és mindenféle koncepció nélkül kapaszkodott fel webserver OOP-ig.
a probléma a koncepció hiányával és verziókezeléssel van. ez legjobban a függvénynevekben követhető, mint a pl mysql_real_escape_string, mert az eslő verzió nem sikerült elég real-re. a string függvények jó példák még, ugyanarra a feladatra van 6 függvény, amik 6 féleképpen kell meghívni és egyik sem igazán jó.összehasonlításképpen, a C# is egy bloatware, ami nincs leragadva egy metodikánál, mégsem akkora káosz mint php.
-
ddekany
veterán
Egyrészt ezek ált. később jöttek mint amit ki kéne ütniük. Mint mondtam, szükségszerűen tanulunk belőle, ha használunk egy nyelvet, a következő így (remélhetően...) jobb lesz.
Másrészt, jókor, jó helyen, megfelelő fókusszal/marketinggel, megfelelő nagy céggel mögötte... ezek fontosak, és egyik sem függ a nyelv tervezési minőségétől. Pl. lehet hogy ha, tényleg csak hasra, anno a Python elkezd fókuszálni a shared hostingra és az alacsony belépési korlátos (vagy mi ez magyarul) webes programozásra, akár némi kompatibilitási törés árán, akkor most az lenne nem PHP. De hát mással voltak elfoglalva...
-
bambano
titán
a jól skálázódásnak feltétele lenne az állapottér mentése, ami, tudtommal, sem alap php-ben, sem a hozzá gyakran használt webszerverekben sincs meg. ergo php egyáltalán nem alkalmas skálázódó webszervizek írására.
az meg pazarlás, hogy alap php-t mindig újra kell fordítani.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
ddekany
veterán
"ergo php egyáltalán nem alkalmas skálázódó webszervizek írására."
Memcache és társai... persze bénák ahhoz képest, mint ha vannak valódi hosszú életű objektumaid.
"az meg pazarlás, hogy alap php-t mindig újra kell fordítani"
APC és társai ezért vannak. Persze először én is nagyon csodálkoztam, hogy ez nem alap.
-
FTeR
addikt
egyértleműen C#. ha végigköveteda nyelv fejlesztését, egyértelmű, hogy az legelejétől kezdve erős koncepció mentén haladnak, új fícsöröket mindig a meglévő bázis függvényéáben implementálnak.
ne értsük félre, mint #148, ez önmagában nem jelenti azt, hogy a világ legjobb nyelve, minden tökéletes benne, hibátlan és mindenkinek ez a kedvenc nyelve.
ez azt jelenti, hogy az alap koncepciót elsajátíva képes vagy felhasználni a tudást új fícsörök elsajátítására. ha a koncepció egységes és ismered azt a koncepciót, akkor a dokumentáció bújása nélkül képes vagy számodra új fícsört/függvényt használni.
ezzel szemben php-ban még nagyobb rutin mellett is rendszeres látogatója vagy a php.net/manual-nak.js meg egyértelmű, tény, hogy egy alpha verzió került netscape-be, ami a csoda folytán túlélte a történelem viharait és azóta is szívunk vele. viszont jól jelzi a rugalmasságát, hogy mindne problémája ellenére a különböző famework-ök segítéségre miylen sokra vitte.
[ Szerkesztve ]
-
floatr
veterán
Itt már rég nem arról van szó, hogy a nyelv tervezési metodikája hogyan formálja az egészet, mert egy bizonyos szint után már az ökoszisztéma a meghatározó. Ha azt nézed h a C++ mekkora kínlódás az ATL környékén, akkor ahhoz képest hihetetlen megkönnyebbülés a QT-alapú fejlesztés.
Visszakanyarodva a topichoz nekem bejön a JS ilyen irányú "fejlesztése", bár az ES4 szimpatikusabb volt. Kifejezetten jó elképzelés volt több szempontból is, kár h elhalt a dolog
-
-
cucka
addikt
a jól skálázódásnak feltétele lenne az állapottér mentése, ami, tudtommal, sem alap php-ben, sem a hozzá gyakran használt webszerverekben sincs meg.
Ez jól hangzik, de
- Azt kéred számon, hogy a php program miért nem menti el a saját állapotterét 2 futtatás között. Ez nonszensz.
- A http alapból állapotmentes protokoll. Weboldalak fejlesztésénél az állapottér mentése valamilyen session azonosítón keresztül történik - ez a http protokoll következménye, tehát független a programozási nyelvtől.ergo php egyáltalán nem alkalmas skálázódó webszervizek írására.
Alapból valóban nem a legjobb webszervízre, de vannak eszközök, amelyek segítségével azzá tehető, mondjuk ott a Facebook, akiknek sikerült megoldani. (Bár ekkora méretű rendszereknél valószínűleg tényleg kevés az, amit a php nyújt )az meg pazarlás, hogy alap php-t mindig újra kell fordítani.
Az alap php-t nem tudod lefordítani, mint ahogy semmilyen scriptnyelvet nem tudsz alapból, mivel ezeknek pont az a lényegük.
Egyébként meg ezt is lehet cache-elni, sőt, le is fordíthatod a php kódot úgy hagyományosan.[ Szerkesztve ]
-
bambano
titán
nem azt kérem számon, hogy miért nem menti a php az állapotteret, hanem azt, hogyha megkérdezed, hogy miért gagyi a php és választ kapsz a kérdésre, akkor a válaszolás tényén minek kell kiakadni.
miért is mentse a php az állapotterét? mert az alkalmazásoknak szokott olyanjuk lenni, azért. ez az alap php-ban értelmes eszközökkel kezelhetetlen probléma, míg jáva ee-ben alapból ott van és kezeli a teljes ecosystem load balancer frontendtől kezdve appszerverrel bezárólag. Hát ezért gagyi a php, minimum a jávához képest.
Annak a php-nak, amit az arckönyv használ, van bármi köze az eredeti php-hoz? mert itt olyan hírek szállingóztak, hogy nagyon átdolgozták az egészet... ráadásul az arckönyvben alapvetően rövid, egyszerű tranzakció zajlik, de abból sok. Ezt simán lehet úgy skálázni, hogy hordod be a vasat a szobába, valamelyik majd csak kiszolgálja azt a kérést. Egy bonyolultabb alkalmazásnál ez nem működik rendes nyelvi eszközrendszer nélkül.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
cucka
addikt
ez az alap php-ban értelmes eszközökkel kezelhetetlen probléma, míg jáva ee-ben alapból ott van és kezeli a teljes ecosystem load balancer frontendtől kezdve appszerverrel bezárólag.
Önmagában az alap Java nyelv lóf*szt ment, nem állapotteret. A Java ökoszisztéma valamilyen framework-el már menti az állapotteret, de hát innen nézve a php is tudja pontosan ugyanezt. A Java nyelv önmagában kevés dologra jó, az aduásza egyértelműen a tool-ok sokasága - a php előnye itt az, hogy ez egy webre készített template nyelv, tehát alapból olyan eszközökkel jön, amelyeket más nyelveken 3rd party tool-okban implementáltak csak, plusz ugye 3rd party tool-okból itt is tele a padlás.Annak a php-nak, amit az arckönyv használ, van bármi köze az eredeti php-hoz? mert itt olyan hírek szállingóztak, hogy nagyon átdolgozták az egészet
100%-os pontossággal nem tudom, de legjobb tudomásom szerint saját maguknak fordítják/hekkelik a php-t, plusz ugye ők fejlesztették a "php fordítót" is.
Nekem amúgy úgy tűnt, hogy a php-val igazából nem jártak túlzottan jól, ekkora méretű rendszernél, mint az övék, nem egyszerű php alapon szolgáltatni, szívtak a skálázódással is, stb..[ Szerkesztve ]
-
FTeR
addikt
mi köze a http-nek ahhoz, hogy a session-t hol tárolja?
asp.net-ben pl 3 van:
- inprocess
- state server
- sql serverconfig kérdése. ha sql server-be rakod, akkor az sql server képességeinek megfelelően tudod skálázni. előnye még, h egy server restartot is túlél a session.
#166
ezt az érvrendszert gondold újra. komolyan azzal akarsz érvelni, h php az a környezet ahova nem kell 3rd party? 3rd party nélkül a php konkrétan használhatatlan.[ Szerkesztve ]
-
ddekany
veterán
"Weboldalak fejlesztésénél az állapottér mentése valamilyen session azonosítón keresztül történik - ez a http protokoll következménye, tehát független a programozási nyelvtől."
Ez nem így működik. A session-t, mivel a látogató tevékenységéhez kötődőik és nem reprodukálható, persze illik menteni HDD-re. De csomó dolog van, ami újra felépíthető ha újraindítod az alkalmazást, csak épp az időbe telne. Lehet itt gondolni tipikus cache-ekre, pool-okra, de akár egy rakás összetett akármire, aminek rakás konfigurációs fájlt meg osztályt be kell olvasnia, hogy elinduljon, stb, szóval nem két pillanat, amíg feláll a semmiből. Pont mert a PHP erre nem képes alapból/kényelmesen, nagyobb rendszereknél kezd kínos lenni, hogy minden egyes beérkező kérelemnél újra és újra felépít mindent a kályhától indulva.
"Az alap php-t nem tudod lefordítani, mint ahogy semmilyen scriptnyelvet nem tudsz alapból, mivel ezeknek pont az a lényegük."
A valamire való script nyelvek valamilyen köztes kódra fordulnak futás előtt, amit viszont el tudsz menteni ha nagyon akarod (pl. Python így is csinálta: py -> pyc). Általában nem akarod. De még cache-elheted is memóriában a köztes kódot, és akkor nem kell hozzá fájlokat gyártani.
[ Szerkesztve ]
-
cucka
addikt
Pont mert a PHP erre nem képes alapból/kényelmesen, nagyobb rendszereknél kezd kínos lenni, hogy minden egyes beérkező kérelemnél újra és újra felépít mindent a kályhától indulva.
Alapból egyik nyelv sem képes rá, 3rd party kiegészítőkkel (vagy saját kód írásával) meg bármelyik képes rá. Igen, még a php is, és nem kell hozzá semmiféle voodoo varázslat, én is fejlesztettem már ilyen keretrendszert.A valamire való script nyelvek valamilyen köztes kódra fordulnak futás előtt, amit viszont el tudsz menteni ha nagyon akarod
Igen, sajnos ez tényleg hiányzik a php alapszolgáltatásai közül, külső eszközökkel viszont meg lehet oldani, szóval ez sem probléma. -
cadeyrn
aktív tag
PHP tud sessiont memcached poolban tárolni. Tény, kell hozzá Memcached extension, de mi is egy extension? Ugyanolyan kiegészítő mint pl. a swing a Java-nak.
Az állapottér mentése weben tényleg nem a nyelv, hanem a sw (és a keretrendszer) feladata szerintem is.
Köztes kód? APC ami kb. egyidős a PHP-val, csak nem "kötelezően" része, mindössze modulként bármikor hozzákapcsolható. A köztes kód egyébként szerintem pont, hogy normális egy scriptnél, se Bash se pl. a Perl nem fordít köztes kódot, pont a Python a kivétel. Szerintem.
-
cadeyrn
aktív tag
Mainframe téma: HP disaster proof data center
-
SlipOne
csendes tag
Említettétek itt az arckönyvet, amiben a php kódot átfordították "natív" c -s kódra.
Ilyet melótárs is csinált, lassú volt egy zend-es implementáció, amit php-ben írtak (amf szérializáció volt ha jól emlékszem). Úgy gondolta segít rajta, ha átírja c-re és befordítja "natív php" kódra, aztán azt kitesszük a vps-re. Hát volt értelme, minimum 20x gyorsabb futást eredményezett azon a területen.Mindezek alapján ha rengeteg időnk lenne és nem kéne a rendszert 999x újraírni (a vezetőség "átgondoltsága" miatt), akkor simán érdemes átírni c-re, azt befordítani és utána futtatni. Kb ezt csinálta az arckönyv is, így elég masszív alkalmazásokat lehet írni php-n, bár ez már korántsem az igazi, alap php, pláne, hogy ilyet egy tárhelyen sosem fogsz futtatni.
-
ddekany
veterán
"PHP tud sessiont memcached poolban tárolni. Tény, kell hozzá Memcached extension, de mi is egy extension?"
Az eltérés, hogy Java/C# esetén természetes, hogy több kérelmet túlélhetnek objektumok. Nem kell hozzá kiegészítő, és teljesen áttetsző az egész, mivel ez az alap felállás.
"se Bash se pl. a Perl nem fordít köztes kódot, pont a Python a kivétel. Szerintem."
Python csak annyiban kivételes, hogy ott bevett szokás ezt fájlban is letárolni (pyc). De az nem extrém dolog, hogy egy "script nyelv" valamiféle byte kódba fordul futás előtt.
-
cadeyrn
aktív tag
PHP-ben nincs main függvény. Lehetne, és futhatna végtelen ciklusban egy while(1)-el, csak az az alapműködést borítja meg. Ez az óriási különbség a C++, C#, Java és a többi klasszikus programmal szemben. A PHP-ben nem az alkalmazás a démon, hanem fordító, szóval nem biztos, hogy fair ezt felróni ellene.
http://www.phpcompiler.org/
https://github.com/facebook/hiphop-php/wiki/
Ezekkel le lehet fordítani a PHP kódot, hogy klasszikus program készülhessen belőle. -
cucka
addikt
Majd egyszer valaki ír egy node.js-t php alá és akkor az is fog napokig futni.Én már írtam php-ban rendes gtk-s alkalmazást, az sem lépett ki klikkelésenként. (Ok, igazából erre a feladatra elég pocsék a php nyelv, csak annak idején azt mondta a tanár, hogy értékeli a szokatlan megoldásokat )
Egyébként meg tessék, V8 engine php alá, lehet kezdeni ismét a rettegést meg a szörnyülködést
-
nagyúr
Pont ezert irtam lentebb, hogy eleg keves programozo tudja rendesen kihasznalni az osztott es/vagy perzisztalt allapotot. A PHP meg pont azert skalazodik, mert mindig mindent ujraepitesz (skalazodas!=sebesseg), egy memcached-t meg barki fel tud loni, ha arrol van szo.
(Disclaimer: nem vagyok php-programozo, sot, webprogramozo sem, hala az egnek.)while (!sleep) sheep++;
-
cadeyrn
aktív tag
Hopp, amit kifelejtettem némi magyarázatot.
A PHP session túlél minden kérést, és ugyanaz van benne, amíg él. Annyi, hogy kell a kód legelején egy session_start().
Egy session cookie nevű dologhoz kötődik a user gépén, ezzel azonosítja a PHP (!), hogy melyik helyileg mentett file adatai tartoznak az adott kéréshez. (Igen, lehet hijackelni, sajnos) Általában cron törli a szerveren, nem teljesen automatikus, szóval akár örök életű is lehetne.No ez az az elem, amit lehet memcached poolban tárolni, és akárhány webszerverről közösen elérhető. Értsd: mindegy, hogy a loadbalancer a usert melyik webszerverre dobja be, mert ugyanaz a session, már megvannak az adatok róla.
Ergo lényegtelen, hogy a program újraépül, a sessionben ott az adat, ami kell.
Mi is hiányzik?
-
ddekany
veterán
Én itt csupán annyit akartam kifejezni, hogy Java ill. C# esetén a kérelmeket túlélő állapotot természetes, és nem kell hozzá kiegészítő. Illetve leírtam hogy ez mihez elég, és mihez nem. Nem mondtam hogy teljesítmény = skálázódás, meg hogy jaj de szar ezért a PHP (másért az). Meg persze a "shared nothing" elv nem a PHP sajátja, szóval itt inkább azon lehetne vitatkozni, hogy a "shared nothing" hova jó.
Amúgy ez osztott állapotos dolog script nyelveknél jellemzően nem úgy működik mint Java/C# esetén, mert a "hivatalos" megvalósítás általában nem támogatja a több szál párhuzamos futtatását ugyan azon folyamaton belül (Python és Ruby sem, bár vannak alternatív megvalósítások, mint Jython és JRuby). Ez vonatkozik az említett Node.js-re is tudtommal. Ha jól tudom úgy néz ez ki, hogy indítasz egy szerveren mondjuk 5 db node.js folyamatot, ha azt akarod hogy ki tudja használni a 4 fizikai magot, és ezek a folyamatok nem osztoznak (közvetlenül) az állapoton.
Azt meg nem fogom, miért zavarna engem, ha PHP-n belül fut V8... Akkor az ECMAScript, szóval onnantól már az a kérdés, hogy mit szólok az ECMAScripthez.
Új hozzászólás Aktív témák
- Konzolokról KULTURÁLT módon
- Futás, futópályák
- bb0t: Gyilkos szénhidrátok, avagy hogyan fogytam önsanyargatás nélkül 16 kg-ot
- Milyen billentyűzetet vegyek?
- Rekordmagasba lökte az EPYC és a Ryzen az AMD-t
- Milyen TV-t vegyek?
- Crypto Trade
- Fejhallgató erősítő és DAC topik
- Sorozatok
- Azonnali notebookos kérdések órája
- További aktív témák...
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Ozeki Kft.
Város: Debrecen