Ono smyslem nebyl dosahovat maximální výkon, i když tedy samozřejmě o výkon jde také. Nicméně není cílem vést žebříčky výkonu. Spíš bylo cílem immutabilita a nástroje pro práci s immutabilními objekty.
Samotný výkon parsování a serializace a manipulace s DOMem nemusí být oslnivá, nicméně hodně se projeví třeba možnost sdílet data mezi vlákny bez zamykání, nebo zřízení cache kde už mám data naparsovaná, atd. To by chtělo najít nějaký příklad, který by se implementoval jedním nebo druhým způsobem.
Celý návrh vychází zejména ze zkušeností, jak pracuji s dokumentovou NoSQL databází. Zpravidla stáhnu dokument, něco v něm změním a zase ho uložím nebo pošlu uživateli, přičemž ono "stažení dokumentu" může být vyřízeno právě z cache. Bez immutability by ono "něco změním" mohlo buď způsobit propagace změn do cache, nebo budu muset stejně dělat hluboké kopie. Při zaručení immutability nemusí kopírovat vše, nový DOM vlastně vzniká za maximálního přispění starého, a kopírování se omezuje jen na přesun sdílěných pointerů.
Muzete to tak chapat. Nicmene si myslim, ze tohle je na sirsi diskuzi presahujici ramec clanku... snahou bylo i zamyslet se, jestli by nebylo vyhodne nektera data drzet v DOMu a neprevadet je sem tam do vnitrnich reprezentaci a zpet. Tedy nejde jen o samotny json. Hodnotu ma i hotovy system imutabilnich objektu, jako ze to je taky hype o kterem vsichni mluvi ale nikdo to poradne neumi uchopit a vyuzit.
Intenzivně se zabývám programováním zejména v jazyce C++. Vyvíjím vlastní knihovny, vzory, techniky, používám šablony, to vše proto, aby se mi usnadnil život při návrhu aplikací. Pracoval jsem jako programátor ve společnosti Seznam.cz. Nyní jsem se usadil v jednom startupu, kde vyvíjím serverové komponenty a informační systémy v C++
Přečteno 50 632×
Přečteno 23 688×
Přečteno 22 739×
Přečteno 20 718×
Přečteno 17 626×