Postřehy ohledně architektury JavaScriptu

čumil

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #45 kdy: 24. 08. 2016, 22:22:56 »
Tak má user smůlu. Ať si tam dá klidně Netscape a pak si stěžuje kde chce.
Když to vysvětlíš zákazníkovy ...

Se na něj prostě vyseru. Zkus v ČR rešit každou blbost, co si někdo vymyslí. Pokud má problém, ať jde za lopatama, co mu tam dají klidně podporu hodinek s vodotryskem. Jsou věci, které smysl mají a které ne.
Tak když ti to takhle funguje ...


čumil

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #46 kdy: 24. 08. 2016, 22:24:42 »
Čumile, limitovanej je tvůj mozek. V ES6 všechno píšu už přes dva roky. Vzbuď se.
Tydle keci si nech někam jinam :D naposledy mi něco o vzbuzováni tlačili svědci jehovovy ...

K tomu ES6, gratuluju, zasloužíš si metál.

čumil

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #47 kdy: 24. 08. 2016, 22:36:41 »
Shit to je, třídy prostě do prototype based OOP nepatřej, a je jedno jestli jsou pouze imaginární a nebo real.

Jasně, můžeš to používat furt stejně protože tam žádný třídy ve skutečnosti nejsou. Jde tady spíš o tu filozofii.

Já nevím co ti na tom vadí. Výsledek je stejný a zápis je přehlednější nebo minimálně stejně přehledný. Nikdo tě nenutí to používat. Mnohem diskutabilnější mně přijdou properties. Jejich používání může kód znepřehlednit.
Vadí mi to spíše z filozofických důvodů, to je vše.

Properties mě zrovna přijdou fajn, i když mohou jak ty říkáš, věci zkomplikovat.

Co mě ale sere je absence nějaké built-in metody na klonování objektů. Neexistuje a nikdo ji asi ani v příštím století nepřidá. Takhle si musí člověk napsat vlastní, ale protože je v JS, tak je to samozřejmě pomalejší než kdyby to bylo nativní.

gl

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #48 kdy: 24. 08. 2016, 22:43:38 »
Co mě ale sere je absence nějaké built-in metody na klonování objektů. Neexistuje a nikdo ji asi ani v příštím století nepřidá. Takhle si musí člověk napsat vlastní, ale protože je v JS, tak je to samozřejmě pomalejší než kdyby to bylo nativní.

Taková funkce je v každé utility knihovně. Nepoužíváš underscore, lodash nebo jQuery?

čumil

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #49 kdy: 24. 08. 2016, 23:26:48 »
Co mě ale sere je absence nějaké built-in metody na klonování objektů. Neexistuje a nikdo ji asi ani v příštím století nepřidá. Takhle si musí člověk napsat vlastní, ale protože je v JS, tak je to samozřejmě pomalejší než kdyby to bylo nativní.

Taková funkce je v každé utility knihovně. Nepoužíváš underscore, lodash nebo jQuery?
V 90% případů ty knihovní funkce nejsou schopny ani udělat deep copy. Přenos prototypů je z říše pohádek, o cyklickejch referencích ani nemluvím.

Nehledě na to že to furt neřeší problém. Není to nativní == je to pomalí.


Kit

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #50 kdy: 25. 08. 2016, 00:05:32 »
Co mě ale sere je absence nějaké built-in metody na klonování objektů. Neexistuje a nikdo ji asi ani v příštím století nepřidá. Takhle si musí člověk napsat vlastní, ale protože je v JS, tak je to samozřejmě pomalejší než kdyby to bylo nativní.

Taková funkce je v každé utility knihovně. Nepoužíváš underscore, lodash nebo jQuery?
V 90% případů ty knihovní funkce nejsou schopny ani udělat deep copy. Přenos prototypů je z říše pohádek, o cyklickejch referencích ani nemluvím.

Nehledě na to že to furt neřeší problém. Není to nativní == je to pomalí.

Nenapadá tě, že je to prostě záměr, aby to nešlo, alespoň ne jednoduše?

čumil

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #51 kdy: 25. 08. 2016, 01:53:35 »
Co mě ale sere je absence nějaké built-in metody na klonování objektů. Neexistuje a nikdo ji asi ani v příštím století nepřidá. Takhle si musí člověk napsat vlastní, ale protože je v JS, tak je to samozřejmě pomalejší než kdyby to bylo nativní.

Taková funkce je v každé utility knihovně. Nepoužíváš underscore, lodash nebo jQuery?
V 90% případů ty knihovní funkce nejsou schopny ani udělat deep copy. Přenos prototypů je z říše pohádek, o cyklickejch referencích ani nemluvím.

Nehledě na to že to furt neřeší problém. Není to nativní == je to pomalí.

Nenapadá tě, že je to prostě záměr, aby to nešlo, alespoň ne jednoduše?
A nenapadá tě, že pokud je to záměr, tak je kurva debilní ? Zvlášť v prototype based OOP kde se nové objekty standardně tvoří právě skrz klonování.

gl

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #52 kdy: 25. 08. 2016, 03:30:56 »
A nenapadá tě, že pokud je to záměr, tak je kurva debilní ? Zvlášť v prototype based OOP kde se nové objekty standardně tvoří právě skrz klonování.

Zaprvé, objekty se AFAIK většinou vytváří konstruktorem. Zadruhé, jQuery.extend má volbu pro deep copy. Lodash má deepClone. Všechny kopírovací funkce, se kterými jsem se setkal, přenáší prototyp.  Cyklické reference ty funkce kontrolují.

gl

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #53 kdy: 25. 08. 2016, 03:54:14 »
Oprava. jQuery.extend nefunguje správně. Nakopíruje vlastnosti prototypu přímo do objektu. Lodash clone funguje správně.

balki

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #54 kdy: 25. 08. 2016, 09:03:04 »
V mojej oblubenej knizke "Douglas Croockford - Javascript:The good parts" autor vytvoril klonovaciu metodu monkey patchingom objektu "Object".

Kód: [Vybrat]
if (typeof Object.create !== 'function') {
     Object.create = function (o) {
         var F = function () {};
         F.prototype = o;
         return new F();
     };
}

Klonuje sa potom takto:
Kód: [Vybrat]
var another_stooge = Object.create(stooge);
Mne to vzdy fungovalo, je nejaky dovod, preco to nepouzivat?

Pytam sa, lebo tu su sami experti a ja som len vysokoskolsky vzdelana lopata v odbore softverove inzinierstvo s praxou.


SB

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #55 kdy: 25. 08. 2016, 09:14:31 »
Vzhledem k tomu že GO není ani objektové, tak bych s ním neztrácel čas, procedurální přístup je otázka historie.

Potřebuju to pro obchodní systémy, takže neobjektový (či jiný rádobyobjektový jazyk) nechci. Takže děkuji Zbojovi, ale Go asi no go.

SB

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #56 kdy: 25. 08. 2016, 09:27:18 »
...Jak je to myšleno? Blbě. Autor si pod "lowlevel" představil asi něco kapku jinýho než jak se obecně pod tímhle termínem myslí. Lowlevel je například C++, ale není až tak lowlevel jako třeba C nebo rovnou ASM ...

Předpokládám, že autor (Zboj) si pod úrovní jazyku nepředstavuje jeho abstraktnost, ale množství do jazyku začleněných sraček, které by měly být součástí knihoven.

SB

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #57 kdy: 25. 08. 2016, 09:34:57 »

ES6 třídy jsou jen cukr nad prototypy. Narozdíl od čumila si nemyslím, že je to shit, ale není to nic převratného. To co se píše v Good Parts stále platí.

Přehled podporovaných featur v jednotlivých verzích je zde:

http://node.green/

Osobně si myslím, že předstírat, že Javascript je třídně-instanční, není dobře, je prostě prototypový, tak by se neměly v jazyku takovéto excesy objevovat. Jazyk má být minimalistický - narážím na Lisp či Smalltalk a jejich protipólů C# a Javu, proto mě tyto tendence v Javascriptu netěší.
Dovolil bych si připomenout citáty 2 velikánů:
„Dokonalosti není dosaženo tehdy, když už není co přidat, ale tehdy, když už nemůžete nic odebrat."
„Jednoduchost je nejvyšší sofistikovanost."

balki

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #58 kdy: 25. 08. 2016, 09:42:25 »

ES6 třídy jsou jen cukr nad prototypy. Narozdíl od čumila si nemyslím, že je to shit, ale není to nic převratného. To co se píše v Good Parts stále platí.

Přehled podporovaných featur v jednotlivých verzích je zde:

http://node.green/

Osobně si myslím, že předstírat, že Javascript je třídně-instanční, není dobře, je prostě prototypový, tak by se neměly v jazyku takovéto excesy objevovat. Jazyk má být minimalistický - narážím na Lisp či Smalltalk a jejich protipólů C# a Javu, proto mě tyto tendence v Javascriptu netěší.
Dovolil bych si připomenout citáty 2 velikánů:
„Dokonalosti není dosaženo tehdy, když už není co přidat, ale tehdy, když už nemůžete nic odebrat."
„Jednoduchost je nejvyšší sofistikovanost."

Squeak image ma 7 mb, pharo ma 18 mb. Kosate java api bolo prave inspirovane smalltalkom.

SB

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #59 kdy: 25. 08. 2016, 09:51:59 »
Proč by neměl v node.js používat nové featury? Většinou se v budoucnu přechází na novější verzi a ne na starší. Není problém nainstalovat novější verzi i na starších systémech.
O node nejde, o browser jde. Verzi nodu je možný ovlivnit, ale user má to co chce mít a ne to co chce developer.

Tady to spíš vede na otázku, kolik zdrojáků sdílíte na straně Node (server) a prohlížeče (klient).