Bol vydaný ECMAScript 2018

02.07.2018 | 19:27 | LUcoRP | Nová verzia

Bola schválená a uvoľnená nová verzia ECMA Script vo verzii 2018. Kompilovanú implementáciu tohoto skriptovacieho jazyka môžete poznať z webových technológií ako JavaScript.

Vac informácií nájdete v špecifikácii vydania.

Zdroj: Root.cz

    • RE: Bol vydaný ECMAScript 2018 02.07.2018 | 19:27
      Avatar LUcoRP Debian, *Ubuntu, Android  Administrátor

      javascript smrdi!!!!

      git blame | Muj Desvorc je vetsi nez tvuj!
      • RE: Bol vydaný ECMAScript 2018 02.07.2018 | 20:38
        Avatar vxmery Mint 21.3 Cinnamon  Používateľ

        Prečo? :)

        • RE: Bol vydaný ECMAScript 2018 02.07.2018 | 21:24
          Avatar LUcoRP Debian, *Ubuntu, Android  Administrátor

          Pretoze to je nekonzistentny zlepenec sity horucou ihlou, glorifikovany juniormi a hipstermi :)

          git blame | Muj Desvorc je vetsi nez tvuj!
          • RE: Bol vydaný ECMAScript 2018 04.07.2018 | 08:48
            Avatar WlaSaTy   Návštevník

            Robia sa v ňom aplikície pre mobily, a v neposlednej rade aj pre desktopy. A to dosť rýchlo, a aj s minimálnym úsilím. JS je niečo ako bol programovací jazyk C v čase assambleru. Ozajstní programátori používali Fortran.

            • RE: Bol vydaný ECMAScript 2018 04.07.2018 | 11:06
              Avatar LUcoRP Debian, *Ubuntu, Android  Administrátor

              To ale nevylucuje ze je to nekonzistentny zlepenec sity horucou ihlou. Su dva druhy vyvojarov co pracovali s JavaScriptom, ti ktori ho nenavidia a ti ktori trpia stokholmskym syndromom.

              git blame | Muj Desvorc je vetsi nez tvuj!
              • RE: Bol vydaný ECMAScript 2018 04.07.2018 | 12:30
                Avatar WlaSaTy   Návštevník

                Sú len dva typy vývojárov. Tí čo sa tešia že sa môžu niečo nové priučiť z projektu niekoho iného, a tí ktorý sa vždy strasú keď majú po niekom opraviť chybu v kóde ktorý nesie aj najmenšie známky "rukopisu" niekoho iného.

                PS: Keď sa naučíš tretí programovací jazyk, tak ťa také drobnosti prestanú rozčulovať. A je jedno v akom jazyku.

                • RE: Bol vydaný ECMAScript 2018 04.07.2018 | 13:04
                  Avatar LUcoRP Debian, *Ubuntu, Android  Administrátor

                  Ano, niekto prasenie v kode sebavedomo nazyva rukopisom.

                  PS: Pouzivam trochu vac nez tri programovacie jazyky, tym padom dokazem posudit kvalitu toho-ktoreho jazyka lepsie nez niekto kto sa programovanim podla vlastnych slov uz roky nezivi a to bez ohladu na to ako bohorovny sa citi byt.

                  git blame | Muj Desvorc je vetsi nez tvuj!
                  • RE: Bol vydaný ECMAScript 2018 04.07.2018 | 15:29
                    Avatar WlaSaTy   Návštevník

                    Niekto používa tabelétor, niekto medzery. Niekto začína blok na novom riadku, a niekto nie. A niekto vygógli supiš knižnicu z ktorej použije menej ako 5%, a zlepí to s ďalšími tridsiatimi knižnicami aby mal na základnej stránke/obrazovke jednu blikajúcu tabuľku s dynamicky meneným obsahom a dvoma tlačítkami ktoré nerozoznáš od rámčeka tej tabuľky.

                    Existujú programátori, a pojedači koláčov.

                    JS je pre svoju jednoduchosť vhodný pre začiatočníkov, a patrí mu budúcnosť. Ale priveľa kódu v ňom stvoreného je tým pádom od naozajstných začiatočníkov, a kvalita tomu zodpovedá. Ak ti to vadí, tak sa preorientuj na Fortran. Tam ti nebudú liesť decká do klávesnice.

                    • RE: Bol vydaný ECMAScript 2018 04.07.2018 | 16:10
                      Avatar LUcoRP Debian, *Ubuntu, Android  Administrátor

                      To ze v danom jazyku pisu zaciatocnici alebo pokrocili programatori nema nic spolocne s jeho zlym navrhom, tym ze prava ruka v nom nevie co robi lava, absolutne nezvladnutym typovanim, atd., atd.. Na webe najdes dostatok materialu na samostudium. Skus si napriklad hodit do konzoly prehliadaca 

                      x=[0]
                      x==x
                      x==!x

                      pripadne

                      Math.max()>Math.min()
                      Math.max()<Math.min()
                      

                      a poloz si otazku ci je to co spravi JS u akehokolvek jazyka ziaduce spravanie. A takychto pripadov su v JS desiatky, ak nie stovky.

                      git blame | Muj Desvorc je vetsi nez tvuj!
            • RE: Bol vydaný ECMAScript 2018 04.07.2018 | 21:13
              Avatar Miroslav Bendík Gentoo  Administrátor

              JS je koncentrovaná esencia antipatternov. Malá ukážka kódu, ktorý som opravoval hodinu než som zistil, že istá knižničná funkcia mi konvertovala typ startNumber na string:

              for (var i = startNumber + 1; i < totalForms; i++) {
                  console.log(i);
              }
              01
              2
              3
              4
              undefined
              

              Väčšina funkcií je navrhnutá otrasne.

              > [1, 2, 6, 10].sort()
              [ 1, 10, 2, 6 ]
              
              > parseInt(0.0000003)
              3
              > parseInt(0.000003)
              0

              DOM je nekonzistentná guča metód, ktoré boli navrhnuté buď grafomanom, alebo niekym, kto sa vôbec nezamýšľal nad tým, čo robí. Príklad:

              parentNode.insertBefore(newNode, referenceNode);
              // namiesto
              referenceNode.insertBefore(newNode);
              

              Alebo tu máme polia a polia ktoré nemajú metódy ako polia:

              var a = [1, 2, 3]
              > a[0]
              1
              > a.forEach((item) => { console.log(item); })
              1
              2
              3
              
              var b = document.getElementsByTagName('div')
              > b[0]
              "[object HTMLDivElement]"
              > b.forEach((item) => { console.log(item); })
              TypeError: b.forEach is not a function
              

              Javascript je a bude naďalej populárny, ale nie je to dobrý jazyk. Pre začiatočníka nie je vhodný pretože ho naučí antipatterny. Píšem to ako človek, ktorý aktívne používa cca 10 jazykov a je platený hlavne za JS a python.

              • RE: Bol vydaný ECMAScript 2018 04.07.2018 | 23:00
                Avatar WlaSaTy   Návštevník

                Skús to predefinovať na číslo, a porovnaj výsledky.

                • RE: Bol vydaný ECMAScript 2018 05.07.2018 | 05:22
                  Avatar Miroslav Bendík Gentoo  Administrátor

                  Čo by som mal predefinovať na číslo?

                  • RE: Bol vydaný ECMAScript 2018 06.07.2018 | 08:08
                    Avatar WlaSaTy   Návštevník

                    Premennú. Napríklad ten humorný inkrement s výsledným stringom 0+1+1+1 donekonečna mi liezol na nervy aj v bashi.

                    • RE: Bol vydaný ECMAScript 2018 06.07.2018 | 11:45
                      Avatar Miroslav Bendík Gentoo  Administrátor

                      No tú som potom pretypoval, ale ani vo sne by ma nenapadlo, že mi funckia vráti počet ako string v niektorých prehliadačoch (tam kde bola emulovaná) a chyba sa prejavila až v niekoľkej úrovni vnorenia niekte úplne inde než vznikla. Pritom by stačilo, aby bol ten jazyk trochu prísnejší a namiesto filozofie "urobím niečo nelogické" by jednoducho vyhodil výnimku a mne by bolo už jasné, že inkrementácia stringu je blbosť.

                      • RE: Bol vydaný ECMAScript 2018 07.07.2018 | 09:08
                        Avatar WlaSaTy   Návštevník

                        Takže si uznal, že to nie je problém jazyka ale že to je problém toho ktorého interpretera.

                        • RE: Bol vydaný ECMAScript 2018 07.07.2018 | 13:20
                          Avatar Miroslav Bendík Gentoo  Administrátor

                          Nie neuznal, to, že string++ vracia 0 namiesto toho aby vyhodil výnimku je jednoducho problém návrhu jazyka (pretože tak to majú v špecifikácii). To, že knižnica niekedy vracia string je zase chyba, ktorá vznikla kvôli návrhu jazyka, keby bol javascript prísnejší tá chyba by bola ľahko odhalená, ale takto si to nikto nevšimol lebo javascript nehlásil chybu len urobil o jednu iteráciu viacej.

              • RE: Bol vydaný ECMAScript 2018 05.07.2018 | 09:02
                Avatar Miroslav Bendík Gentoo  Administrátor

                Do zbierky divných vecí ešte pridávam:

                Array.prototype.forEach.call(array, function(element) {
                    console.log(element);
                });
                

                Python ekvivalent

                for item in array:
                    print(item)
                

                Vysvetlenie: niektoré array like objekty majú funkciu forEach, iné ju nemajú (napr. HTMLCollection). Keďže niekedy používam vo funkciách HTMLCollection, inokedy nie, musím použiť toto monštrum aby funkcia akceptovala ľubovoľný array like objekt. Toto je krásna ukžka zle navrhnutej prototypovej dedičnosti priamo v návrhu jazyka.

                Prechádzanie cez kľúče slovníka vyzerá takto:

                for (var key in array) {
                    if (Object.prototype.hasOwnProperty.call(array, key)) {
                        console.log(key, array[key]);
                    }
                }
                

                Python ekvivalent

                for key, value in array.items():
                    print(key, value)
                

                Vysvetlenie: slovník môže mať okrem vlastných property aj zdedené / doplnené metódy cez prototyp. Preto je potrebné kontrolovať, či je kľúč vlastný, alebo zdedený. V príkladoch sa často uvádza kód array.hasOwnProperty(key), ale tento kód je chybný pretože užívateľom definované pole môže mať vlastnosť array['hasOwnProperty'] = true a celý kód sa na tom zosype.

                Celkovo používanie jedného typu pre zoznam (list), slovník (dictionary) a množinu (set) je veľmi neprehľadné a produkuje ťažko predvídateľné výsledky.

                Myslím, že pre začiatočníka je omnoho vhodnejší jazyk, ktorý nemieša hrušky s jablkami.

                • RE: Bol vydaný ECMAScript 2018 06.07.2018 | 08:11
                  Avatar WlaSaTy   Návštevník

                  Pre začiatočníka je najvhodnejší jazyk taký, čo ho rýchlo a správne pochopí. Nielen syntax, ale aj logiku a použitie. To čo vadí na tom jazyku tebe je chyba jedného z interpretrov. Nahlás to ako bug do prejliadača.

                  • RE: Bol vydaný ECMAScript 2018 06.07.2018 | 11:50
                    Avatar Miroslav Bendík Gentoo  Administrátor

                    To, čo mi vadí je súčasťou štandardu ECMAScript, nie konkrétna implementácia v prehliadači (ok DOM nepatrí do štandardu ECMAScript, ale všetko ostatné áno). Jednoducho javascript bol narýchlo zbúchaný jazyk, v podstate lisp s javovskou syntaxou osekaný o dobré veci ako preprocesor a užitočné funkcie bez možnosti nad nim rozumne stavať DSL. Pritom v lisp-e si viem krásne predstaviť veci ako skladanie DOM. Namiesto toho tu máme hnusné natívne document.createElement, alebo môžme využiť celkom elegantnú knižnicu, alebo jsx a preženieme to cez preprocesor.

                    • RE: Bol vydaný ECMAScript 2018 07.07.2018 | 09:12
                      Avatar WlaSaTy   Návštevník

                      Tak si zober lisp z napríklad emacs-u, a narvi ho do napríklad firefoxu keď ti vadí chyba interpretovania o ktorej píšeš na počesť novej definície jazyka na ktorom je založený JS.

                      Ja idem na huby, čau. Keby som ostal ticho, tak kúšem hlinu.

              • RE: Bol vydaný ECMAScript 2018 07.07.2018 | 19:38
                Avatar bedňa LegacyIce-antiX  Administrátor

                A čo tak Bloby a práca s veľkými dátami a prevodmi medzi formátmi, zatiaľ som to vždy dal nejak na náhodu a vôbec som z toho v prdeli.

                A čo indexedDB, niečo som rozchodil a sledoval čo sa deje vo FF v dátach fyzicky a je to masaker, vytvárajú sa tam dáta, potom nejak miznú a proste zasieram užívateľovi HDD dátami, ktorí ani neviem ako odtiaľ dostať. Nemáš nejaký dobrý návod na indexedDB? Ja som z toho kok.. z tých inštancií a celého návrhu.

                To že je občas "metoda", metoda a občas je funkcia to sú proste bonusy, kde si bez Internetového vyhľadávača neškrtneš, páč tá záplava nekonzistentných vecí sa nedá zapamätať.

                Našťastie pár ľudí sa rozhodlo nad JS napísať nejaké veci, kde sa dá písať v nejakom rozumnom jazyku a ten sa potom preloží na JS, prípadne sa to preloží až do takých rýchlostí ako asm.js atď. Sú frameworky kde preklad dokáže bežať v rádovo milisekundách a to sú tie lepšie stránky.

                Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org