Přejít k navigační liště

Zdroják » Zprávičky » K Dartu: Proč JavaScript už vyhrál?

K Dartu: Proč JavaScript už vyhrál?

Zprávičky JavaScript, Různé

Nálepky:

Provokativní komentář od Petera-Paula Kocha vyšel na blogu Quirksmode. „Proč Google Dart coby ‚strukturovaný jazyk pro webové programování‘ shoří? Protože JavaScript už tady je, na několika miliardách přístrojů!“ Peter-Paul Koch tuto myšlenku v článku rozvíjí a vysvětluje, kde jsou hlavní úskalí při rozšiřování Dartu. Největší problém vidí ve velké fragmentaci trhu s prohlížeči (k desktopovým si připočtěte také smartfonové). I když mají prohlížeče od Google cca 20% podíl, bude to dostatečné? Koch připomíná osud VBScriptu, kterému ani jednoznačná dominance IE nepomohla…

Komentáře

Subscribe
Upozornit na
guest
20 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
Diskobolos

… díky JS knihovnám typu JQuery se sal kód multiplatformní a přehlednější. JS není ideální, ale buďme rádi za to co je.

PH

Nemá pravdu

Ladislav Thon

Imho ppk je mimo, a If you want to work with the web, learn JavaScript. If you don’t want to learn JavaScript, stay the hell away from the web. je spíš křeč než co jiného :-)

tdvorak

Třeba má jen jinou definici „work with the web“ než ty :-) Stejně to je tak, že skoro každej kdo se motá okolo webu js umí nebo má po ruce někoho, kdo to udělá za něj.

Srigi

Preco s tym nesuhlasite, ved je to pravda? JS je alebo sa z neho stava jeden z najdolezitejsich prog. jazykov sveta. Ak ma dnes bezny PHPckar alebo koder HTML hodnotu X a nezaujima sa o svoj rozvoj (ucit sa kodit hrube klienty v JS, alebo aspon animacie a DOM manipulation v jQuery), jeho hodnota bude v uz blizkej buducnosti X – Y. Trend je jasne vidiet – coraz viac logiky sa tlaci do kliento (mame tu MVC v JS), backend sa upozaduje iba ako storage. A storage nie je web.

Ladislav Thon

IMHO JavaScript už se vyčerpal, a ačkoliv je skvěle rozšiřitelný (hmm, budu muset večer napsat pár mailů ohledně delegace a rozšiřitelné syntaxe na mailing list), to množství kiksů v něm už nikoho nebaví. Je to jasně vidět na vzrůstající popularitě CoffeeScriptu, jenže to je taky pěkný bastl.

blizz

Tak urobia dart to js compiler. JS má peknú filozofiu ale má pár problémov, Dart ale vôbec nerieši problémy ktoré JS má a tým najväčším problémom je jeho ukecaná syntax – vychádzajúca zo zastaralého jazyka C. Ja ako programátor som prirodzene lenivý a nebaví ma robiť zbytočné veci, nebaví písať zátvorky a stredníky – 10 riadkov kódu namiesto jedného, preto ostávam pri Coffee Scripte.

juraj

Ten „kompilátor“ urobili. Hello World sa natiahne na 17000 riadkov :-)

Jean

Ach jo… Proc si myslite, ze to casem nebude fungovat podobne jako GWT? Na jednu stranu tu mame fanatiky, kteri odmitaji cokoliv spojeneho s JavaScriptem, na druhe strane tu mame fanatiky, kteri odmitaji cokoliv jineho, nez JavaScript. Jdu zvracet…

Ladislav Thon

Lidi, kteří argumentují těmi směšnými 17 tisíci řádky, o Dartu nejspíš vůbec nic neví.

Gilad třeba dneska doslova napsal: As for how well Dart-to-Javascript compilation will work: rest assured it will perform as well as handwritten JS, and will be a lot easier to write. You will be able to deploy it *everywhere*.

ic

Tohle by mohlo být ale eso Dartu… pokud bude jednou ten převod na js dobrý, byl by z Dartu ‚ten jazyk ve kterém se programuje, než se to převede do javascriptu‘.

Ondra

C má ukecanou syntaxi, protože používá závorky a středníky? No to je teda síla…

Franta

Ad „Proč Google Dart coby ‚strukturovaný jazyk pro webové programování‘ shoří? Protože JavaScript už tady je, na několika miliardách přístrojů!“

Viz Dart: Technical Overview:

You will be able to run Dart code in several ways: 1) Translate Dart code to JavaScript that can run in any modern browser: Chrome, Safari 5+, and Firefox 4+ (more browser support coming shortly). 2) … 3) …

Tím pádem mi přijde kritika založená na „miliardách přístrojích s JavaScriptem“ trochu nesmyslná. Vždyť třeba takový CoffeeScript se taky kompiluje do JS. A musím říct, že Dart se mi jako jazyk líbí výrazně víc. A věřím, že se dočkáme nativních implementací různých jazyků v prohlížečích a nebude tu pořád jen ten JS – a do té doby se do něj prostě bude kompilovat.

Ivan Nový

Základ toho jazyka by měl být navržen tak, aby bylo možné stanovit jednoznačná transformační pravidla, pomocí kterých by bylo možné ten jazyk převést na čistý kód v JS, bez nutnosti použít jakoukoliv specifickou knihovní funkci pro ten nově navržený jazyk. Například specifické typové kontroly by prováděl jen kompilátor a program by se ladil na speciálním prohlížeči, který by disponoval nativním kompilátorem tohoto ideálního jazyka. Tato záměrná dvoukolejnost by vytvořila tlak na zavádění nativního kompilátoru i do dalších prohlížečů. Ovšem přeložený program by běžel i bez toho.

Jean

Asi takhle. Podle mne má cenu diskutovat o tom, zda daná technologie/prak­tika pomáhá vytvářet „vendor lock-in“ u zákazníků a vývojářů, nebo ne. Většina closed source technologíí na webu (od MS, Adobe, …) slouží z velké míry právě k vytvoření závislosti na jejich dodavateli. Tzn. jde o snahu si co nejvíc (a pokuď možno navždy) podmanit co největší množství zákazníků. Jestliže je ale technologie open source, nebo poskytuje dobrou specifikaci a není nad síly konkurence/zá­kazníků případně danou věc také vyvinout a udržovat, potom nechápu, proč se kolem toho furt vedou nějaké žabomyší války.

Konkrétně Dart momentálně považuji za jednu z nejlepších věci, co jsem za poslední rok viděl. Díval jsem se do zdrojáků, četl specifikaci, atd. Škodí někomu, že existuje open-source implementace VM a překladače do JavaScriptu nového jazyka Dart? Proč nenechat brouka žít?

Ivan Nový

Jasně, Dart, ale mnou popsaná kritéria splňuje :-) Jen místo nějakého runtimu, či virtuálního stroje cca 1700 řádků na „hello word“ by to chtělo trochu změnit přístup a překladač lépe namapovat na přirozené vlastnosti JS. Tedy aby Main() { print „Hello Word!“ } se překompilovalo do function Main() { document.write(„He­llo Word“); } Totéž třeba implementace tříd, aby se využily prototypy javascriptu, a případné typové kontroly by dělal kompilátor. Pak by naopak rozšíření JS bylo výhodou pro šíření Dartu.

Karol

Podle toho překladu, jak jsem se díval, je tam přifařeno hooooodně co stím „Hello world“ nemá co dělat. Takže já bych to jako totální selhání neviděl. Spíše ukázkou aplikaci, že to lze. Bych to spíše viděl, že udělají druhé průchod(nazvanou třeba optimalizací) a bude to krátký zdroják + že nikdo nebude mít problém s překlopením starých .js skriptů. Takže šanci má, přeci jenom Android, když byl vydán podle „taky komentátorů“ z odborných časáků atd. něměl v tento rok už vůbec existovat….

Ivan Nový

Ano, mě je taky sympatický, ale psychologické bariéry z množství JS kódu runtimu mohou být značné. Znám systém, který zabilo „dlouhé“ natahování vývojového prostředí (IDE) a to v situaci, kdy se přecházelo z DOSu na Windows. Dnes Eclipse startuje 3x déle, a nikomu to nevadí.

PH

Mapování tříd na prototypy není přímočaré.

pas

Nedá mi to, abych neuvedl na pravou míru tradiční mýtus o closed source technologii od Adobe – míněno jistě Flash. Zrovna včera jste se mohli na Zdrojáku dočíst o tom, kterak můžete v této _open_source_ technologii vyvíjet aplikace pro mobilní platformy, aniž byste Adobe zaplatili jedinou korunu za jakýkoliv nástroj, který není open source.

A k samotnému Dartu – také se mi moc líbí (výše uvedené argumenty nechápu a už byly v tého diskusi vyvráceny – možnost překladu z Dartu do JS, alternativně k nativní implementaci…). Jazyk mi připomíná ECMAScript 4 (ne přímo syntaxí, ale koncepcí a účelem), na kterém se před lety zainteresované strany bohužel neshodly. Napodruhé to snad vyjde, když to vzala do ruky jedna silná firma, což považuju za dobré.

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.