PHP nebo JavaScript

SB

Re:PHP nebo JavaScript
« Odpověď #45 kdy: 28. 02. 2017, 12:05:06 »
Když v Node.JS děláš, jak moc rozdílný programování to je oproti ostatnim jazykum vzhledem k tomu, že operace v JS jsou neblokující?

Rozdílné je to v tom, že musíte za virtuální počítač řešit rozdělení úloh do funkcí na samostatné asynchronní celky, protože to sám (prostřednictvím await ap.) neumí, přeloženo: Děláte za něj práci.


SB

Re:PHP nebo JavaScript
« Odpověď #46 kdy: 28. 02. 2017, 12:07:27 »
V PHP standardně dělám stavové aplikační servery. Zřejmě jsi zatím nepřišel na to, jak se to dělá.

Nechám se od vás poučit, jakým kouzlem toho dosáhnout. Děkuji.

SB

Re:PHP nebo JavaScript
« Odpověď #47 kdy: 28. 02. 2017, 12:14:22 »
K Node jsem jen pricuchl pri hrani si se svymi projektiky, v praci delam na front-endu. Co vim, tak u nekterych fci existuji i blokujici varianty (readFileSync). (odpovim nize)

To jsou výjimky, ne pravidla.

I ve starem JS byly zpusoby, jak to ukocirovat (nezanorovat fce a udrzovat to ploche => vyhnuti se pyramid of doom). Aktualne co vim (v Node nedelam, takze je mozna jeste vice pristupu) tu mame promise, generator, async nebo "slozitejsi" abstrakce jako observable, ktera se pouziva treba v Angular 2 a IMO je dost silna a zaroven elegantni. Osobne se mi dost libi cesta, kterou se JS ubira - nejdriv to byl zmatek na lepeni toho, co HTML/CSS neumelo a nyni tu mame koncepty/syntaxi z OOP (cukr pro tridy, pripadne TypeScript) i FP v mnohem vetsi mire (odklon od mutable vseho k immutable stavu SPA aplikace - napr. redux a ngrx/store, knihovny typu ImmutableJS, Lodash, Ramda, Folktale nebo Sanctuary nabizejici FP pristup).

Všechny uvedené způsoby jsou poměrně složité, ale hlavně ZBYTEČNÉ. Upozorňuju, že se bavíme o backendu, ne frontendu.

noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:PHP nebo JavaScript
« Odpověď #48 kdy: 28. 02. 2017, 12:37:07 »
...
Všechny uvedené způsoby jsou poměrně složité, ale hlavně ZBYTEČNÉ. Upozorňuju, že se bavíme o backendu, ne frontendu.

Slozite? No nevim, nejaky stream a bus je dost jednoduchy koncept. Promise je primo trivialni. Ja se bavim o JavaScriptu (OP nikde nenapsal, jestli chce BE/FE/full-stack), ale pokud vim, tak to vse lze pouzit a pouziva se i na back-endu (treba Koa pouziva generatory). Napr. ty observable primo obsahuji pomocne funkce pro konstrukci wrapperu z callback fce na fci vracejici observable (maji i helper pro Node format fci), podobne BlueBird ma promisifyAll na konverzi celeho (node) modulu na verzi s promises.

Pokud jsou pro vas zbytecne, tak je nepouzivejte. Pak ale nebrecte, ze mate chuchel callbacku a neudrzovatelny kod.

Re:PHP nebo JavaScript
« Odpověď #49 kdy: 28. 02. 2017, 13:42:54 »
...
Všechny uvedené způsoby jsou poměrně složité, ale hlavně ZBYTEČNÉ. Upozorňuju, že se bavíme o backendu, ne frontendu.

Pokud jsou pro vas zbytecne, tak je nepouzivejte. Pak ale nebrecte, ze mate chuchel callbacku a neudrzovatelny kod.
Nechci mluvit za někoho druhého, ale pravděpodobně měl na mysli, že existuje mnoho jiných variant na backend, kde se tím není nutno vůbec zabývat.
Já sám jsem docela dlouho Node.js používal a občas ještě stále používám a asynchronní styl mi nevadí, ale musím říct, že je mnohem pohodlnější napsat v cyklu go func a spustit 20 gorutin, individuálně ošetřit chyby a na konci dát jen  waitGroup.Wait() a počkat, až všechny doběhnou, než vytvářet pole požadavků, spouštět je přes Promise.all a pak složitě zjišťovat, co se vlastně nepovedlo. A to nemluvím o větší flexibilitě a čitelnosti kódu. Navíc je realitou, že některým lidem asynchronní zápis prostě nesedí.


zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:PHP nebo JavaScript
« Odpověď #50 kdy: 28. 02. 2017, 13:50:25 »
...
Všechny uvedené způsoby jsou poměrně složité, ale hlavně ZBYTEČNÉ. Upozorňuju, že se bavíme o backendu, ne frontendu.

Pokud jsou pro vas zbytecne, tak je nepouzivejte. Pak ale nebrecte, ze mate chuchel callbacku a neudrzovatelny kod.
Nechci mluvit za někoho druhého, ale pravděpodobně měl na mysli, že existuje mnoho jiných variant na backend, kde se tím není nutno vůbec zabývat.
Já sám jsem docela dlouho Node.js používal a občas ještě stále používám a asynchronní styl mi nevadí, ale musím říct, že je mnohem pohodlnější napsat v cyklu go func a spustit 20 gorutin, individuálně ošetřit chyby a na konci dát jen  waitGroup.Wait() a počkat, až všechny doběhnou, než vytvářet pole požadavků, spouštět je přes Promise.all a pak složitě zjišťovat, co se vlastně nepovedlo. A to nemluvím o větší flexibilitě a čitelnosti kódu. Navíc je realitou, že některým lidem asynchronní zápis prostě nesedí.
Go má vlastní scheduler, tak si to může dovolit. Navíc je částečně preemptivní (=blbovzdorný). Explicitní callbacky mají zase tu výhodu, že přesně vím, kde může kód čekat. Fakt je, že zápis bez callbacků je přehlednější.

kapr

Re:PHP nebo JavaScript
« Odpověď #51 kdy: 28. 02. 2017, 18:14:12 »
PHP je mrtvy jak IE6, ale taky ho jeste nekde pouzivaj. Jeslti chces delat webitka a uitka tak Javascript (tim defakto budes moct zacit psat v node.js), jestli chces programovat weby, tak cokoliv jinyho nez PHP. Je fakt, ze PHP jeste nevymre dlouho, protoze je hojne a hodne pouzivany, ale budoucnost bych v tom rozhodne nehledal.

Kit

Re:PHP nebo JavaScript
« Odpověď #52 kdy: 28. 02. 2017, 20:34:02 »
V PHP standardně dělám stavové aplikační servery. Zřejmě jsi zatím nepřišel na to, jak se to dělá.
Nechám se od vás poučit, jakým kouzlem toho dosáhnout. Děkuji.

Je to prosté, stačí se naučit používat databáze.

čumil

Re:PHP nebo JavaScript
« Odpověď #53 kdy: 28. 02. 2017, 21:14:24 »
1) jo, spleskaný bastard už z JS pomalu je, ale co naděláš, to čeká každý jazyk

Čeká to jen jazyky se špatným návrhem, které se začnou podbízet.

2) promises ? async await se hodí jen na něco, ne to cpát všude plus když máš kvalitní objektový návrh, promises ani z velké části nepotřebuješ

Když potřebuju synchronní volání, Promise k ničemu není, když asynchronní, tak ten jeden callback ještě napsat umím.

3) prototypovej system JS je neskutečnej paskvil, autor se snažil udělat hybrida mezi classbased systemem a skutečnym prototype systemem...nepovedlo se mu to a je to hnus. Jako řešení máš svobodu si udělat vlastní objektový systém. To kupříkladu, v jiném dnšním mainstream jazyce neuděláš.

Nevěřím vám, že nějakým jednoduchým způsobem udělám v JS jiný objektový systém. Zkoušel jsem omrdat chybějící zapouzdření (najdete k tomu na inetu diskuse) a je to hrozný opich.
1) asi jo
2) jedinej recept, navrhnout async api od zakladu, pak nemusis resit jak proboha nacpat async operaci do sync api. Blby je kdyz uz takovej kod mas a nebo libka.......
3) je to strasne snadny, js objekt je prostě jen mapa, muzes si do nej nacpat cokoli a dat tomu jakykoli smysl chces. Jedinej problem je se syntaxy, tu neohnes

Schvalne si vlastni dream object system skus v js udělat
Budeš prekvapen jak snadný to je :)

Třeba v lispu byl zvyk dělat si vlastni oop systemy (i se syntaxy!!)
Js od lispu tu dynamiku castecne zdedilo

Tomas2

  • ****
  • 310
    • Zobrazit profil
    • E-mail
Re:PHP nebo JavaScript
« Odpověď #54 kdy: 28. 02. 2017, 21:35:18 »
koukám, že příběh s node.js je všude stejný.

Nelíbí se mi jeho asynchronnost a callbacky > použiji *Sync IO funkce > ty kupodivu blokují celý thread a celá aplikace je zmrzlá > jsem zpátky u callbacků

Pořád se mi nelíbí callbacky > strčím tam promise > zjišťuji, že kód je nepřehledný a naprosto se nedá debugovat a traceovat > skončím znovu u callbacků

Mám takový pocit, že zkoušet naroubovat MVC a další návrhové vzory do jazyku, který funguje prostě jinak vždy skončí slepou cestou. JS je tvrdohlavý a pokud ho nezačnu používat jak byl navržený, nebudu s ním spokojený. Pokud by jeho návrh nevyhovuje, jdu k php/java/whatever.

PS: přejít z node.js na go si povětšinou moc nepomůžu, opět se musím přizpůsobit jazyku...

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:PHP nebo JavaScript
« Odpověď #55 kdy: 28. 02. 2017, 21:59:08 »
koukám, že příběh s node.js je všude stejný.

Nelíbí se mi jeho asynchronnost a callbacky > použiji *Sync IO funkce > ty kupodivu blokují celý thread a celá aplikace je zmrzlá > jsem zpátky u callbacků

Pořád se mi nelíbí callbacky > strčím tam promise > zjišťuji, že kód je nepřehledný a naprosto se nedá debugovat a traceovat > skončím znovu u callbacků

Mám takový pocit, že zkoušet naroubovat MVC a další návrhové vzory do jazyku, který funguje prostě jinak vždy skončí slepou cestou. JS je tvrdohlavý a pokud ho nezačnu používat jak byl navržený, nebudu s ním spokojený. Pokud by jeho návrh nevyhovuje, jdu k php/java/whatever.

PS: přejít z node.js na go si povětšinou moc nepomůžu, opět se musím přizpůsobit jazyku...
U Go to je ale změna k lepšímu.

čumil

Re:PHP nebo JavaScript
« Odpověď #56 kdy: 28. 02. 2017, 22:02:22 »
koukám, že příběh s node.js je všude stejný.

Nelíbí se mi jeho asynchronnost a callbacky > použiji *Sync IO funkce > ty kupodivu blokují celý thread a celá aplikace je zmrzlá > jsem zpátky u callbacků

Pořád se mi nelíbí callbacky > strčím tam promise > zjišťuji, že kód je nepřehledný a naprosto se nedá debugovat a traceovat > skončím znovu u callbacků

Mám takový pocit, že zkoušet naroubovat MVC a další návrhové vzory do jazyku, který funguje prostě jinak vždy skončí slepou cestou. JS je tvrdohlavý a pokud ho nezačnu používat jak byl navržený, nebudu s ním spokojený. Pokud by jeho návrh nevyhovuje, jdu k php/java/whatever.

PS: přejít z node.js na go si povětšinou moc nepomůžu, opět se musím přizpůsobit jazyku...
Asynchronní zpravy

V pra oop se pocitalo jak se sync tak i async zpravamy.
Node todle vratilo do hry.

Pak nepotrebujes vlastne ani promises:)

Problem je s libkama a legacy kódem

čumil

Re:PHP nebo JavaScript
« Odpověď #57 kdy: 28. 02. 2017, 22:03:50 »
koukám, že příběh s node.js je všude stejný.

Nelíbí se mi jeho asynchronnost a callbacky > použiji *Sync IO funkce > ty kupodivu blokují celý thread a celá aplikace je zmrzlá > jsem zpátky u callbacků

Pořád se mi nelíbí callbacky > strčím tam promise > zjišťuji, že kód je nepřehledný a naprosto se nedá debugovat a traceovat > skončím znovu u callbacků

Mám takový pocit, že zkoušet naroubovat MVC a další návrhové vzory do jazyku, který funguje prostě jinak vždy skončí slepou cestou. JS je tvrdohlavý a pokud ho nezačnu používat jak byl navržený, nebudu s ním spokojený. Pokud by jeho návrh nevyhovuje, jdu k php/java/whatever.

PS: přejít z node.js na go si povětšinou moc nepomůžu, opět se musím přizpůsobit jazyku...
U Go to je ale změna k lepšímu.
Go ale zas plno veci chyby ...

Rapyd

Re:PHP nebo JavaScript
« Odpověď #58 kdy: 01. 03. 2017, 08:55:11 »
PHP jeste mozno pouzit na rapid development. Proste v tom rychle spichnete funkcni demo modul jako proof of concept a na ladeni workflowu. Kdyz to je ok tak se to prepise do neceho normalnejsiho a skalovatelnejsiho.

gll

Re:PHP nebo JavaScript
« Odpověď #59 kdy: 01. 03. 2017, 19:37:29 »
koukám, že příběh s node.js je všude stejný.

Nelíbí se mi jeho asynchronnost a callbacky > použiji *Sync IO funkce > ty kupodivu blokují celý thread a celá aplikace je zmrzlá > jsem zpátky u callbacků

Pořád se mi nelíbí callbacky > strčím tam promise > zjišťuji, že kód je nepřehledný a naprosto se nedá debugovat a traceovat > skončím znovu u callbacků

Mám takový pocit, že zkoušet naroubovat MVC a další návrhové vzory do jazyku, který funguje prostě jinak vždy skončí slepou cestou. JS je tvrdohlavý a pokud ho nezačnu používat jak byl navržený, nebudu s ním spokojený. Pokud by jeho návrh nevyhovuje, jdu k php/java/whatever.

PS: přejít z node.js na go si povětšinou moc nepomůžu, opět se musím přizpůsobit jazyku...

Proč by se promisy nedaly traceovat?