Új hozzászólás Aktív témák
-
sztanozs
veterán
Ettől olyan tetűlassú ma a FB?
Nem csodálom, hogy a php utóda...JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
buherton
őstag
Teljesen amatőr kérdés. Miért jobb a script, mint a bináris? Nem lenne gyorsabb a lefordított kód?
tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!
-
berVi
senior tag
Hianyzott ez, mint szar a polcra.
-
bitblueduck
senior tag
Ez lehet az ok:
Új nyelv esetén meg lehet egyszerűbb ezt fejleszteni mint egy bináris (/natív) nyelvet egy microsoft/intel/gcc szintű fordítót összedobni de pontosan én sem tudnám megmondani, nem vagyok jártas a szerver oldali nyelvek fejlesztésében.
Teljesítményben valószínűleg lehetne nyerni valamit, de nem éri meg, szerintem ez az indok.An open mind is like a fortress with its gates unbarred and unguarded.
-
cucka
addikt
Nem jobb, csak más.
Igazából a modern szkriptnyelvek és fordított nyelvek hasonlóak - a legtöbb valamilyen köztes kódra fordul, szóval nem olyan jelentős a teljesítménykülönbség. (egyes implementációk között nyilván van különbség, de az elv ugyanaz)A facebooknál konkrétan azért van php, mert ebben kezdték annak idején a fejlesztést. És évekkel később, amikor már mondjuk kijött volna egy fordított nyelv előnye, akkor meg ott voltak egy létező, működő kódbázissal, amit sokmillióan használnak, ilyenkor átírni az egészet egy másik nyelvre hatalmas kockázat.
Szóval újraírás helyett fejlesztették a hiphop-ot, ami tulajdonképpen egy php-s virtuális gép (ugyanarra jó, mint a jvm), majd később ezt a hack-et, ami meg egy php extrákkal, ami hiphopon fut.[ Szerkesztve ]
-
ddekany
veterán
"Script" és statikus közt ma már talán inkább az a hangsúlyos, hogy mikor van valami gebaszott nagy kódbázis amit mindenféle jött-ment fejlesztő ír, akkor melyikkel lesz karbantarthatóbb a kód. Én dolgoztam valamennyit Pythonban meg PHP-ban, és sokkal többet Java-ban... Bele sem akarok gondolni, mi lenne, ha nem lenne ott a Java fordító ill. az Eclipse, aki kismillió hibát kiszúr helyettem, na meg főleg ledarálja a refaktorálások "agyatlan" részét, stb. Ilyen szintű tooling-ot dinamikusabb nyelvekhez lehetetlen csinálni. Aki persze nem tanult meg ezekkel élni, az nem érti, aki viszont igen, nem tudom hány tértek vissza jószántából dinamikus nyelvekre. Ruby-ra meg ilyen "szexi" dolgokra talán, na de PHP-ra...
-
Blindmouse
senior tag
Jobb kérdés: Miért kellett hack-nak elnevezni? Ezentúl minden keresésnél ez a "nemkívánatosnak minősített" dolog fog bejönni.
3440x1400@120Hz #ultrawidemasterrace #gloriouspcgamingrace
-
Vicces, hogy mindenki a PHP-n sír, amikor az esetek nagy részében nem ez, hanem az adatbázis (IO) szokott lenni a szűk keresztmetszet. A PHP amúgy majdnem olyan, mint a Javascript. Rém igénytelen, és nagyon sok gányolmány van rá, s vannak hiányosságai is. De ha megtanulsz rá minőségi kódot gyártani, akkor bőven megfelelő, sőt. Ma már akár többszálasítás is lehetséges vele a Javahoz hasonló módon.
A RIOS rendkívül felhasználóbarát, csak megválogatja a barátait.
-
Turmoil
senior tag
Elolvastam, amit a Gradual Typing címen írt az ember és kb. a halálra röhögöm magam állapot közelében lebegek. A statikus typecheck előnyeit és hátrányait kiemelő magyarázatok annyira erőltetettek, hogy nehéz szó nélkül elmenni mellette.
Nyilvánvaló, hogy aki php-ben éli az életét, és nem ismeri eléggé a másik oldalt, az nem biztos, hogy a megfelelő dolgokat hasonlítja össze. Csak egy dolgot ajánlanék a a figyelmébe: oldja meg a function overloading-ot dinamikus type check mellett (nem lehetetlen, JS tudja, de számolja már ki, hogy futásidőben, 5-6 paraméter esetén, 3-4 szignatúra mellett ez mennyi overhead-et jelent)!
Vagy mennyi extra kódot kell leírnia, hogy ne fusson hibára futásidőben. Java-ban is lehetne minden metódus ilyen:
public Object doSomething( Object[] args ) {
if (args.length>0 && args[0] instanceof String) { ... // és ebből 10-20 minden metódusban, haha
}
De valamiért nem így néznek ki. Vajon miért?Aki tud, és tudja hogy tud, az veszélyes. Tőle féljetek. Aki tud, és nem tudja hogy tud, az bölcs. Tőle tanuljatok. Aki nem tud, és tudja hogy nem tud, az okos. Őt tanítsátok. Aki nem tud, és nem tudja hogy nem tud, az hülye. Őt hagyjátok ..
-
cucka
addikt
oldja meg a function overloading-ot dinamikus type check mellett
Néhány dolog:
- a function overloading, mint elképzelés, statikus típusellenőrzéses nyelvekhez lett kitalálva. Dinamikusan títpusos nyelveknél nincs értelme beszélni róla.
- a JS nem tud function/method overloadingot. Tekintve, hogy mennyire szabadon kezeli a metódusok argumentumait a JS, nehéz elképzelni, hogy egyáltalán megvalósítható-e ez abban a nyelvben. Azt tudja, hogy biztosít számodra eszközt arra, hogy belehekkelj valamit, ami a method overloadinghoz hasonlóan fog működni.
- Egy php kódba ugyanígy bele tudod hekkelni a method overloadingot, például a __call használatával. De, amint már említettem, nincs rá szükség.Amúgy tetszik, ahogy a jávás arcok el sem tudják képzelni, hogy hogy lehet bármilyen nyelvben fejleszteni, ami nem pont ugyanolyan, mint a java.
[ Szerkesztve ]
-
nagyúr
Az a helyzet, hogy az FB-nek volt egy mukodo PHP-alapu rendszere. Namost a PHP tenyleg egy gyatra nyelv, de egy mukodo rendszernel nincs ertekesebb dolog. Nyilvanvaloan a cegen belul egy csomo tapasztalat felhalmozodott azzal kapcsolatban, hogy hogyan kell X*100 millio felhasznalot kiszolgalni PHP alapon.
Ezen a ponton valoszinu, hogy a PHP-t gyorsitani, ill. takolni (Hack, HHVM) kevesbe kockazatos megoldas, mint fogni egy uj nyelvet/platformot, es elkezdeni lecserelni meglevo reszeket. (A Twitter mondjuk ezt csinalta a Ruby->Scala migracional.)
Tenyleg erdemes eszben tartani, hogy az FB szoftveresei a vilag elvonalaba tartoznak, es sikeresen mukodtetik a vilag legnagyobb kepmegosztojat, szocialis halojat -- valoszinuleg tudjak, mit csinalnak.
[ Szerkesztve ]
while (!sleep) sheep++;
-
bitblueduck
senior tag
An open mind is like a fortress with its gates unbarred and unguarded.
-
mallee
tag
válasz bitblueduck #13 üzenetére
"The Windows API (Win32) is implemented in the C programming language and is not object-oriented."
A Java nem C, ráadásul objektum-orientált is
(A PHP úgyszintén)[ Szerkesztve ]
-
Turmoil
senior tag
Fejlesztettem C-ben, Pascalban/Delphiben, írtam elég sok js kódot is. El tudom képzelni, hogy milyen lehet más nyelvben fejleszteni. De nem csinálnám szívesen, főleg php-ben nem.
Azt sem vitattam, hogy egy működő rendszert egy ideig mindenképpen érdemes javítani, optimalizálni.
Egyetlen dolgon húztam fel a szemöldököm, a hatalmas újításnak bemutatott gradual typing-on és azon, ahogy a fejlesztő összehasonlítja más nyelvekkel (a java-t hozta fel példának, és olyan példát mutatott be, ami pont az overloading miatt teljesen értelmetlen).
Nyilvánvaló, hogy az fb-nek ez így is sokat ér, de a lényegen nem változtat, hogy az alapok hiányosságait próbálja csak pótolni. Ettől még cipeli magával a php összes átkát.Aki tud, és tudja hogy tud, az veszélyes. Tőle féljetek. Aki tud, és nem tudja hogy tud, az bölcs. Tőle tanuljatok. Aki nem tud, és tudja hogy nem tud, az okos. Őt tanítsátok. Aki nem tud, és nem tudja hogy nem tud, az hülye. Őt hagyjátok ..
-
Turmoil
senior tag
-
Cathfaern
nagyúr
Gyorsabb fejleszteni (értsd: gyorsabb a kódmódosítás->módosítás hatásának megnézése ciklus). PHP-ban írt kód esetén átírsz egy sort, nyomsz böngészőben egy F5-öt, és 1-2s után már látod is az eredményét. Ha le is kell mindent buildelned, akkor megfelelően nagy programnál egy 8-10s (vagy több) is lehet. Ami önmagában lehet nem sok, de sok kicsi sokra megy. Szóval a script nyelvek más típusú fejlesztést tesznek lehetővé (aminek "királya" a lisp, amit futás közben is át tudsz írni).
Ha csak a végeredmény teljesítményét nézzük, akkor a natív kód gyorsabb, de ezért fejlesztették ki az FB-nél a php->natív C kód fordító rendszerüket. -
Cathfaern
nagyúr
Azért vannak szépséges dolgok a PHP-ban, illetve a fejlesztése körül
Például:
"During alpha phase of PHP 5.0 there was a namespace implementation that was very close to the one of C++. Because an inconsistency between namespace separator '::' and ternary operator's ':' could not be solved, namespace were finally removed. Durning development of PHP 5.3 namespace came up again and a solution for the conflict was found." (forrás)
Mindezt úgy, hogy az 5.0 és az 5.3 között 6 év telt el.Persze ezek kitekert példák, és ahogy írod, ha az ember ért hozzá és jó kódot ír akkor nem fordulnak elő. De attól még nem ideális, hogy az a nyelv amiben a weboldalak 80%-a készül, ilyeneket tartalmaz.
-
Turmoil
senior tag
why php is bad -> 861 000 000 találat
Csak a miheztartás végett:
why java is bad -> 192 000 000 találat[ Szerkesztve ]
Aki tud, és tudja hogy tud, az veszélyes. Tőle féljetek. Aki tud, és nem tudja hogy tud, az bölcs. Tőle tanuljatok. Aki nem tud, és tudja hogy nem tud, az okos. Őt tanítsátok. Aki nem tud, és nem tudja hogy nem tud, az hülye. Őt hagyjátok ..
-
Cathfaern
nagyúr
Ha "google számolunk", akkor vegyük hozzá, hogy a két nyelvre alapból mennyi találatot hoz a google:
php -> 2 860 000 000
java -> 186 000 000Ha ezzel súlyozzuk a te találataidat:
php: 2 860 000 000 / 861 000 000 = 3.3217
java: 192 000 000 / 186 000 000 = 1.0322Akkor kijön az, hogy a java 3x rosszabb, mint a php Na ezért nem szabad ilyen keresési találatokkal példálózni.
UI.:
Érdekességképp:
why php is good -> 1 730 000 000
why java is good -> 214 000 000
Szóval hagyjuk ezt szerintem -
Ez olyan "egyél szart, egy csilliárd légy nem tévedhet" érvelés.
(#20) Cathfaern:
A nem statikus metódusokat nem engedi a PHP statikusnak hívni, pontosabban de, csak ki az a hülye, aki engedi az E_STRICT warningokat? Az, hogy namespace-t 5 év alatt raktak bele, az az ő bajuk, a lényeg szerintem az, hogy már van, a jelenről van értelme beszélni. Az operátorokkal kapcsolatos balfaszságokról tudok, erre figyelni szoktam. Egyébként van olyan gyengén típusos nyelv, ahol ezek rendesen meg vannak csinálva?
Egyébként fejlesztettem már Java-ban, nagyon jó nyelvnek tartom (PHP-val nem említhető egy lapon), bár vannak hülyeségei, de ez pont a hülye prorgamozók ellen van. PHP-ban meg azt csinálsz amit akarsz, a JS meg még "rosszabb". Az ASP meg maga a gonosz, ha elegem van a Java hülyeségeiből, ott a Scala.
[ Szerkesztve ]
A RIOS rendkívül felhasználóbarát, csak megválogatja a barátait.
-
Turmoil
senior tag
válasz Cathfaern #22 üzenetére
Ok, nyertél
Mivel nincs fejlesztői php tapasztalatom, csak látok és hallok dolgokat, így nem akartam belemenni részletekbe. Inkább belenéztem az első találatba a php-nél és... én már csak egy kávét kérek.Aki tud, és tudja hogy tud, az veszélyes. Tőle féljetek. Aki tud, és nem tudja hogy tud, az bölcs. Tőle tanuljatok. Aki nem tud, és tudja hogy nem tud, az okos. Őt tanítsátok. Aki nem tud, és nem tudja hogy nem tud, az hülye. Őt hagyjátok ..
-
cucka
addikt
Igazából az alap felfogással van a gond, hogy egy dinamikusan típusos nyelv alsóbbrendű, mint egy statikusan típusos. Szerintem a kettő egyenértékű, a feladattól, a körülményektől függ, hogy melyik jobb választás.
A gradual typing pedig tényleg farokság. Igazából ezt type hintingnek hívjuk, mert ugye opcionális.
-
buherton
őstag
válasz Cathfaern #19 üzenetére
Bennem az alakult ki valamilyen oknál fogva, hogy ha komoly nagy projekről van szó, akkor keményen fordított kódot használnak, ha egyéb/egyszerűbb/kisegítő alkalmazásokhoz használják a scripteket. Nem akarok senkit sem megsérteni, de nekem ez volt az eddigi tapasztalatom.
8-10 sec különbség is nagyon sokat jelent főleg 2-3 sec esetén. Főleg akkor, ha release nap van .
tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!
-
buherton
őstag
A kivétel erősíti a szabályt. Akkor átfogalmazom úgy, hogy a fordított kód hozza a pénzt, a script pedig nem.
[ Szerkesztve ]
tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!
-
Cathfaern
nagyúr
Ez régen tényleg így volt, de manapság elég elterjedt a script nyelvek. Lásd PHP, lásd Js (node.js) vagy akár a python. Meg változott a fejlesztés stílusa, és a jelenlegi trendeket a script nyelvek jobban kiszolgálják.
Ettől függetlenül persze bizonyos területeken, pl. hardver közeli programozás, beágyazott rendszerek, ahol fontos a teljesítmény, stb. ott továbbra is megmaradtak a natív kódok. Aztán vannak a hibridek, mint pl. amit az FB is csinál, hogy natív kódja fordítja a php kódot. Vagy az olyan hibridek, mint a phalcon php-s framework, ahol a framework utasításai C-ben vannak megírva. -
ddekany
veterán
Ha már kitör a dinamikus (script) VS statikus nyelv (vallási ) háború tisztán szakmai alapon, tehát hogy melyik a jobb megközelítés (meg mikor), akkor ott a bökkenő, hogy ez nem egyenlő a Java VS PHP háborúval. Azért nem, mert a Java egy közepszar statikus nyelv (értsd történelmi hozadék és buta C/C++-hiba-lemásolás van benne dögivel), a PHP meg egy - mondjuk jóindulattal - mára már középszar szintig felmászott dinamikus. Ha viszont a statikus nyelvek potenciáljára kíváncsi vki, akkor ott egy Scala vagy egy Ceylon vagy egy Kotlin, és mikor egy dinamikuséra akkor talán ott egy Ruby vagy valami egzotikus amiről nem is tudok. Ezek nem lettek mainstream-ek persze... OK, Ruby egy kicsit. Ja, és statikusok közül a C#-ot se hagyjuk ki, ami viszont mainstream és még így is eléggé alázza nyelvileg a Java-t.
Az meg, hogy PHP-nél csak Ctrl+R, Java-nal 10 perc malmozés (és ált. nem a fordítás miatt, hanem amíg a giga-enterprise-atyaúristen újraindul, mert a fordítás pl. Eclipse alatt folyamatos tehát kb 1 sec késleltetésed ha van)... Ez is olyan, hogy a Java-nak ilyen megalomán/enterprise kultúrája van, de amúgy valójában ez nem annyira függ a statikusságtól mint egyesek hiszik. Ez sokkal inkább arról szól, hogy minden kérelem végén eldobok-e minden állapotot (ami nem DB stb) vagy sem. Pl. Java-ra (és Scala-ra) ott a Play! Framework, és láss csodát, Ctrl+R és nesze ott van amit legutóbb beírtál. Csak akarni kell, megy az, csak nem ez a tradició Java világban. (Meg ha teljesítményre mész, néha nem megy az, minden kérelemnél felépíteni a világegyetemet 0-ról.) De megfordíthatjuk, csinálj akármi dinamikus nyelvben sok kérelmet kiszolgáló objektumokat amik függenek egymástól, máris nem triviális újratölteni egy módosított osztályt. (Megjegyzem, ilyen azért van, ott van Java-ra a JRebel, ami kb. a hot swap csak ügyesebb.)
Végül a mai statikus nyelvek már nem is statikusak. Java-ban ott reflection, anélkül a keretrendszerek 90%-a nem is létezhetne... A dinamikus nyelveknél meg egyre inkább rájönnek, hogy egy kis szigorúbb típusosság megérné...
[ Szerkesztve ]
-
buherton
őstag
Erre gondolok: [link], ahol pl. a kocsinál szinte 100%-osan C. (F-35-ös tuti, hogy sokkal több, mint amit feltüntettek ott, és a Boeing is tuti, hogy több). Gyanús lett nekem ez a lista.
(#31) Cathfaern: Erre nem gondoltam. Vélhetően az is közre játszott eme nézet kialakulásához, hogy beágyazott rendszerek területén dolgozom, ahol tipikusan a pénzt a fordított kód termeli. Viszont a fejlesztéshez rengeteg script-et írunk/írtak. Másik amire felfigyeltem, hogy ha már script akkor az open source világban jobban elterjedt mint a zárt világban. Nem véletlenül jött az open gondolkodásúaktól a Perl, Phyton, PHP csak, hogy a legismertebbek közül említsek párat.
[ Szerkesztve ]
tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!
-
cucka
addikt
A beágyazott rendszreknél biztos így van, máshol meg biztosan nem. Egy webes dolgot pl. folymatosan fejlesztenek, nagyon gyors release ciklusokkal. Elég jó IDE-k vannak már szkriptnyelvekhez, lehet debugolni, van ökoszisztéma, vannak tesztek és esetleg TDD. Na egy ilyen helyzetben nem látom, hogy mekkora hűdenagy minőségi előnyt jelentene egy statikusan típusos nyelv.
[ Szerkesztve ]
-
buherton
őstag
A világ nem csak beágyazott rendszerekből és webből áll.
tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!
-
ddekany
veterán
Hát ezt valahogy ki kéne mérni, csak hát nem lenne egyszerű... konkrétan milyen projekt, melyik két nyelv, milyen minőségű fejlesztők, stb. Egy jó(!) dinamikus nyelv kifejezőbb mint egy jó statikus, viszont cserében a dinamikus nyelvben kevesebb hibát tudsz automatizáltan felfedezni (és ne csak a fordításra gondoljunk, hanem Findbugs, PMD szabályok), nagyobb rizikó és több munka refaktorálni (mindennapos kódszerkesztési eszközzé tud válni Java-ban, ha rájön vki az ízére). Onnantól kezdve hogy kiaknázod a dinamikusságot, az IDE és társai szükségszerűen elvesztik a fonalat, mert ha nem tennék, akkor azt elvileg írhattad volna egy kellőképpen okos statikus nyelven is. Sőt a fejlesztők is néha elvesztik, mert mikor már valami DSL-é változott át a program, akkor bár iszonyat kifejező, nem érti már kutya sem hogy mitől működik meg mitől nem.
(Amúgy tooling területén, Python-ban Wing IDE-t használtam pár éve, ami fizetős és simán a legnagyobb tudásúak közt van, és hiába elég jó nyelv a Python és statikusak közt buta a Java, az IDE/tooling gond miatt állandóan visszasírtam utóbbit. Nagy méretű projectekről van szó persze. És ez még csak Java-val szemben volt.)
[ Szerkesztve ]
Új hozzászólás Aktív témák
- Motorola Moto G24 Power - hol van az erő?
- Gyúrósok ide!
- Megjelentek az első HMD okostelefonok, ezek a magyar áraik
- OpenWRT topic
- Milyen RAM-ot vegyek?
- Stellar Blade
- Megjelent a Moondrop audio-fókuszú telefonja Kínában, lesz globális verzió is
- bitpork: Fogyasztásra ítélve
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Lelövi a Roccat márkanevet a Turtle Beach
- További aktív témák...