Komentáře k článku

Dart – Čo? Prečo?

V poslednej dobe prudko narástla dôležitosť JavaScriptu na webe a vývojári čoraz bolestivejšie narážajú na jeho nedostatky. Riešením možno bude postupné obohacovanie JavaScriptu o chýbajúcu funkcionalitu a plátanie najväčších problémov. Možno nie. Možno to bude Dart.

Zpět na článek

24 komentářů k článku Dart – Čo? Prečo?:

  1. GM

    Já vím, že bez podobných experimentů by spousta skvělých věcí vůbec nemohla vzniknout, stejně jsem skeptický spíš až nepřístupný uznat takovým projektům právo na existenci. Pokud jde o nativní implementaci v prohlížeči, tak myslím, že jedno selhání historii bohatě stačí a to už se jmenuje VBScript. Překlad do jiného jazyka se mi příčí úplně, je z toho spousta chyb, špatně se to debuguje, je k tomu potřeba gigantická infrastruktura a stejně to člověka nutí přemýšlet v konstrukcích cílového jazyka (tenhle aspekt je nejlépe vidět na ORM). A navíc je javascript podle mě jazyk naprosto skvělý a spíše by bylo lepší, kdyby se více jazyků podobalo jemu a ne naopak.

    1. Re:
      Nesouhlasím s vámi. Prošel jsem si programováním od Pascalu, Cecka, Javy, Perlu, PHP a přesto jsem se nedokázal sžít s JS. Než jsem zkusil Dart tak jsem prasil v Jquery špagetovej kód a prototypy nikdy nepoužíval, nerozumím jim a ta rozplyzlost návrhu mě odpuzovala, takže nic než drobné „funkcionální“ věci jsem nedokázal udělat. Jo je to moje chyba, ale takto „konzervativně“ orientovaných programátorů nenávidějících javascript znám hodně.

      Po týdnu v Dartu jsem dokázal napsat multiplayer webovou hru – to co bych v JS nedokázal a vlastně ani nechtěl dokázat. A abych pravdu řekl jazyk i standardní knihovny mě hodně uchvátili, je tam spousta skvělých nápadů – trochu mi mrzí, že vývojáři okolo browserů jsou spíše javascript-a-nikdy-jinak a tajně doufám, že se to zlomí když JS má k ideálu pro všechny opravdu daleko.

      K tomu překladu, díkybohu k myšlení v konstrukcích JS nenutí, není třeba. Osobně to také nemám rád, stejně jako např cofeescript atd, pravdou je, že dart2js opravdu funguje a zatím jsem neobjevil něco kvůli čemu bych měl měnit svůj kód, ale nedělám si iluze, že se nějaké corner casy najdou. Lepší by to bylo samozřejmě nativně, ne že ne.

      1. Vojtěch Semecký

        Re:
        Naprostý souhlas. Zřejmě jsem jeden z těch konzervativně orientovaných programátorů.

        Když přišlo nodejs, hodně mě zaujalo a opět jsem se snažil najít k té „js mentalitě“ cestu. Ale musel jsem opět konstatovat, že něco tak zmateného a nepřehledného, jako je javascript, jsem ještě neviděl. A opravdu nechápu, jak se to někomu může líbit.

        A fakt, že musí vznikat věci, jako TypeScript nebo CoffeeScript, jenom dokazuje, že JavaScript nic úžasného není. Naopak zmíněný Dart nebo třeba Golang, jsou fakt pěkně navržené jazyky.

      2. Naith

        Re:
        Musím souhlasit, JS opravdu nemám rád.
        Můžete dát odkaz na tu hru a případně napsat podrobnější informaci ohledně výkonu a velikosti?

    2. vaclav.sir

      Re:
      To, že v minulosti existoval jiný jazyk, který byl horší než JS a neprosadil se, není žádný argument. Dart je lepší než JS. Stejně tak TypeScript je lepší než JS. Nebo taky JS poctivě okomentovatný a zkompilovaný Closure Compilerem je lepší než „čistý“ JS.

      Žádná gigantická infrastruktura potřeba není. Na větších projektech je samozřejmostí používat nějaký build systém kvůli testům a minifikaci, přidat další task není nic gigantického. Debugování řeší buďto source mapping (jako u jiných transpilerů), nebo vestavěný debugger v tom jejich pluginu do Eclipse.

      Dokud funguje Dart pouze jako transpiler, tak podle mě moc velkou budoucnost nemá, to už spíš ten TypeScript. Jakmile by ho ale začlo nativně podporovat Chromium, Safari a Firefox (a Google na to má, když bude chtít) a byl by oproti JavaScriptu výrazně výkonější, tak by mohl hodně zamíchat kartama.

  2. Radek Miček

    JavaScript je velmi špatně navržený jazyk ( http://www.abclinuxu.cz/poradna/programovani/show/365261#57 ), což se projeví zvláště, když píšete větší aplikaci. Některé chyby opraví nová verze Harmony, ale i tak v něm bude IMO těžké tvořit velké aplikace.

    Kompilátor dart2js produkuje source map pro usnadnění ladění.

    > stejně to člověka nutí přemýšlet v konstrukcích cílového jazyka

    Pokud píšete celou aplikaci v Dartu, tak si to nemyslím.

  3. Hmm

    Dart urcite vyskusam. Uz len kvoli tomu, ze mi lezie na nervy vzajomna nekompatibilita roznych jQuery verzii a modulov napisanych v nich.

  4. diverman

    skoda
    Skoda, ze se prohlizece nevydaly smerem „podporujme jakykoliv jazyk skrze APi virtualniho stroje“: python, perl, ruby apod. a namisto toho implementuji konkretni jazyk(y).

      1. Pavel Stehule

        Re: skoda
        Kdyby tomu tak bylo, tak by client side scripting nikdy nerozšířil. Tyto technologie se jednoduše učí, protože je možné začínat od jednoduchých HTML stránek, do kterých se přidává kód přirozenou formou v čitelné podobě. Pro začátek stačí textový editor a HTML browser. Použití jakéhokoliv VM by už vyžadovala složitější nástroje a složitější postupy, což je podle mne primární důvod, proč se neujaly Java applets nebo Silverlight. Vždy tu bylo mnohem větší masa „neprogramátorů“, kteří posouvali těžiště mimo klasiku – kovaní programátoři by nějraději dělali formuláře a aplikaci ve flashi nebo v něčem podobném. Což by asi teď už slo – díky mnohem rychlejšímu internetu, ale před 15 roky to vedlo k zrůdně pomalým aplikacím. V podstatě musel přijít Google a ukázat, jak se píší internet „user friendly“ aplikace.

        1. diverman

          Re: skoda
          Pavle, tak, jako napises JavaScript kod do tagu , proc totez nelze pro Python, Perl, Ruby apod..?

          1. okbob

            Re: skoda
            Abych mohl spustit kód v tagu, tak musím mít požadované prostředí na klientu. V 90letech a ještě těsně po roce 2000 byl ve win jednoduše dostupný pouze vbscript a javascript. Cokoliv dalšího se muselo stahovat z internetu a instalovat, což ani leckde není povolené – a jediné, co jakž takž fungovalo na všech platformách (win, macos, linux) byl javascript.

            Navíc, univerzální klient s client side scripting šel proti zájmům MS, takže MS fakticky blokoval tyhle technologie (minimálně se je nesnažil rozvíjet). V původním MS pojetí internetu jste pro aktivního tenkého klienta potřebovali doplňky v COMu resp v DCOMu (pokud možno napsaných ve VB a běžících vůči NT serveru), což bylo nejdříve dost děravé a pak docela komplikované a samo rozbíjející se. Potom MS přišel s Silverlightem – cokoliv s čím přišel MS byl skrytý vendor lock (aplikací psaných pro IE 5.5 používající vlastní COM objekty se ve firmách ještě teď někde zbavují). Javascript už pak měl takovou penetraci, že ho MS nemohl nepodporovat.

  5. blizz

    Dart
    Dart ani TypeScript ma nicim nezaujali C like syntax je odporne ukecana a neprehladna (oproti jazykom z rodiny ML, ktore su viac human readable). OOP model javy a C# mi je nesympaticky – javascript ma lepsi a syntax sa da poriesit transpilermi napriklad http://livescript.net/

    zaujal ma este aj F# transpiler do JS https://github.com/ZachBray/FunScript ale ten je zatial v plienkach – dynamicke veci riesi cez TypeProviders a neoptimalizuje tail cally takze je to v praxi nepouzitelne zatial

  6. Pavel Dvořák

    Tak se mi zdá, že bude pro mě Dart to pravé ořechové. Nikdy jsem nepatřil mezi zastánce JavaScriptu. Největším mučením na vývoji čehokoliv od webových stránek až po účetní systém pro mě byl vždycky JavaScript. Když už jsem ho musel použít, tak jsem se s pár řádky kódu patlal příšerně dlouho a stejně mi to nefungovalo tak, jak bych si přál. Zkoušel jsem už všechno od jQuery přes TypeScript, probíral se neurčitými zprávami ohledně Harmony (protože jsem doposud nepotkal návrh její specifikace), ale i ta mi přišla, že v ní toho mnoho nezlepšili (i když zarytí zastánci JS ji oslavují jako příchod spasitele), zkoušel jsem se provrtat AJAXem nebo některými novými JS preprocessory (většinou za moc nestojí), ale pořád jsem nenacházel nic, co by bylo pro mě jednoduché a přitom účelné a chytré řešení, jak uživateli provést nějakou složitou operaci. Už se těším na druhý díl…

  7. mczolko

    Maličké otevření očí
    Na začátek bych se vás nechtěl dotknout, ale to že se vám nelíbí JavaScript může pramenit z neznalosti tohoto jazyka a stylem, jak se v něm aplikace píšou. Rád bych vám připoměl, že se jedná o event-driven development. Takže se na základě událostí dějí různé operace, jenž nejsou natolik svázány se zbytkem aplikace. jQuery udělalo z JS nástroj který pracuje z domem (např. schovává a rozbaluje obsahy elementů). AJAX? NodeJS? To jsou nástroje, ze kterých září potenciál. Osobně na JS nevidím nedostatky, dá se v něm psát pseudo-OOP, nepracuje se s ním jako request-response, ale stále čeká na událost, kterou vykoná. V neposlední řadě je jeho předností RYCHLOST a client-side procesování. Někdo mě tady pobavil s komentářem, že CoffeeScript a TypeScript jsou důkaz že se v JS nedá psát, bohužel se tyto ‚jazyky‘ kompilují z5 do JS, tak WTF :D . Ok, JS jako takovýmu chybí typovost, interfaces, private a protected metody atd. takže tento problém TS řeší. A pak tu je jeden mocný nástroj zvaný Google Closure Compiler, který nahradí metodu (proměnný, atd.) za pár znaků a statickou analýzou vám projede kód a na základě anotacích udělá za vás to samý co TS. S advanced compilation váš skript je mnohem menší a ke klientovi se přenese rychleji. A jinak je super, že se vám JS nelíbí, vystředí se aspoň lidi, kteří podstatu JS nechápají a programátorům (né kodérům :D ) JS zvyšujete platové ohodnocení :)

    1. Samuel HapákAutor příspěvku

      Re: Maličké otevření očí
      Vidíš na JavaScripte nejakú inú výhodu ako to, že je to dynamický jazyk? Rozumej, dynamičnosť je sexi, no JavaScript nie je zďaleka jediný dynamický jazyk (spomeňme Python, Ruby).

      Môj osobný dojem je, že na JavaScripte je príjemné, že je to dynamický jazyk, no zároveň nepoznám horší používaný dynamický jazyk (ok, možno PHP) a svoje výhrady som spomenul v článku.

      Ako vidím, ty máš JS veľmi rád a vidíš v ňom viac dobrého, ako ja. Možno keby si to podrobnejšie rozviedol, napr. môžeš porovnať JS s iným dynamickým jazykom, určite by to bolo zaujímavé.

    2. Ivan Nový

      Re: Maličké otevření očí
      A to je ono, aby se aplikace dobře udržovaly, je třeba odstranit práci s domem. Html skrýt do objektů UI knihovny a vůbec s ním nepracovat. Pak se dá zajistit to, že při ladění se budou do generovaného HTML vkládat informace s odkazy na místa, kde se příslušný kód, který to HTML generoval, nachází. Není nic horšího, než když kvůli přidání jednoho slova do stránky jste nucen prohledávat desítky zdrojových souborů a hledat, kde se to vlastně generuje. Oddělení HTML od aplikace pomocí knihovny pak umožní, aby generovaný HTML byl multiplatformní. A právě toto lze udělat pomocí Dartu.

    3. Mirek

      Re: Maličké otevření očí
      To jsem si už taky všimnul, že čím horší jazyk nebo platforma, tím lepší sociální jistoty včetně jistoty dobrého platu za malé výsledky pro programátory. Je otázka, jestli je to přínos pro sw firmu jako takovou.

  8. stanislav.vasko

    Syntax a psaní v jazyce
    Když se rodí nový jazyk, zvažuje se asi spousta věcí. Nad čím se opět nikdo nezamyslel, je jak „dobře“ se píší různé znaky. Opět peklo s přepínáním klávesnic, dostupností znaků atd… Snad jednou někdo bude mít sílu tupě neopisovat a nebude nutné vše dohánět editorem.

    1. vaclav.sir

      Re: Syntax a psaní v jazyce
      Právě naopak. Pokud někdo vyvíjí prakticky v kterémkoli současném jazyce, tak už má přístup ke všem těm znakům dávno vyřešený. Nejčastěji anglickou klávesnicí (globálně). Já osobně ale nedám dopustit na Czech Qwerty.

      1. stanislav.vasko

        Re: Syntax a psaní v jazyce
        Programovat na Czech Qwerty beru jako sebemrskačství a smekám nad Vaší trpelivostí si na to zvyknout a pak to používat.

        1. vaclav.sir

          Re: Syntax a psaní v jazyce
          Nechápu proč. Mám k dispozici všechny české znaky i všechny „programátorské“ znaky, aniž bych musel přepínat klávesnici.

          Pokud jde o zvykání (to už je hodně dávno), dost pomáhá fakt, že všechny ty znaky najdu přesně tam, kde jsou na fyzické klávesnici namalované. Hledám třeba ampersand, kouknu na klávesnici, najdu ho u sedmičky a napíšu ho AltGr-7. A když někdy náhodou sedím u cizího stroje, tak na anglické klávesnici taky všechno najdu dost rychle, protože je to na stejném místě (jen s jinými modifikátory).

          Naopak za sebemrskačství považuji používání standardní české klávesnice (qwertz) a vrchol je přepínání mezi touto a anglickou. I tím jsem si kdysi prošel, než jsem objevil Czech Qwerty a už bych se nevracel.

Napsat komentář

Tato diskuse je již příliš stará, pravděpodobně již vám nikdo neodpoví. Pokud se chcete na něco zeptat, použijte diskusní server Devel.cz

Zdroj: https://www.zdrojak.cz/?p=9297