Re[10]: C# for Systems Programming
От: Евгений Акиньшин grapholite.com
Дата: 04.01.14 04:40
Оценка:
Здравствуйте, 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]) ?


А как одно с другим связано?
Не шалю, никого не трогаю, починяю примус Diagrams Designer for iPad and Windows 10
Re[9]: C# for Systems Programming
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 04.01.14 07:35
Оценка:
Здравствуйте, 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
Re[11]: C# for Systems Programming
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.01.14 08:34
Оценка:
Здравствуйте, Евгений Акиньшин, Вы писали:

I>>Что за обработка данных или какие велосипеды придумывают в джаваскрипте ?


ЕА>Любая обработка данных: архивация, кодеры\декоры графических форматов, вывод текста. Потоки позволяют легко делать композицию из таких вещей.


Из всего этого JS может позволить только вывод текста, и то смотря куда. Все остальное требует нативного кода.

I>>>>Это больше домыслы. В основном эвенты и листенеры хорошо совместимы.


I>>Это специфика mvvm похоже. Разрабов нокаута я бы бил в каптёрке каждые 15 минут.

ЕА>Почему-то это специфика только в jscript проявляется Может все-таки специфика jscript.

Другие то либы нормальные

ЕА>>>Т.е. типы с фиксированной точкой это мусор


I>>И это очевидно. Тебя ведь не расстраивает, что С++ искаропки не может посчитать sinus(Some(1.2)) или Sinus(Nullable(1)) или Sinus([1,2,3,4,5,6]) ?


ЕА>А как одно с другим связано?


Фича X отсутствует в языке Y
Re[17]: C# for Systems Programming
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.01.14 10:34
Оценка: -1
Здравствуйте, AndrewVK, Вы писали:

I>>Каким законом запрещено сравнивать возможности, скажем, того полиморфизма, что был в C# до динамиков с возможностями джаваскриптового динамического полиморфизма ?


AVK>Повторяю вопрос: "Какая связь между выводом типов и динамическим полиморфизмом?".


Попробуй еще раз.

AVK>>>А практическая определяется потребностями. На вопрос зачем тебе понадобилось заменять Console.Write ты нормально ответить не смог.

I>>Я ж сказал — для демонстрации сказаного.

AVK>То есть нафик не нужно. ЧТД.


Пудозреваю ты хочешь сказать чтото навроде "а в дотнете мы такое не используем". Так и говори, а то в джаваскрипте указаная техника используется практически везде.
Re[10]: C# for Systems Programming
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.01.14 12:04
Оценка:
Здравствуйте, 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 к более полноценному компилятору, перекомпилирующему код с учетом получаемой в динамиеке информации о типах.


Понятно. Кому-то тут хочется поспорить ради спора.

Рост скорости JS — это нечто вроде лечения гомеопатией, то есть самообман.

DM>См. первую часть тут, например:

DM>http://www.infoq.com/presentations/dart-compiler

Ага, ага. Все почти так с двумя небольшими уточнениями.

1. Dart это совершенно другой язык, мало похожий на JS.
2. На сегодня. Dart тормоз даже по сравнению с явой и дотнетом.

Так что ты меньше верь в сказки. Динамика и производительность две несовместимые вещи.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[11]: C# for Systems Programming
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 04.01.14 12:18
Оценка:
Здравствуйте, 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 ускоряли.
Re[11]: C# for Systems Programming
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.01.14 12:22
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Понятно. Кому-то тут хочется поспорить ради спора.


Вероятно тебе

VD>Рост скорости JS — это нечто вроде лечения гомеопатией, то есть самообман.

VD>Так что ты меньше верь в сказки. Динамика и производительность две несовместимые вещи.

Ты определись чего ты хочешь сказать. Если "JS медленнее С++" то это очень интересно, но как то без тебя все это знают.
Если "Рост скорости JS — ... самообман" то мягко говоря у тебя сведения конца 90х

Скажем, в конце 90х писать десктоп, мобайл на JS никто в своём уме даже не пробовал, перформанса было около одной строчки в секунду, даже веб считай был без джаваскрипта, на страницу было до десяти строчек js.
В середине нулевых все изменилось
1 гуглмапс
2 гуглдокс
3 офис онлайн
4 OWA — последняя версия не хуже десктопа

Где то 2009м появился серверный джаваскрипт и снова благодаря увеличению перформанса движка V8

В начала 10х появляется
1 десктопный джаваскрипт
2 мобильный джаваскрипт

И все это благодаря росту перформанса V8

Гугл готовит внятный ЖЦ для V8, что увеличит перформанс, что очень, очень критично для десктопа и мобильных приложений.
Re[12]: C# for Systems Programming
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.01.14 13:03
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>Дядь, там первая половина рассказа — не про Dart совсем, а именно про устройство V8 и то, как они JavaScript ускоряли.


И где результаты? Жабахрип сравнился хотя бы с дотнетом по производительности?

Там борьба идет за проценты. Выбор между очень плохой производительностью и просто плохой. Сравнивать Жабавсхлип с С++ просто смешно.

ЗЫ

Короче, мне этот разговор не интересен. Верь сказкам в одиночестве.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[12]: C# for Systems Programming
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.01.14 13:22
Оценка:
Здравствуйте, 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 давно уже точный ЖЦ. Ты видимо путаешь его с ЖЦ для АПИ Хрома.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[13]: C# for Systems Programming
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.01.14 14:22
Оценка:
Здравствуйте, 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 сервер.
Re[13]: C# for Systems Programming
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.01.14 14:25
Оценка:
Здравствуйте, VladD2, Вы писали:

DM>>Дядь, там первая половина рассказа — не про Dart совсем, а именно про устройство V8 и то, как они JavaScript ускоряли.


VD>И где результаты? Жабахрип сравнился хотя бы с дотнетом по производительности?


Конечно. Хочешь, напишем вместе тест отрисовки в канвас или тест регэкспов, узнаешь много нового.

VD>Там борьба идет за проценты. Выбор между очень плохой производительностью и просто плохой. Сравнивать Жабавсхлип с С++ просто смешно.


Смотри, аналогичный аргумент — дотнет сравнивать с оптимизироваными числодробилками на С++ смешно, следовательно прогресса в дотнет не было
Re[13]: C# for Systems Programming
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 04.01.14 15:53
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>И где результаты? Жабахрип сравнился хотя бы с дотнетом по производительности?

VD>Короче, мне этот разговор не интересен. Верь сказкам в одиночестве.

Каким сказкам? Разве кто-то сравнивает его по скорости с С++ или C#? Ты сам себе что-то придумываешь. Но если сравнивать с другими динамическими языками, что логично, то результаты очень даже.
Re[12]: C# for Systems Programming
От: Sharov Россия  
Дата: 04.01.14 19:16
Оценка:
Здравствуйте, Ikemefula, Вы писали:


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.


Цитата взята из этого поста(который в свою очередь цитируют оригинальную запись Атвуда).Очень и очень рекомендую ознакомится с блогозаписью -- на злобу дня, как говорится. Извините, если баян...
Кодом людям нужно помогать!
Re[13]: C# for Systems Programming
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.01.14 20:39
Оценка:
Здравствуйте, Sharov, Вы писали:

I>>В середине нулевых все изменилось

I>>1 гуглмапс
I>>2 гуглдокс
I>>3 офис онлайн
I>>4 OWA — последняя версия не хуже десктопа

S>Это все благодаря закону Мура.


ля-ля-ля

I>>2 мобильный джаваскрипт


S>Процитирую Джефа Атвуда:


Ты лучше на сегодняшнем железе запусти JS старого образца и нового. Закон Мура к этой разнице не имеет никакого отношения, т.к. перформанс одного и того же ядра вырастает более чем в 1000 раз в зависимости от версии JS.


Закон Мура стал такой универсальной объяснялкой, что стал давно уже баззвордом.
Закон Мура про производительность системы основываясь на данных о количестве транзисторов, а оптимизации софтверной части никакого отношения к этому не имеют.

Движок джаваскрипта раньше был тупым интерпретатором, а сейчас это фактически компилятор, вот тебе и разница.
Re[14]: C# for Systems Programming
От: Sharov Россия  
Дата: 04.01.14 21:17
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Ты лучше на сегодняшнем железе запусти JS старого образца и нового. Закон Мура к этой разнице не имеет никакого отношения, т.к. перформанс одного и того же ядра вырастает более чем в 1000 раз в зависимости от версии JS.


Охохошуньки! Ага, в тыщи раз...


I>Движок джаваскрипта раньше был тупым интерпретатором, а сейчас это фактически компилятор, вот тебе и разница.


Вы вообще внимательно прочитали мой комментарий? То что он раньше был "тупым интерпретатором", но
тем не менее использовался ( и на ура!), вытягивало железо. Когда уперлись в железный рост, превратили
в компилятор.
Кодом людям нужно помогать!
Re[14]: C# for Systems Programming
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.01.14 22:21
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>Каким сказкам? Разве кто-то сравнивает его по скорости с С++ или C#? Ты сам себе что-то придумываешь. Но если сравнивать с другими динамическими языками, что логично, то результаты очень даже.


Ты статью в теме то читал?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[15]: C# for Systems Programming
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.01.14 22:41
Оценка:
Здравствуйте, Sharov, Вы писали:

I>>Ты лучше на сегодняшнем железе запусти JS старого образца и нового. Закон Мура к этой разнице не имеет никакого отношения, т.к. перформанс одного и того же ядра вырастает более чем в 1000 раз в зависимости от версии JS.


S>Охохошуньки! Ага, в тыщи раз...


А тебе религия запрещает инсталировать старый нетскейп и пускануть в ём тестовый джаваскрипт ? Этот браузер можно найти в инете. Если это сложно, можно взять мозиллу версии 1.0 или 1.5, тоже неплохо сгодится для замеров.

Собтсвенно при желании можно IE6 найти и пускануть на современном железе, но он уже намного быстрее неткапа .

I>>Движок джаваскрипта раньше был тупым интерпретатором, а сейчас это фактически компилятор, вот тебе и разница.


S>Вы вообще внимательно прочитали мой комментарий? То что он раньше был "тупым интерпретатором", но

S>тем не менее использовался ( и на ура!), вытягивало железо. Когда уперлись в железный рост, превратили
S>в компилятор.

Не использовался и железо не вытягивало. Не было его ни в мбайле, ни в десктопе, ни, тем более, в сервере.

Джаваскрипт ускорять начали задолго до того, как уперлись в железо. Разуй глаза — рост частоты остановился во второй половине нулевых, а мега-приложения на джаваскрипте появилисьс в первой половине нулевых.
Re[15]: C# for Systems Programming
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 05.01.14 08:01
Оценка:
Здравствуйте, VladD2, Вы писали:

DM>>Каким сказкам? Разве кто-то сравнивает его по скорости с С++ или C#? Ты сам себе что-то придумываешь. Но если сравнивать с другими динамическими языками, что логично, то результаты очень даже.

VD>Ты статью в теме то читал?

Читал, еще до того, как ее здесь запостили.
А ты сам-то читал? Где там говорится, что JS стал сравним по скорости с С++ или C#? Там он даже нарисован слева, как самый тормоз.
Re[16]: C# for Systems Programming
От: VladD2 Российская Империя www.nemerle.org
Дата: 06.01.14 17:09
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>А ты сам-то читал? Где там говорится, что JS стал сравним по скорости с С++ или C#? Там он даже нарисован слева, как самый тормоз.


Вообще-то там на графие жабоскрип запихали в один квадрат с шарпом и жабой, что намекает на то, что их в одной весовой категории держат. А уж по уровню языка так и вообще смешно получается.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[17]: C# for Systems Programming
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 06.01.14 18:37
Оценка: :)
Здравствуйте, VladD2, Вы писали:

VD>Вообще-то там на графие жабоскрип запихали в один квадрат с шарпом и жабой, что намекает на то, что их в одной весовой категории держат. А уж по уровню языка так и вообще смешно получается.


По уровню он намного выше чем C# и джава. В ём даже rank-2 полиморфизм есть.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.