Здравствуйте, Ikemefula, Вы писали:
I>>>Я про такой ничего не знал. Как бы под Lisp обычно подразумевают Common Lisp DE>>SBCL — это common lisp и есть.
I>Хорошо, все программы — нативные, все программы — менеджед, все программы — интерпретируемые
Ну, поскольку процессор умеет исполнять только нативный код, то, думаю, можно ограничиться первым.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Ikemefula, Вы писали:
I> H>Я не про обязанность, я про выполняемую работу.
I> Это одно и то же. Если код выполняет работу связывания компонентов, то это значит, что у этого кода обязанность — связывание компонентов.
Речь не про обязанности. Речь таки о выполняемой работе. Называть приложение управляемым, тогда, как вся работа делается нативным кодом, это нужно очень хотеть быть правым во что бы то нибыло
I> H>Заостряя внимание на связывании кода, я даю тебе понять, что непосредственная функциональность приложения обеспечивается не скриптом, а нативным кодом.
I> Эдак мы дойдем до того, что всю работу делают ОС, процессор и тд, а стало быть все софтины нативные.
Конечно же нет. ОС, CPU, GPU и прочее спокойно выносится за скобки, странно этого не понимать
I> I>> Во вторых, больших игра вся игровая динамика, AI и много чего еще пишется именно на скрипте. Т.е. поведение каждого юнита, группы юнитов, оружие и тд и тд. Нативный движок предоставляет рендеринг, физику и кое какие мелочи.
I> H>Я же не зря сказал о том, что игрушечные скрипты очень высокоуровневые (подумай над этим).
I> Ты лушче сам думай. Предполагается, если ты увидел изъян в рассуждениях, то можешь продемонстрировать это некоторым тестом. Если такого нет — сэкономь лучше траффик
Так я уже давал пример скрипта Ты правда начал говорить о каких-то обязанностях, потому я и предложил тебе подумать Впрочем, я не настаиваю.
I> >Разумеется, использование скриптов очень удобно т.к. позволяет отстроить игровую логику и законы сильно быстрее, чем непосредственно "вкомпилированные" алгоритмы, но это все равно не более чем клеевой слой. Ты можешь сам глянуть на Lua-скрипты от FarCry и посмотреть, много ли работы они делают.
I> Неважно, много или мало. Главное что взаимодействие это очень важная часть и её нельзя выбросить.
Конечно же важно. Не люблю аналогии, но иначе мысли похоже не пробиться... кирпичные дома называются кирпичными, а не цементнорастворными, почему-то...
Здравствуйте, Геннадий Васильев, Вы писали:
I>>Хорошо, все программы — нативные, все программы — менеджед, все программы — интерпретируемые
ГВ>Ну, поскольку процессор умеет исполнять только нативный код, то, думаю, можно ограничиться первым.
Отлично. Все программы — нативные. А следовательно быть никакого ренесанса и конца нересурсов быть не может.
Здравствуйте, Ikemefula, Вы писали:
I>>>Хорошо, все программы — нативные, все программы — менеджед, все программы — интерпретируемые ГВ>>Ну, поскольку процессор умеет исполнять только нативный код, то, думаю, можно ограничиться первым.
I>Отлично. Все программы — нативные. А следовательно быть никакого ренесанса и конца нересурсов быть не может.
Следовательно тут только одно — что ты криво определил термин "нативные". Отсюда весь этот цирк.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
I>>Отлично. Все программы — нативные. А следовательно быть никакого ренесанса и конца нересурсов быть не может.
ГВ>Следовательно тут только одно — что ты криво определил термин "нативные". Отсюда весь этот цирк.
Да не вопрос. Но других то определений нет и не предвидится
Здравствуйте, Ikemefula, Вы писали:
I>>>Отлично. Все программы — нативные. А следовательно быть никакого ренесанса и конца нересурсов быть не может. ГВ>>Следовательно тут только одно — что ты криво определил термин "нативные". Отсюда весь этот цирк. I>Да не вопрос. Но других то определений нет и не предвидится
А зачем оно нужно? Есть классические определения: интерпретатор, компилятор, исходный текст, p-код, код целевого процессора. Native — это сокращение для жёлтой прессы: что, мол, native development бла-бла-бла. Обозначают им программы на C и C++.
А то развели, понимаешь — указатели, работа с ОС... Осталось грамматики и аппаратные прерывания сюда приплести.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Здравствуйте, Ikemefula, Вы писали:
I>>>>Отлично. Все программы — нативные. А следовательно быть никакого ренесанса и конца нересурсов быть не может. ГВ>>>Следовательно тут только одно — что ты криво определил термин "нативные". Отсюда весь этот цирк. I>>Да не вопрос. Но других то определений нет и не предвидится
ГВ>А зачем оно нужно? Есть классические определения: интерпретатор, компилятор, исходный текст, p-код, код целевого процессора. Native — это сокращение для жёлтой прессы: что, мол, native development бла-бла-бла. Обозначают им программы на C и C++. ГВ>А то развели, понимаешь — указатели, работа с ОС... Осталось грамматики и аппаратные прерывания сюда приплести.
А если в программе куча кода не только на C и C++, как быть ?
Здравствуйте, Ikemefula, Вы писали:
I>А если в программе куча кода не только на C и C++, как быть ?
А что ты хочешь доказать/показать/выяснить?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
I>>А если в программе куча кода не только на C и C++, как быть ?
ГВ>А что ты хочешь доказать/показать/выяснить?
Да тоже самое — какая часть кода пишется на нативном С++/C, а какая — на чем то другом (99%)
Здравствуйте, Ikemefula, Вы писали:
I>>>А если в программе куча кода не только на C и C++, как быть ? ГВ>>А что ты хочешь доказать/показать/выяснить?
I>Да тоже самое — какая часть кода пишется на нативном С++/C, а какая — на чем то другом (99%)
Так посчитай и сравни. Зачем для этого какие-то определения выдумывать?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, gandjustas, Вы писали:
G>И ты сходу привел решение, далекое от оптимальности
Пора переходить к конкретике.
Можешь привести пример WPF приложения которое работает соизмеримо с аналогичным native?
Мы рассматривали конкретный пример EverNote для которого есть две версии написанные профессионалами которых я знаю лично.
И у которых была и есть железная мотивация сделать хорошо.
Если есть другой пример — прошу.
Хочется верить что мы тут все грамотные люди поэтому в состоянии вычислить почему что-то тормозит или наоборот летает.
Здравствуйте, vdimas, Вы писали:
V>Здравствуйте, gandjustas, Вы писали:
G>>Есть тестирование чтобы предотвратить случайные ошибки, есть управляемые среды, которые просто не допускают некоторые классы ошибок.
V>Эээ... Ты сейчас понял хоть, что сказал? Управляемая среда не может "не допустить ошибку" выхода за пределы, например, она честно выплюнет баг... И если повезет — во время тестирования. Но в плане "недопущения" — это фантазии.
Не говори глупости. Я использую foreach у меня вообще нет ошибок выхода за пределы массива, их в принципе не может появится.
V>К тому же, отсутствие инструментов по статической верификации вынуждает плодить интерфейсы и пользовать в неуемных масштабах динамическое приведение типов. В каждом из случев можно получить ошибку в рантайм. Опять же, во время тестирования — если только повезет.
Дык есть codecontracts, кроме того есть unit-тесты, которые проверяют утверждения, которые в свою очередь невозможно вычислить статически.
G>>Процент багов, связанных с неправильным кодированием, попадающими в production очень низок. V>Процент от объема логики или от чего?
Процент от всех потенциально возможных.
V>>>И да, поиск причины обнаруженного бага, по многолетнему опыту, никак не сложней задачи его обнаружения. Несмотря на все юнит-тестовые фреймворки или многоуровневые мегасистемы или подходы к микро- и макро-тестированию. G>>Мы ведь не о всех багах говорим, а о тех которые вызваны ошибками в процессе кодирования (не дизайна). V>Да, о них. Можно возвращаться в обсуждении к доле негативных тестов в общем объеме тестирования.
Ну давай вернемся. Ты серьезно предлагаешь затратить 70% времени тестирования на тестирование результатов не нужных пользователю?
G>>А разницы между потоком и запросом почти нету на самом деле. Можно одно свести к другому и наоборот. V>Нельзя. Каждый запрос — локален, независим от остальных.
Это зависит от того как напишешь.
V>Системы, обслуживающие в основном только запросы, очень масштабируемы уже на уровне целевых endpoint. В отличие от них, в системе принятия решений поступающие данные не являются независимыми, а влияют на состояние.
Скажу по секрету что запросы тоже могут влиять на состояние. Например форум подсчитывает количество просмотров, на каждый запрос изменяется соcтоние.
Более того "поток данных" состоит из отдельных кадров, так что вопрос в том как работать с состоянием.
Здравствуйте, c-smile, Вы писали:
CS>Здравствуйте, gandjustas, Вы писали:
G>>И ты сходу привел решение, далекое от оптимальности
CS>Пора переходить к конкретике.
CS>Можешь привести пример WPF приложения которое работает соизмеримо с аналогичным native?
WPF — нет, WPF тормоз зам по себе, независимо от .NET.
Хотя именно 3d графика и шейдерные эффекты позволяют сделать быстрые и "богатые" интерфейсы, которые на native с теми же трудозатратами хрен повторишь.
А вообще чего сразу WPF? Ты покажи сайт написаный на native, который работает соизмеримо с сайтом на ASP.NET?
CS>Мы рассматривали конкретный пример EverNote для которого есть две версии написанные профессионалами которых я знаю лично.
Это не значит что они умеют и знают WPF
CS>И у которых была и есть железная мотивация сделать хорошо.
Тут уже был пост о времени запуска WPF. Посмотри что там тормозит. Независимо от того насколько кто хочет как сделать это все равно будет тормозить. ПТИ для задач evernote было бы отличным решением просто не выгружать программу. Тем более так делают и другие аналогичные приложения.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>HPC — это high performance computing? Если так, то где там появился managed?
Он там довольно давно присутствовал. По крайней мере ввиде Java. Специфика многих областей HPC в том, что количество прогонов программы может быть очень небольшим, и намного важнее с точки зрения скорости получения результата от постановки задачи — скорость разработки. Вот такой вот парадокс. Если что, это не я придумал, это Кирилл Фаенов рассказывал как то.
... << RSDN@Home 1.2.0 alpha 5 rev. 1537 on Windows 7 6.1.7601.65536>>
Здравствуйте, Ikemefula, Вы писали:
I>Это фигня какая то. Для HPC актуальны высокоуровневые оптимизации, а не тупо числодробилки.
Числодробилки тоже важны. А CLR team, несмотря на давние обещания, так пока ничего в этом плане не выкатила. Хотя обещала и интринсики для SSE, и специальный, распознаваемый джитом дженерик интерфейс у числовых типов для процессорной арифметики, и оптимизации для работы с большими непрерывными кусками памяти.
Так что на данном этапе для задач, связанных с перевариванием объемных данных типа некоторых видов HPC или тех же видеокодеков CLR подходит не очень хорошо.
... << RSDN@Home 1.2.0 alpha 5 rev. 1537 on Windows 7 6.1.7601.65536>>
Здравствуйте, c-smile, Вы писали:
CS>Пора переходить к конкретике.
Справедливости ради, конкретики нет с обеих сторон. Нужно обсуждать конкретные решения по части .Net и WPF, которые принимала команда Evernote.