Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
if (Math.random() < 0.5) {
document.write('<b>DOM-1</b>');
}
else {
document.write('<i>DOM-2</>');
}

если все браузеры поддерживают JS и только хром будет поддерживать Dash, то не проще ли сразу ориентироваться на компилированный JS?
все браузеры, кроме IE, поддерживают Dash, то не проще ли сразу ориентироваться на Dash и компилировать его в JS для совместимости?
если все браузеры, кроме IE, поддерживают Dash, то не проще ли сразу ориентироваться на Dash и компилировать его в JS для совместимости?

(x) -> x*xГугл специально пытается перенести пользовательский софт в среду веб-браузера по следующим причинам:
— во первых, это создаст очередной ажиотаж разработки софта в НОВОЙ экосистеме.
— во вторых, это позволит перенести личные пользовательские данные в сферу сетевых сервисов,
— в третьих (опять же ИМХО, без доказательств и вызова к полемике), учитывая участие команды ответственной за создание Java c ее виртуальной машиной, можно предположить что число заложенных бомб для «санкционированного взлома» пользовательского софта (поэтому Линукс сообщество и выпиливает Java из систем «чувствительных» ко взлому) в новоиспеченном Dart будет не меньшее.
способны для горячих мест порождать достаточно чистый код, сравнимый с тем, что дают компиляторы для более строго типизированных языков типа C++ или Java.
ну ffi в LuaJIT2 делается руками — это ничуть не заслуга компилятора, а делать при этом bounds check — было бы совсем неправильно — ведь уже будет известен размер массива, и не придется динамически расширять сам массив.
И код (особенно у LuaJIT2, который bounds checkи не вставляет для ffi массивов и не обязан поддерживать прерывание циклов в отличие от V8) получается ну ровно такой как вы руками напишите на ассемблере. Временные floating point значения на xmm регистрах, инварианты циклов вынесены и т.д.
Удобство разработки. Будет сохранена динамическая, лёгкая в освоении, не требующая компиляции природа Javascript, которая сделала веб-платформу абсолютным лидером среди программистов-любителей.
Производительность. Виртуальные машины на Dash не будут иметь тех проблем с производительностью, которые есть у всех машин EcmaScript.
Dash спроектирован таким образом, чтобы было легче использовать дополнительные инструменты для больших серьёзных проектов, которые требуют поддержки, в том числе таких функций как рефакторинг и поиск мест вызова функций.
import document, console
from collections import Counter
id_counter = Counter(document.getElementsBySelector('[id]'))
id_repeated = [(k, id_counter[k]) for k in id_counter if id_counter[k]>1]
for id, count in id_repeated:
console.log("Error: ID '%s' is repeated %d times!" % (id,count))
Подробности о новом языке программирования Google Dart (Dash)