Node.js a multiplexed IO obecně

Re:Node.js a multiplexed IO obecně
« Odpověď #120 kdy: 27. 04. 2017, 13:39:53 »
Chci-li vlastnosti ekvivalence, tak nebudu ignorant a použiji ===. 
Jasný. A pokud chci testovat objekt na null, tak použiju !!, protože všude jinde normální if (object) taky nefunguje.

A pokud chci ... tak musím ... . Ale je potřeba vědět, že ... a ... . Pochopitelně jenom v případě že ... . Což ví všichni, kdo nejsou ignoranti.

Fakt je to tak těžký, přiznat si "jo, je to dost zmršenej jazyk, ale i tak ho mám rád"? Co je na tom špatnýho, vyloučili by tě ze sekty?
« Poslední změna: 27. 04. 2017, 13:41:37 od Mirek Prýmek »


ava

Re:Node.js a multiplexed IO obecně
« Odpověď #121 kdy: 27. 04. 2017, 14:03:11 »
Chci-li vlastnosti ekvivalence, tak nebudu ignorant a použiji ===. 
Jasný. A pokud chci testovat objekt na null, tak použiju !!, protože všude jinde normální if (object) taky nefunguje.

A pokud chci ... tak musím ... . Ale je potřeba vědět, že ... a ... . Pochopitelně jenom v případě že ... . Což ví všichni, kdo nejsou ignoranti.

Fakt je to tak těžký, přiznat si "jo, je to dost zmršenej jazyk, ale i tak ho mám rád"? Co je na tom špatnýho, vyloučili by tě ze sekty?

Třeba mě se JS mimořádně nelíbí, definici relace == považuju za pitomou, rozhodnutí pojmenovat normální ekvivalenci === taky za pitomý, ale tak prostě se tak v JS rozhodli, a nedává mi moc smysl nadávat že == se nechová jako ekvivalence, když ekvivalence se v JS jmenuje ===.

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Node.js a multiplexed IO obecně
« Odpověď #122 kdy: 27. 04. 2017, 14:12:12 »
Chci-li vlastnosti ekvivalence, tak nebudu ignorant a použiji ===. 
Jasný. A pokud chci testovat objekt na null, tak použiju !!, protože všude jinde normální if (object) taky nefunguje.

A pokud chci ... tak musím ... . Ale je potřeba vědět, že ... a ... . Pochopitelně jenom v případě že ... . Což ví všichni, kdo nejsou ignoranti.

Fakt je to tak těžký, přiznat si "jo, je to dost zmršenej jazyk, ale i tak ho mám rád"? Co je na tom špatnýho, vyloučili by tě ze sekty?

Třeba mě se JS mimořádně nelíbí, definici relace == považuju za pitomou, rozhodnutí pojmenovat normální ekvivalenci === taky za pitomý, ale tak prostě se tak v JS rozhodli, a nedává mi moc smysl nadávat že == se nechová jako ekvivalence, když ekvivalence se v JS jmenuje ===.
Tak nějak, nemá smysl to řešit, stejně jako proč v asm po cmp %rax, %rbx pak jl skočí, když rbx<rax.

Re:Node.js a multiplexed IO obecně
« Odpověď #123 kdy: 27. 04. 2017, 14:17:13 »
Třeba mě se JS mimořádně nelíbí, definici relace == považuju za pitomou, rozhodnutí pojmenovat normální ekvivalenci === taky za pitomý, ale tak prostě se tak v JS rozhodli, a nedává mi moc smysl nadávat že == se nechová jako ekvivalence, když ekvivalence se v JS jmenuje ===.
Pokud se jasne pojmenuje, co jsou blbosti, proc jsou blbe a jak by pripadne mely byt lip, tak s tim nemam sebemensi problem. Pokud to nekdo chce pouzivat je to jeho volba. Ale nemelo by se to vydavat za normalni a mrsit cely generace programatoru, ktery pak povazuji kravoviny za dobry reseni (viz treba i ty zmineny Workery... proste kam se v JS podivas, tam je nejhorsi mozny reseni z dostupnych. Snad jenom tu prototypovou orientaci chytli dobre. Mit to jeste nejaky dojebany OOP, tak uz by to bylo uplne na maslu ;) )

.

Re:Node.js a multiplexed IO obecně
« Odpověď #124 kdy: 28. 04. 2017, 01:10:44 »
Pokud se jasne pojmenuje, co jsou blbosti, proc jsou blbe a jak by pripadne mely byt lip, tak s tim nemam sebemensi problem. Pokud to nekdo chce pouzivat je to jeho volba. Ale nemelo by se to vydavat za normalni a mrsit cely generace programatoru, ktery pak povazuji kravoviny za dobry reseni (viz treba i ty zmineny Workery... proste kam se v JS podivas, tam je nejhorsi mozny reseni z dostupnych. Snad jenom tu prototypovou orientaci chytli dobre. Mit to jeste nejaky dojebany OOP, tak uz by to bylo uplne na maslu ;) )
Já myslel, že už je to dávno pojmenované. Není potřeba objevovat kolo...
https://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742

Některé blbosti pojmenovala přímo norma, viz třeba "use strict".


Re:Node.js a multiplexed IO obecně
« Odpověď #125 kdy: 28. 04. 2017, 07:08:56 »
Já myslel, že už je to dávno pojmenované. Není potřeba objevovat kolo...
https://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742
Není potřeba ho objevovat, je potřeba otevřeně přiznat, že existuje, a nemást nové programátory.

Citace
The lack of transitivity is alarming. My advice is to never use the evil twins. Instead, always use === and !==.
[z oné knihy]

SB

Re:Node.js a multiplexed IO obecně
« Odpověď #126 kdy: 28. 04. 2017, 16:33:50 »
...Snad jenom tu prototypovou orientaci chytli dobre...

Si děláte zadek, žejo?

Re:Node.js a multiplexed IO obecně
« Odpověď #127 kdy: 28. 04. 2017, 16:58:42 »
Si děláte zadek, žejo?
Proc? Mne se OOP a pseudo-OOP bez trid a bez dedicnosti libi vic nez OOP ve stylu C++ nebo Javy. Jednodussi, snadno pochopitelne pseudo-OOP ala JavaScript nebo Lua je mi docela sympaticke.

Jeste lepsi nez prototypy jsou imho protokoly/interfaces/... (kazdy jazyk to nazyva jinak, proste "mnoziny operaci pro danou datovou strukturu"). Tohle ma hodne hezkych jazyku - Go, Rust, Elixir, Haskell ma to same jeste mozna o kousek lepsi (TypeClasses). Ale tak zas od JavaScriptu clovek nemuze chtit moc :)

Inkvizitor

Re:Node.js a multiplexed IO obecně
« Odpověď #128 kdy: 29. 04. 2017, 07:39:05 »
Si děláte zadek, žejo?
Proc? Mne se OOP a pseudo-OOP bez trid a bez dedicnosti libi vic nez OOP ve stylu C++ nebo Javy. Jednodussi, snadno pochopitelne pseudo-OOP ala JavaScript nebo Lua je mi docela sympaticke.

Jeste lepsi nez prototypy jsou imho protokoly/interfaces/... (kazdy jazyk to nazyva jinak, proste "mnoziny operaci pro danou datovou strukturu"). Tohle ma hodne hezkych jazyku - Go, Rust, Elixir, Haskell ma to same jeste mozna o kousek lepsi (TypeClasses). Ale tak zas od JavaScriptu clovek nemuze chtit moc :)

Třebaže je JS OOP tak super, zavádí se v ES6 vcelku normální podpora tříd.

Re:Node.js a multiplexed IO obecně
« Odpověď #129 kdy: 29. 04. 2017, 14:00:31 »
Třebaže je JS OOP tak super, zavádí se v ES6 vcelku normální podpora tříd.
Nerekl jsem ze je super. Jenom ze jednoduchej princip "mas mnozinu pojmenovanych funkci a kdyz se metoda nenajde tady, vyhleda se automaticky jinde" je v pohode, jednoduchy, snadno pochopitelny. Lepsi nez kdyby si vymysleli zas nejakou ujetou implementaci OOP, ktera by byla prekombinovana a pritom nesplnovala zakladni pozadavky podobne jako to dojebany == :)

Viz https://www.lua.org/pil/16.html - proc ne?

gll

Re:Node.js a multiplexed IO obecně
« Odpověď #130 kdy: 29. 04. 2017, 17:54:58 »
Si děláte zadek, žejo?
Proc? Mne se OOP a pseudo-OOP bez trid a bez dedicnosti libi vic nez OOP ve stylu C++ nebo Javy. Jednodussi, snadno pochopitelne pseudo-OOP ala JavaScript nebo Lua je mi docela sympaticke.

Jeste lepsi nez prototypy jsou imho protokoly/interfaces/... (kazdy jazyk to nazyva jinak, proste "mnoziny operaci pro danou datovou strukturu"). Tohle ma hodne hezkych jazyku - Go, Rust, Elixir, Haskell ma to same jeste mozna o kousek lepsi (TypeClasses). Ale tak zas od JavaScriptu clovek nemuze chtit moc :)

Třebaže je JS OOP tak super, zavádí se v ES6 vcelku normální podpora tříd.

To je jen syntaxe navíc, možnosti původního OOP nijak neomezuje. Vše zůstává dynamické.


SB

Re:Node.js a multiplexed IO obecně
« Odpověď #131 kdy: 02. 05. 2017, 11:29:36 »

Každý může posoudit sám, jaký matroš musí člověk brát aby s vážnou tváří napsal tohle: http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3


:O Tak vědel, jsem, že... ale tohle jsem nečekal... Tady skoro nic nedává smysl.
Mimochodem v Nodejs:
> new Boolean(true) == new Boolean(true)
false

Nemám slov.

SB

Re:Node.js a multiplexed IO obecně
« Odpověď #132 kdy: 02. 05. 2017, 12:04:01 »
Si děláte pr-del, žejo?
Proc? Mne se OOP a pseudo-OOP bez trid a bez dedicnosti libi vic nez OOP ve stylu C++ nebo Javy. Jednodussi, snadno pochopitelne pseudo-OOP ala JavaScript nebo Lua je mi docela sympaticke.

Proti prototypování nic nemám, ale provedení z JS jsem přestal považovat za povedené od doby, co jsem to 1. zkusil použít, 2. viděl implementaci v Selfu.

Jeste lepsi nez prototypy jsou imho protokoly/interfaces/... (kazdy jazyk to nazyva jinak, proste "mnoziny operaci pro danou datovou strukturu"). Tohle ma hodne hezkych jazyku - Go, Rust, Elixir, Haskell ma to same jeste mozna o kousek lepsi (TypeClasses). Ale tak zas od JavaScriptu clovek nemuze chtit moc :)

Protokoly a interfaces z podstaty neobsahují implementaci, pravděpodobně máte na mysli "interfaces" s implementací, což jsou vlastně ojebané traits/mixins. O tom tu už řeč šla, to není třeba znovu protřepávat.

Re:Node.js a multiplexed IO obecně
« Odpověď #133 kdy: 02. 05. 2017, 12:09:33 »
Protokoly a interfaces z podstaty neobsahují implementaci, pravděpodobně máte na mysli "interfaces" s implementací, což jsou vlastně ojebané traits/mixins. O tom tu už řeč šla, to není třeba znovu protřepávat.
Ne, mám namysli protokoly z Elixiru a interfjsy z Go. Skládají se z definice a implementace. Že definice obsahuje implementaci jsem netvrdil.

SB

Re:Node.js a multiplexed IO obecně
« Odpověď #134 kdy: 02. 05. 2017, 12:18:47 »

...Chci-li vlastnosti ekvivalence, tak nebudu ignorant a použiji ===.  Dál už je diskuse opravdu zbytečná.

Hezký den :)

Možná by se situace vyjasnila, kdyby se místo názvu "ekvivalence" operátoru === zde v diskusi používal název "identita".