Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, Евгений Акиньшин, Вы писали:
I>>>Тебя не смущает, что браузер пока что, в общем виде, не поддерживает файловые операции в хтмл-страницах ? Сами по себе стримы это всего лишь одна из многих вычислительных моделей, которая в браузерных приложениях очень слабо задействована.
ЕА>>Так я вроде ничего не говорил про файловые операции. Просто во всех средах с которыми я сталкивался, любая библиотека обработки данных написана в общем виде с использованием потоков и только в jscript каждый раз придумывают несовместимый велосипед.
I>Что за обработка данных или какие велосипеды придумывают в джаваскрипте ?
Любая обработка данных: архивация, кодеры\декоры графических форматов, вывод текста. Потоки позволяют легко делать композицию из таких вещей.
I>>>Это больше домыслы. В основном эвенты и листенеры хорошо совместимы.
ЕА>>Да ладно — каждый mvvm-подобный фреймворк типа knockoutjs, kendoui требует все отнаследовать от определенного типа модели, со своими сигнатурами листенеров — нигде такого бардака больше не видел.
I>Это специфика mvvm похоже. Разрабов нокаута я бы бил в каптёрке каждые 15 минут.
Почему-то это специфика только в jscript проявляется Может все-таки специфика jscript.
I>>>И указателей и всякого другого мусора тоже нет.
ЕА>>Т.е. типы с фиксированной точкой это мусор
I>И это очевидно. Тебя ведь не расстраивает, что С++ искаропки не может посчитать sinus(Some(1.2)) или Sinus(Nullable(1)) или Sinus([1,2,3,4,5,6]) ?
Здравствуйте, VladD2, Вы писали:
DM>>А, ну все ж подсчет ссылок (особенно когда он спрятан под капот) — это один из видов GC. VD>Это если уж очень за уши притянуть.
Это вопрос терминологии, и большая часть литературы по этому вопросу с тобой не согласна. Да и пролетариат тоже: вон Питон и РНР до сих пор подсчет ссылок используют.
VD>Подсчет ссылок все же к ЖЦ отношения не имеет и бы известен когда о ЖЦ еще и речи не шло.
А ты в курсе, что сборка мусора подсчетом ссылок была изобретена (или по крайней мере описана) позже, чем tracing GC?
In 1960, researchers introduced the two main branches of automatic garbage collection: tracing and reference counting [14, 24].
* G. E. Collins. A method for overlapping and erasure of lists. Commun. ACM, 3(12):655–657, December 1960.
* J. McCarthy. Recursive functions of symbolic expressions and their computation by machine, part I. Commun. ACM, 3(4):184–195, April 1960.
VD>Я говорил о том, что не ЖЦ дело. Когда ЖЦ не было, производительность была еще хуже.
Если речь по JS, то там рост производительности за последнюю декаду вызван в основном изменением подхода к реализации интерпретаторов: от примитивных интерпретаторов через JIT к более полноценному компилятору, перекомпилирующему код с учетом получаемой в динамиеке информации о типах. См. первую часть тут, например: http://www.infoq.com/presentations/dart-compiler
Здравствуйте, Евгений Акиньшин, Вы писали:
I>>Что за обработка данных или какие велосипеды придумывают в джаваскрипте ?
ЕА>Любая обработка данных: архивация, кодеры\декоры графических форматов, вывод текста. Потоки позволяют легко делать композицию из таких вещей.
Из всего этого JS может позволить только вывод текста, и то смотря куда. Все остальное требует нативного кода.
I>>>>Это больше домыслы. В основном эвенты и листенеры хорошо совместимы.
I>>Это специфика mvvm похоже. Разрабов нокаута я бы бил в каптёрке каждые 15 минут. ЕА>Почему-то это специфика только в jscript проявляется Может все-таки специфика jscript.
Другие то либы нормальные
ЕА>>>Т.е. типы с фиксированной точкой это мусор
I>>И это очевидно. Тебя ведь не расстраивает, что С++ искаропки не может посчитать sinus(Some(1.2)) или Sinus(Nullable(1)) или Sinus([1,2,3,4,5,6]) ?
ЕА>А как одно с другим связано?
Здравствуйте, AndrewVK, Вы писали:
I>>Каким законом запрещено сравнивать возможности, скажем, того полиморфизма, что был в C# до динамиков с возможностями джаваскриптового динамического полиморфизма ?
AVK>Повторяю вопрос: "Какая связь между выводом типов и динамическим полиморфизмом?".
Попробуй еще раз.
AVK>>>А практическая определяется потребностями. На вопрос зачем тебе понадобилось заменять Console.Write ты нормально ответить не смог. I>>Я ж сказал — для демонстрации сказаного.
AVK>То есть нафик не нужно. ЧТД.
Пудозреваю ты хочешь сказать чтото навроде "а в дотнете мы такое не используем". Так и говори, а то в джаваскрипте указаная техника используется практически везде.
Здравствуйте, D. Mon, Вы писали:
DM>Это вопрос терминологии, и большая часть литературы по этому вопросу с тобой не согласна. Да и пролетариат тоже: вон Питон и РНР до сих пор подсчет ссылок используют.
Вот и не превращай этот вопрос в вопрос терминологии.
Здесь речь идет о производительности. Подразумевается (и не безосновательно), что ЖЦ создает огромные накладные расходы. Подсчет ссылок этих проблем не имеет и, если бы проблемы языков были только в ЖЦ, мог бы сделать язык супер быстрым. Но, увы.
DM>А ты в курсе, что сборка мусора подсчетом ссылок была изобретена (или по крайней мере описана) позже, чем tracing GC?
Подсчет ссылок настолько примитивная идея, что ее изобрели все кому не лень.
DM>* J. McCarthy. Recursive functions of symbolic expressions and their computation by machine, part I. Commun. ACM, 3(4):184–195, April 1960.[/q]
Ты в курсе кто такой McCarthy? Это изобретатель лиспа, а Лисп — это из другой вселенной. Многие до стих пор не знают, что это такое и зачем оно нужно.
И вообще, это разговор не о чем.
VD>>Я говорил о том, что не ЖЦ дело. Когда ЖЦ не было, производительность была еще хуже.
DM>Если речь по JS, то там рост производительности за последнюю декаду вызван в основном изменением подхода к реализации интерпретаторов: от примитивных интерпретаторов через JIT к более полноценному компилятору, перекомпилирующему код с учетом получаемой в динамиеке информации о типах.
Понятно. Кому-то тут хочется поспорить ради спора.
Здравствуйте, VladD2, Вы писали:
VD>Здесь речь идет о производительности. Подразумевается (и не безосновательно), что ЖЦ создает огромные накладные расходы. Подсчет ссылок этих проблем не имеет и, если бы проблемы языков были только в ЖЦ, мог бы сделать язык супер быстрым. Но, увы.
Глупости пишешь, reference counting GC медленнее tracing GC. Cм. ссылки выше.
VD>Ты в курсе кто такой McCarthy? Это изобретатель лиспа, а Лисп — это из другой вселенной. Многие до стих пор не знают, что это такое и зачем оно нужно.
VD>Рост скорости JS — это нечто вроде лечения гомеопатией, то есть самообман.
Это банальное сравнение бенчмарков.
DM>>См. первую часть тут, например: DM>>http://www.infoq.com/presentations/dart-compiler VD>Ага, ага. Все почти так с двумя небольшими уточнениями. VD>1. Dart это ...
Дядь, там первая половина рассказа — не про Dart совсем, а именно про устройство V8 и то, как они JavaScript ускоряли.
Здравствуйте, VladD2, Вы писали:
VD>Понятно. Кому-то тут хочется поспорить ради спора.
Вероятно тебе
VD>Рост скорости JS — это нечто вроде лечения гомеопатией, то есть самообман. VD>Так что ты меньше верь в сказки. Динамика и производительность две несовместимые вещи.
Ты определись чего ты хочешь сказать. Если "JS медленнее С++" то это очень интересно, но как то без тебя все это знают.
Если "Рост скорости JS — ... самообман" то мягко говоря у тебя сведения конца 90х
Скажем, в конце 90х писать десктоп, мобайл на JS никто в своём уме даже не пробовал, перформанса было около одной строчки в секунду, даже веб считай был без джаваскрипта, на страницу было до десяти строчек js.
В середине нулевых все изменилось
1 гуглмапс
2 гуглдокс
3 офис онлайн
4 OWA — последняя версия не хуже десктопа
Где то 2009м появился серверный джаваскрипт и снова благодаря увеличению перформанса движка V8
В начала 10х появляется
1 десктопный джаваскрипт
2 мобильный джаваскрипт
И все это благодаря росту перформанса V8
Гугл готовит внятный ЖЦ для V8, что увеличит перформанс, что очень, очень критично для десктопа и мобильных приложений.
Здравствуйте, D. Mon, Вы писали:
DM>Дядь, там первая половина рассказа — не про Dart совсем, а именно про устройство V8 и то, как они JavaScript ускоряли.
И где результаты? Жабахрип сравнился хотя бы с дотнетом по производительности?
Там борьба идет за проценты. Выбор между очень плохой производительностью и просто плохой. Сравнивать Жабавсхлип с С++ просто смешно.
ЗЫ
Короче, мне этот разговор не интересен. Верь сказкам в одиночестве.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Ikemefula, Вы писали:
VD>>Рост скорости JS — это нечто вроде лечения гомеопатией, то есть самообман. VD>>Так что ты меньше верь в сказки. Динамика и производительность две несовместимые вещи.
I>Ты определись чего ты хочешь сказать. Если "JS медленнее С++" то это очень интересно, но как то без тебя все это знают.
Я что хотел, то и сказал — тормоза Жабакрипта заключаются отнюдь не в ЖЦ. Они в архитектуре языка. В его динамической основе. Никакие оптимизации этого факта не устранят. Именно по этому в Гугле решили придумать Datr.
I>Если "Рост скорости JS — ... самообман" то мягко говоря у тебя сведения конца 90х
Это фундаментальные принципы. Они не могут устареть. Динамический язык, да еще и с прототипным ООП нельзя эффективно компилировать в процессорые инструкции. В нем всегда будет огромный оверхэд. Его можно сократить, но нельзя устранить. Для его устранения нужно менять язык.
I>Скажем, в конце 90х писать десктоп, мобайл на JS никто в своём уме даже не пробовал,
Я пробовал. Проблема была только одна — броузеры еще только начинали поддерживать программируемость. Первый броузер поддерживающий DHTML появился в 1997-м году.
До этого много лет создавали GUI на VB, мало чем отличавшемся по производительности от Жабахрипа. И это не странно, так как отзывчивость гуя скорее определяется используемыми компонентами и разумностью автора.
I>перформанса было около одной строчки в секунду,
Бред.
I>даже веб считай был без джаваскрипта, на страницу было до десяти строчек js.
А что ему было делать на странице, броузеров позволяющих что-то делать с конетнтом не было?
I>В середине нулевых все изменилось
Все изменилось в начале нулевых.
I>Где то 2009м появился серверный джаваскрипт и снова благодаря увеличению перформанса движка V8
Гы-гы.
I>В начала 10х появляется I>1 десктопный джаваскрипт I>2 мобильный джаваскрипт
Гы-гы.
I>И все это благодаря росту перформанса V8
До него все это было. То что ты в то время в школу ходил, не значит, что тогда не было жизни.
I>Гугл готовит внятный ЖЦ для V8, что увеличит перформанс, что очень, очень критично для десктопа и мобильных приложений.
Ага. В очередной раз. Кстати, у V8 давно уже точный ЖЦ. Ты видимо путаешь его с ЖЦ для АПИ Хрома.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
I>>Если "Рост скорости JS — ... самообман" то мягко говоря у тебя сведения конца 90х
VD>Это фундаментальные принципы. Они не могут устареть. Динамический язык, да еще и с прототипным ООП нельзя эффективно компилировать в процессорые инструкции. В нем всегда будет огромный оверхэд. Его можно сократить, но нельзя устранить. Для его устранения нужно менять язык.
Ты хорошо понимаешь, что термин рост в данном контексте предполагает некоторую дельту а не абсолютное значение ?
I>>Скажем, в конце 90х писать десктоп, мобайл на JS никто в своём уме даже не пробовал,
VD>Я пробовал. Проблема была только одна — броузеры еще только начинали поддерживать программируемость. Первый броузер поддерживающий DHTML появился в 1997-м году.
Вот я и говорю — у тебя сведения аккурат с тех пор.
VD>До этого много лет создавали GUI на VB, мало чем отличавшемся по производительности от Жабахрипа. И это не странно, так как отзывчивость гуя скорее определяется используемыми компонентами и разумностью автора.
С учетом того, что VB был быстрее того JS где то в 100 раз, всё верно. У нас тогда были плагины на js, vb, пейтоне и кое каких других вещах, так что извини, тебе не поверю.
I>>перформанса было около одной строчки в секунду,
I>>даже веб считай был без джаваскрипта, на страницу было до десяти строчек js.
VD>А что ему было делать на странице, броузеров позволяющих что-то делать с конетнтом не было?
ie4 — 97й год. XHR появился в 99м.
I>>В середине нулевых все изменилось
VD>Все изменилось в начале нулевых.
В середине. До того были просто приседания с dhtml, стилями и всякими сабмитами. Все это возможно было и в конце 90х
I>>И все это благодаря росту перформанса V8
VD>До него все это было. То что ты в то время в школу ходил, не значит, что тогда не было жизни.
Назови серверный фремворк на джаваскрипте, либы разумеется, до 2009го, который массово применялся. Серверный, это хотя бы самый минимум — можно с нуля накидать внятный http сервер.
Здравствуйте, VladD2, Вы писали:
DM>>Дядь, там первая половина рассказа — не про Dart совсем, а именно про устройство V8 и то, как они JavaScript ускоряли.
VD>И где результаты? Жабахрип сравнился хотя бы с дотнетом по производительности?
Конечно. Хочешь, напишем вместе тест отрисовки в канвас или тест регэкспов, узнаешь много нового.
VD>Там борьба идет за проценты. Выбор между очень плохой производительностью и просто плохой. Сравнивать Жабавсхлип с С++ просто смешно.
Смотри, аналогичный аргумент — дотнет сравнивать с оптимизироваными числодробилками на С++ смешно, следовательно прогресса в дотнет не было
Здравствуйте, VladD2, Вы писали:
VD>И где результаты? Жабахрип сравнился хотя бы с дотнетом по производительности? VD>Короче, мне этот разговор не интересен. Верь сказкам в одиночестве.
Каким сказкам? Разве кто-то сравнивает его по скорости с С++ или C#? Ты сам себе что-то придумываешь. Но если сравнивать с другими динамическими языками, что логично, то результаты очень даже.
I>В середине нулевых все изменилось I>1 гуглмапс I>2 гуглдокс I>3 офис онлайн I>4 OWA — последняя версия не хуже десктопа
Это все благодаря закону Мура.
I>Где то 2009м появился серверный джаваскрипт и снова благодаря увеличению перформанса движка V8
I>В начала 10х появляется I>1 десктопный джаваскрипт I>2 мобильный джаваскрипт
Поскольку уперлись в рост производительности одного ядра, серьезно взялись за софт.
Процитирую Джефа Атвуда:
I found that the performance of JavaScript improved a hundredfold between 1996 and 2006.
If Web 2.0 is built on a backbone of JavaScript, it’s largely possible only because
of those crucial Moore’s Law performance improvements.
Цитата взята из этого поста(который в свою очередь цитируют оригинальную запись Атвуда).Очень и очень рекомендую ознакомится с блогозаписью -- на злобу дня, как говорится. Извините, если баян...
Здравствуйте, Sharov, Вы писали:
I>>В середине нулевых все изменилось I>>1 гуглмапс I>>2 гуглдокс I>>3 офис онлайн I>>4 OWA — последняя версия не хуже десктопа
S>Это все благодаря закону Мура.
Ты лучше на сегодняшнем железе запусти JS старого образца и нового. Закон Мура к этой разнице не имеет никакого отношения, т.к. перформанс одного и того же ядра вырастает более чем в 1000 раз в зависимости от версии JS.
Закон Мура стал такой универсальной объяснялкой, что стал давно уже баззвордом.
Закон Мура про производительность системы основываясь на данных о количестве транзисторов, а оптимизации софтверной части никакого отношения к этому не имеют.
Движок джаваскрипта раньше был тупым интерпретатором, а сейчас это фактически компилятор, вот тебе и разница.
Здравствуйте, Ikemefula, Вы писали:
I>Ты лучше на сегодняшнем железе запусти JS старого образца и нового. Закон Мура к этой разнице не имеет никакого отношения, т.к. перформанс одного и того же ядра вырастает более чем в 1000 раз в зависимости от версии JS.
Охохошуньки! Ага, в тыщи раз...
I>Движок джаваскрипта раньше был тупым интерпретатором, а сейчас это фактически компилятор, вот тебе и разница.
Вы вообще внимательно прочитали мой комментарий? То что он раньше был "тупым интерпретатором", но
тем не менее использовался ( и на ура!), вытягивало железо. Когда уперлись в железный рост, превратили
в компилятор.
Здравствуйте, D. Mon, Вы писали:
DM>Каким сказкам? Разве кто-то сравнивает его по скорости с С++ или C#? Ты сам себе что-то придумываешь. Но если сравнивать с другими динамическими языками, что логично, то результаты очень даже.
Ты статью в теме то читал?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Sharov, Вы писали:
I>>Ты лучше на сегодняшнем железе запусти JS старого образца и нового. Закон Мура к этой разнице не имеет никакого отношения, т.к. перформанс одного и того же ядра вырастает более чем в 1000 раз в зависимости от версии JS.
S>Охохошуньки! Ага, в тыщи раз...
А тебе религия запрещает инсталировать старый нетскейп и пускануть в ём тестовый джаваскрипт ? Этот браузер можно найти в инете. Если это сложно, можно взять мозиллу версии 1.0 или 1.5, тоже неплохо сгодится для замеров.
Собтсвенно при желании можно IE6 найти и пускануть на современном железе, но он уже намного быстрее неткапа .
I>>Движок джаваскрипта раньше был тупым интерпретатором, а сейчас это фактически компилятор, вот тебе и разница.
S>Вы вообще внимательно прочитали мой комментарий? То что он раньше был "тупым интерпретатором", но S>тем не менее использовался ( и на ура!), вытягивало железо. Когда уперлись в железный рост, превратили S>в компилятор.
Не использовался и железо не вытягивало. Не было его ни в мбайле, ни в десктопе, ни, тем более, в сервере.
Джаваскрипт ускорять начали задолго до того, как уперлись в железо. Разуй глаза — рост частоты остановился во второй половине нулевых, а мега-приложения на джаваскрипте появилисьс в первой половине нулевых.
Здравствуйте, VladD2, Вы писали:
DM>>Каким сказкам? Разве кто-то сравнивает его по скорости с С++ или C#? Ты сам себе что-то придумываешь. Но если сравнивать с другими динамическими языками, что логично, то результаты очень даже. VD>Ты статью в теме то читал?
Читал, еще до того, как ее здесь запостили.
А ты сам-то читал? Где там говорится, что JS стал сравним по скорости с С++ или C#? Там он даже нарисован слева, как самый тормоз.
Здравствуйте, D. Mon, Вы писали:
DM>А ты сам-то читал? Где там говорится, что JS стал сравним по скорости с С++ или C#? Там он даже нарисован слева, как самый тормоз.
Вообще-то там на графие жабоскрип запихали в один квадрат с шарпом и жабой, что намекает на то, что их в одной весовой категории держат. А уж по уровню языка так и вообще смешно получается.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Вообще-то там на графие жабоскрип запихали в один квадрат с шарпом и жабой, что намекает на то, что их в одной весовой категории держат. А уж по уровню языка так и вообще смешно получается.
По уровню он намного выше чем C# и джава. В ём даже rank-2 полиморфизм есть.