Re[36]: Работа - с чего начать: С++ или С#?
От: IID Россия  
Дата: 19.05.09 10:24
Оценка:
Здравствуйте, criosray, Вы писали:

C>А с чего Вы решили, что он "некомпилябельный"?


вообще-то я спрашивал не вас, а автора поста. Вот конкретные вопросы:
— что такое body ?
— в с каким шагом изменяется пара (x,y) вдоль интервалов ?
И, чтобы не было разногласий, я хочу чтобы результат можно было легко проверить: генерируем цвета в массив. Сравниваем массивы.
kalsarikännit
Re[35]: Работа - с чего начать: С++ или С#?
От: samius Япония http://sams-tricks.blogspot.com
Дата: 19.05.09 10:30
Оценка:
Здравствуйте, IID, Вы писали:

IID>Здравствуйте, samius, Вы писали:


IID>Не увидел где там string.Replace, но тем не менее код (как тестовая платформа) мне по душе. Только модифицируйте его до компилябельного состояния.

Это не код, это способ задания поверхностей в рамках некоторого DSL. string.Replace как раз модифицирует его до компилябельного состояния. Предлагаю не заморачиваться на конкретном синтаксисе, а сделать любой удобный, но с тем чтобы на нем можно было описать аналогичный набор поверхностей.

IID>с каким шагом изменяется пара (x,y) ? Давайте так: законченный код на С#, генерирующий некоторый массив значений. По идентичности массивов можно судить о эквивалентности C# <=> C++ реализаций.

Шаг вычисляется из размеров окна программы, хотя можно его зафиксировать в целях сравнения, идентичность массивов не нужна, достаточно похожесть картинок на глаз. Это же не продукт, а пруф концепт 2002-го года из которого можно еще выжать скорость оптимизацией под инлайнинг.
А вот код пока я не дам. Да там и нет ничего интересного, позор один. string.Replace преобразует описание поверхностей в исходник, потом исходник компилится и создается экземпляр класса, реализующего некоторый интерфейс, с помощью которого можно спрашивать цвет указанной точки пространства.

S>>Непременное условие — возможность изменения описания поверхностей в рантайме.


IID>Это пока опустим, для простоты. Фактически, мы зафиксировали один из вариантов описания поверхностей, теперь посмотрим на скорость рендеринга по нему. Если очень хочется — можно померять две реализации, с вынесом констант в некоторую структуру "настроек".

Можно и опустить, главное чтобы описание поверхностей было "текстовым", например ресурсом или внешним файлом.

Реально собрался интерпретировать?

IID>Не такая, но и не в несколько процентов, как уверяют одепты .NET Для интереса можно и этим "померяться".

не интересно.
Re[33]: Работа - с чего начать: С++ или С#?
От: Mamut Швеция http://dmitriid.com
Дата: 19.05.09 10:31
Оценка:
Здравствуйте, IID, Вы писали:

IID> IID>> так потрудись привести пример, подтверждающий твои слова. Если бы ты сказал что-то вроде "наивно думать что на С++ всё реализуется с такой же лёгкостью/гибкостью как в .NET" — не было бы таких вопросов к тебе. Раз заикнулся о скорости — давай говорить предметно. Измеряя скорость конструкций языка, а не скорость подсистем ввода вывода/сторонних парсеров/спутников на орбите/etc.


IID> M>Это все синтетика.


IID> Все тесты по сути синтетика.


Можно предложить решение реальной задачи. Например, WideFinder


IID> M>Как можно сравнивать if с if'ом?


IID> Не передёргивай Имелось ввиду измерение скорости самодостаточного алгоритма, который есс-но, описан этими самыми конструкциями. Алгоритма, а не сторонних библиотек/парсеров/сервисов ОС/и т.д.


Это какой-то сферовакуумный конь получается

IID> M>Вон, в «декларативном программировании» привели пример считывания файлов таки. Ленивый Хаскель всех порвал.


IID> Понятно, что ничего не делать можно за бесконечно малое время.


Я ошибся, там сравнивались алгоритмы внутри хаскеля, а не в сравнении с С++
avalon 1.0rc1 rev 239, zlib 1.2.3


dmitriid.comGitHubLinkedIn
Re[34]: Работа - с чего начать: С++ или С#?
От: IID Россия  
Дата: 19.05.09 10:33
Оценка: -1
Здравствуйте, gandjustas, Вы писали:

G>Если не рассматривать способ получения этого кода, то такие рассуждения не нужны.

G>Это сродни тому что на ассемблере можно написать программу которая будет быстрее любой программы на любом языке.

Именно! Поэтому изначальная фраза, про то что С++ не может оказаться быстрее — глупость. Иными словами C++ всегда может работать НЕ МЕДЛЕНЕЕ дотнета.
Любопытно другое — на С++ можно написать код, который как не пыжься, на дотнете с одинаковой производительностью не повторить. (md5 например)

G>Тольео практика этот тезис не подтверждает.


Философствование насчёт практики — это выше по треду, когда коробочные продукты просили .NETовские показать. И пришли к выводу что практика это всё-таки С++. (VladD2 даже ввёл атрибут "тиражируемый" для С++ софта). Хотя у каждого "практика" может иметь собственный смысл.

В любом случае, мне рассуждения в таком ключе не интересны. Было желание увидеть "волшебный" .NET код, обгоняющий C++. А в итоге скатились на банальщину. И ещё раз подтвердили тот факт что С++ таки уделывает .NET по скорости.
kalsarikännit
Re[36]: Работа - с чего начать: С++ или С#?
От: IID Россия  
Дата: 19.05.09 10:39
Оценка:
Здравствуйте, samius, Вы писали:

IID>>Не увидел где там string.Replace, но тем не менее код (как тестовая платформа) мне по душе. Только модифицируйте его до компилябельного состояния.

S>Это не код, это способ задания поверхностей в рамках некоторого DSL. string.Replace как раз модифицирует его до компилябельного состояния. Предлагаю не заморачиваться на конкретном синтаксисе, а сделать любой удобный, но с тем чтобы на нем можно было описать аналогичный набор поверхностей.

Компилябельность мне нужна для себя. Чтобы я мог на своём железе собрать оба варианта и померять скорость. Ибо твоё железо явно от моего отличается, и замеры по отдельности бессмысленны. Поэтому, чтобы не заморачиваться с рисованием картинок и предлагаю писать в массив. А шаг установить одинаковых для обоих вариантов.
kalsarikännit
Re[35]: Работа - с чего начать: С++ или С#?
От: criosray  
Дата: 19.05.09 10:44
Оценка:
Здравствуйте, IID, Вы писали:

IID>Философствование насчёт практики — это выше по треду, когда коробочные продукты просили .NETовские показать. И пришли к выводу что практика это всё-таки С++. (VladD2 даже ввёл атрибут "тиражируемый" для С++ софта). Хотя у каждого "практика" может иметь собственный смысл.


IID>В любом случае, мне рассуждения в таком ключе не интересны. Было желание увидеть "волшебный" .NET код, обгоняющий C++. А в итоге скатились на банальщину. И ещё раз подтвердили тот факт что С++ таки уделывает .NET по скорости.


Да, в идеальном мире, где время, человеко-часы, персональный скилл программистов — величины безграничные, а платформа только одна.

К сожалению (для вас), мы живем в вовсе не таком идеальном мире.
Re[35]: Работа - с чего начать: С++ или С#?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 19.05.09 10:44
Оценка:
Здравствуйте, IID, Вы писали:

IID>Здравствуйте, gandjustas, Вы писали:


G>>Если не рассматривать способ получения этого кода, то такие рассуждения не нужны.

G>>Это сродни тому что на ассемблере можно написать программу которая будет быстрее любой программы на любом языке.

IID>Именно! Поэтому изначальная фраза, про то что С++ не может оказаться быстрее — глупость.

А кто такое говорил?

IID> Иными словами C++ всегда может работать НЕ МЕДЛЕНЕЕ дотнета.

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

А вообще второе твое утверждение не эквивалентно первому, изучай логику.

IID>Любопытно другое — на С++ можно написать код, который как не пыжься, на дотнете с одинаковой производительностью не повторить. (md5 например)

Только это будет не C++, а голый С. Все фичи, которые тут обсасываются сторонниками С++ идут лесом.

G>>Тольео практика этот тезис не подтверждает.


IID>Философствование насчёт практики — это выше по треду, когда коробочные продукты просили .NETовские показать. И пришли к выводу что практика это всё-таки С++. (VladD2 даже ввёл атрибут "тиражируемый" для С++ софта). Хотя у каждого "практика" может иметь собственный смысл.

Почитай еще раз тему, очень много объяснений почему тиражируемый софт на С++ делается.
IID>В любом случае, мне рассуждения в таком ключе не интересны. Было желание увидеть "волшебный" .NET код, обгоняющий C++. А в итоге скатились на банальщину. И ещё раз подтвердили тот факт что С++ таки уделывает .NET по скорости.
Re[37]: Работа - с чего начать: С++ или С#?
От: samius Япония http://sams-tricks.blogspot.com
Дата: 19.05.09 10:50
Оценка:
Здравствуйте, IID, Вы писали:

IID>Компилябельность мне нужна для себя. Чтобы я мог на своём железе собрать оба варианта и померять скорость. Ибо твоё железо явно от моего отличается, и замеры по отдельности бессмысленны. Поэтому, чтобы не заморачиваться с рисованием картинок и предлагаю писать в массив. А шаг установить одинаковых для обоих вариантов.


Компилябельность конкретного синтаксиса есть (после Replace-а). А вот чтобы в массив загнать — придется малость подкрутить. Что не обещаю сделать сегодня.

Если не секрет, что собрался сравнивать? Интерпретацию?
Re[36]: Работа - с чего начать: С++ или С#?
От: IID Россия  
Дата: 19.05.09 11:05
Оценка: +1
Здравствуйте, gandjustas, Вы писали:

G>Здравствуйте, IID, Вы писали:


IID>>Здравствуйте, gandjustas, Вы писали:


G>>>Если не рассматривать способ получения этого кода, то такие рассуждения не нужны.

G>>>Это сродни тому что на ассемблере можно написать программу которая будет быстрее любой программы на любом языке.

IID>>Именно! Поэтому изначальная фраза, про то что С++ не может оказаться быстрее — глупость.

G>А кто такое говорил?

ты говорил =) вот здесь
Автор: gandjustas
Дата: 18.03.09
:

G>Самообман — думать что C++ всегда быстрее.


IID>> Иными словами C++ всегда может работать НЕ МЕДЛЕНЕЕ дотнета.

G>Не всегда, за счет динамической кодогенерации прога на .NET может работать быстрее аналогичной прогри на C++.

Ну вот давай возьмём некоторый конкретный выхлоп этой кодогенерации, перепишем на С++, и удивимся, что он работает быстрее.
Если рассматривать С# как быстрый скриптер — то очень близко к правде, он правда быстр. Но это не единственный возможный вариант для скриптинга. Например, Lua + JIT не сильно отстаёт по скорости, а по расходу памяти так и вообще впереди C#. Оставим пока скриптинг в стороне. Это, конечно, важная штука, но не везде она юзается и уж точно в одну кучу всё мешать не нужно.

G>А вообще второе твое утверждение не эквивалентно первому, изучай логику.


Первое выражение (твоё, кстати) — ложно. Чтобы сделать его истинным — применим отрицание. Что получим ?
!(C++ _никогда_ _не может_ _быстрее_) == С++ _всегда_ _может_ _не медленнее_
Или ты отрицание от С++ пытаешься взять ? :D


IID>>Любопытно другое — на С++ можно написать код, который как не пыжься, на дотнете с одинаковой производительностью не повторить. (md5 например)

G>Только это будет не C++, а голый С. Все фичи, которые тут обсасываются сторонниками С++ идут лесом.
голый С это подмножество С++. Так что "это будет не С++", мягко говоря, ложь.

G>>>Тольео практика этот тезис не подтверждает.


IID>>Философствование насчёт практики — это выше по треду, когда коробочные продукты просили .NETовские показать. И пришли к выводу что практика это всё-таки С++. (VladD2 даже ввёл атрибут "тиражируемый" для С++ софта). Хотя у каждого "практика" может иметь собственный смысл.

G>Почитай еще раз тему, очень много объяснений почему тиражируемый софт на С++ делается.
Была где-то хорошая мысль: если бы преимущества управляемой среды были бы действительно значимыми — переписали бы. Получается их значимость, как минимум, недостаточна.
kalsarikännit
Re[37]: Работа - с чего начать: С++ или С#?
От: samius Япония http://sams-tricks.blogspot.com
Дата: 19.05.09 11:09
Оценка:
Здравствуйте, IID, Вы писали:

IID>Ну вот давай возьмём некоторый конкретный выхлоп этой кодогенерации, перепишем на С++, и удивимся, что он работает быстрее.


Вона чего?
Нет, пари отменяется.
Re[38]: Работа - с чего начать: С++ или С#?
От: IID Россия  
Дата: 19.05.09 11:11
Оценка:
Здравствуйте, samius, Вы писали:

S>Если не секрет, что собрался сравнивать? Интерпретацию?


Нет конечно C++ вариант соберу Intel C++ Compiler 11.0.072, померяю скорость. Результаты, ключи компиляции и EXE выложу куда-нибудь. C# буду собирать VS2008 (вроде бы SP1, но не уверен). Ключи компиляции, версия CLR/языка, любые другие особенности сборки — как ты сам скажешь. Результаты тоже опубликую.
kalsarikännit
Re[38]: Работа - с чего начать: С++ или С#?
От: vdimas Россия  
Дата: 19.05.09 11:13
Оценка:
Здравствуйте, criosray, Вы писали:

C>Откройте документацию по xUnit.NET, откройте документацию по RhinoMocks и почитайте. Заниматься восполнением пробелов в Вашем образовании не намерен


Т.е. обсуждать на форуме эти возможности ты не в состоянии? Так я и думал.

V>>Не надоело рефлексировать и показывать в очередной раз свой поверхностный взгляд? Все твои вызовы мокков ради ассертов, собственно и сделаны. И хоть они теперь не в фас, а в профиль — они были и есть цель любого автоматического теста (не обязательно юнит...)

C>"Все твои вызовы мокков ради ассертов, собственно и сделаны" — это напоминает генератор цепей Маркова. Взять два умных слова, и связать их между собой связующими. Получается билеберда, но звучит вроде как умно для стороннего человека.

Не смотря на выделенное ключевое слово, ты не понял, о чем речь. Хоть честно признался, что для тебя это билеберда.

C>Так вот, ликбез: мокинг выполняется с целью изолировать тестируемый объект от внешних зависимостей.


Странно, а я думал, что лет 40 до этого эту ф-ию выполняли заглушки... Или они нужны были для "чего-то другого"?
Блин, ты как только проснулся, что-то увидел, проникся и стал "вещать"... В отрыве от предыстории и сравнения различных способов достичь аналогичных целей ты будешь оставаться в своей роли проповедника хари кришны. А если будешь готов поговорить более предметно, надеюсь поймешь, что за деревьями потерял лес.


C>Что означает, что ожидается, что будет вызван databaseManager.BeginTransaction(), а потом в любом порядке будут вызваны Withdraw и Deposit.


И что сказать хотел? Ты ведь примитивизм какой-то приводишь... Который, кстати на АОП куда как прикольней выглядит, и не требует проверки на 4 после 2*2.


C>Ассерты и моки не цель. Это средство и ключевой механизм реализации юнит тестов.


Опять ошибка, это ср-во автоматизации тестирования в первую очередь. Интеграционному и регрессионному тестированию так же помогают и заглушки и изоляция и весь суповой набор и используются те же ср-ва автоматизации, наподобии xUnit.

C>При чем тесты ни коим образом не захламляют код. Все тесты находятся в отдельной сборке, которая "видит" (и только она одна) внутренности тестируемых сборок.


Это более чем не принципиально. Мы вот делим тестирующие сборки на "пояса безопасности", так удобнее (знаешь что это?). В общем, по-прежнему разговор ни о чем.


V>>Любую динамическую среду/заглушки, которые генерят переменный по насыщенности траффик или сообщения с разной задержкой и произвольным наполнением. Фишка в том, что реальных задержек-то и нет, текущее время эмулируется, но тестирующая последовательность слишком длинная, чтобы записывать её ручками, она генерируется программой. А таких последовательностей/программ у меня — мама не горюй.


C>Еще один ликбез: описанное Вами не является модульными тестами. Это т.н. integration tests. При чем ничего невозможного в реализации этого нет — описанное реализуется элементарно в .NET.


Ты наверно плохо прочитал описанное Мною, тестируется работоспособность ровно одного юнита.
Ты попался в ту же ловушку, как и большинство, ратующих за строгую изоляцию юнит-тестов от интеграционных, не понимая сути вещей. Ответь здесь
Автор: vdimas
Дата: 19.05.09
насчет использования классов фреймворка в процессе юнит-тестирования. Гена тебе разжевал и практически в рот положил то, что должен был понять сам давно, но ты отмахнулся и поскакал дальше.


V>>Далее, обмен сложными структурами данных заглушки и тестируемого объекта, у объекта приличное пространство состояний, на что заглушка должна грамотно реагировать, т.е. приличная иногда логика на if-ах и case-ах.

C>Элементарно средствами RhinoMocks.

Во-первых, мне гораздо больше по душе TypeMock, по сравнению с которым рино курит, во вторых даже на нем это не элементарно.

V>>В декларативном синтаксисе мокков это выглядит как удаление гландов через Ж, и чем осмысленнее логика — тем более глубокое погружение в эту Ж. А если процедура внешняя, то это лишняя тестирующая сущность и все такое.


C>Демагогия.


C>Выглядит преотлично. На много лучше, чем то, что у вас есть (а точнее нет) в unmanaged C++. lambda выражения и fluent interface дают прекрасную читабельность.



C>
C>Expect.Call(file.Read(null, 0, 0))
C>      .Constraints(Property.Value("Length", 4096), Is.Equal(0), Is.GreaterThan(0) && Is.LessThan(4096)); 
C>


Как раз в С++ можно поинтересней синтаксис придумать для такого примера, и даже на проперти не через тектовый токен сослаться (что сакс)... Проблема-то там не в этом, а в бинарной совместимости. Тут уже написал по этой теме (последние 3 абзаца): http://www.rsdn.ru/Forum/message/3395444.1.aspx
Автор: vdimas
Дата: 19.05.09


V>>А теперь смотри что получается: автомоками удобно пользоваться для оформления относительно несложных тестов, где внешние условия и реакцию на них вполне можно описать декларативно и синтаксис все еще не будет раздражать.

C>Модульные или unit тесты ОБЯЗАНЫ быть несложными. В этом их СУТЬ.

Беда-беда... Ты же сам где-то правильно говорил, что есть модульные тесты, а теперь несешь отсебятину. Тесты должны быть в первую очередь адекватны задаче и коду, а сложные/несложные — разговор в пользу бедных. Ты еще начни тут вещать, что "код тоже всегда простой", сразу можно будет пожизненно в сайтостроители оформлять.

V>>Ах да, чуть не забыл... разумеется без них практически никак, если у кого-то был неудержимый понос на Ынтерфейсы в период дизайна. Собственно для них в первую очередь оно и есть.

C>Нет, не для них. Вам не надоело ламерствовать?

Развлекаюсь, пока мне интересно. Например, ты опять нихрена не понял. Когда упоминают тучи интерфейсов, то имеют ввиду сильную связанность дизайна. А теперь прочитай твои собственные обрывки, где ты говорил для чего, по-твоему, нужны моки. И кто теперь ламер?
Re[39]: Работа - с чего начать: С++ или С#?
От: samius Япония http://sams-tricks.blogspot.com
Дата: 19.05.09 11:13
Оценка:
Здравствуйте, IID, Вы писали:

IID>Здравствуйте, samius, Вы писали:


S>>Если не секрет, что собрался сравнивать? Интерпретацию?


IID>Нет конечно C++ вариант соберу Intel C++ Compiler 11.0.072, померяю скорость. Результаты, ключи компиляции и EXE выложу куда-нибудь. C# буду собирать VS2008 (вроде бы SP1, но не уверен). Ключи компиляции, версия CLR/языка, любые другие особенности сборки — как ты сам скажешь. Результаты тоже опубликую.


Это не решение задачи.
Re[40]: Работа - с чего начать: С++ или С#?
От: IID Россия  
Дата: 19.05.09 11:24
Оценка:
Здравствуйте, samius, Вы писали:

S>Здравствуйте, IID, Вы писали:


IID>>Здравствуйте, samius, Вы писали:


S>>>Если не секрет, что собрался сравнивать? Интерпретацию?


IID>>Нет конечно C++ вариант соберу Intel C++ Compiler 11.0.072, померяю скорость. Результаты, ключи компиляции и EXE выложу куда-нибудь. C# буду собирать VS2008 (вроде бы SP1, но не уверен). Ключи компиляции, версия CLR/языка, любые другие особенности сборки — как ты сам скажешь. Результаты тоже опубликую.


S>Это не решение задачи.


С точки зрения оценки производительности — нормально. Если я буду рендерить картинку сгенерированным .NET кодом час, а плюсовым — пару минут этого более чем достаточно. Как приду домой — замеряю.
kalsarikännit
Re[37]: Работа - с чего начать: С++ или С#?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 19.05.09 11:27
Оценка: +1
Здравствуйте, IID, Вы писали:

IID>Здравствуйте, gandjustas, Вы писали:


G>>Здравствуйте, IID, Вы писали:


IID>>>Здравствуйте, gandjustas, Вы писали:


G>>>>Если не рассматривать способ получения этого кода, то такие рассуждения не нужны.

G>>>>Это сродни тому что на ассемблере можно написать программу которая будет быстрее любой программы на любом языке.

IID>>>Именно! Поэтому изначальная фраза, про то что С++ не может оказаться быстрее — глупость.

G>>А кто такое говорил?

IID>ты говорил =) вот здесь
Автор: gandjustas
Дата: 18.03.09
:

IID>

G>>Самообман — думать что C++ всегда быстрее.

Ну тупи. "Не всегда быстрее" = "иногда медленее". Сам себе что-то придумываешь, а потом непонятно кому доказываешь.

IID>>> Иными словами C++ всегда может работать НЕ МЕДЛЕНЕЕ дотнета.

G>>Не всегда, за счет динамической кодогенерации прога на .NET может работать быстрее аналогичной прогри на C++.

IID>Ну вот давай возьмём некоторый конкретный выхлоп этой кодогенерации, перепишем на С++, и удивимся, что он работает быстрее.

Ну и что?

G>>А вообще второе твое утверждение не эквивалентно первому, изучай логику.


IID>Первое выражение (твоё, кстати) — ложно. Чтобы сделать его истинным — применим отрицание. Что получим ?

IID>!(C++ _никогда_ _не может_ _быстрее_) == С++ _всегда_ _может_ _не медленнее_
IID>Или ты отрицание от С++ пытаешься взять ? :D
Бред ты пишешь.

Если формально рассуждать, что мое утверждение выглядит как: !(ForAll(программы) реализация на C++ -> самая быстрая), ! — отрицание, -> — импликация, ForAll(программы) — квантор всеобщности.
Если спустить отрицание, то получится (Exists(программы) !(реализация на С++ -> самая быстрая)), где Exists — квантор существования.
Отрицание имликации истинно (сама импликация ложна) только в том случае, когда посылка истина, а следствие ложно.
В итоге по-русски можно написать "сществуют программы, для которых реализация на С++ окажется не самой быстрой", что совсем по-русски звучит как "иногда программы на С++ медленее", а не то что ты придумал.

Иди ботай логику, потом возвращайся. А то тебя в КСВ будут за шеридана держать.

IID>>>Любопытно другое — на С++ можно написать код, который как не пыжься, на дотнете с одинаковой производительностью не повторить. (md5 например)

G>>Только это будет не C++, а голый С. Все фичи, которые тут обсасываются сторонниками С++ идут лесом.
IID>голый С это подмножество С++. Так что "это будет не С++", мягко говоря, ложь.
Это как раз правда.
Более того, голый C практически является подмножеством C#, за исключением некоторых детаей работы с указателями.

IID>Была где-то хорошая мысль: если бы преимущества управляемой среды были бы действительно значимыми — переписали бы. Получается их значимость, как минимум, недостаточна.


Страшная бредятина. С экономической тоочки зрения переписывать готовый продукт под другую платформу невыгодно совсем, несмотря на любые преимущества платформы.

А вообще если бы С++ был так крут как о нем тут пишут, то .NET даже не появился бы.
Re[41]: Работа - с чего начать: С++ или С#?
От: samius Япония http://sams-tricks.blogspot.com
Дата: 19.05.09 11:34
Оценка:
Здравствуйте, IID, Вы писали:

IID>Здравствуйте, samius, Вы писали:


S>>Это не решение задачи.


IID>С точки зрения оценки производительности — нормально. Если я буду рендерить картинку сгенерированным .NET кодом час, а плюсовым — пару минут этого более чем достаточно. Как приду домой — замеряю.


Задача не в том чтобы картинку срендерить, а в том, чтобы предоставить интерактивный рендерер/считалку, который позволяет изменять описание поверхностей в рантайме.
То что ты соберешь под Intel C++ Compiler 11.0.072, меня не волнует, пока ты не включить его в свою программу.
Re[30]: Работа - с чего начать: С++ или С#?
От: vdimas Россия  
Дата: 19.05.09 12:02
Оценка: 3 (1) +2
Здравствуйте, gandjustas, Вы писали:

G>То что С++ (именно с плюсами) нах не нужен. Для быстрых числомолотилок берем код на C и нормально зовем его из любого языка.


Я уже не первый раз вижу это мнение, но не могу понять мотивы, может объяснишь? Наилучшие по оптимизации компиляторы — это С++, и они умеют коомпилировать С-код. Вот смысл мне не пользоваться возможностями более высокоуровневого языка, если у мня все-равно будет использован компилятор, который прекрасно компилит оба языка. Смотри: в чистом С ссылочный тип не строго типизирован, нет инлайна, нет инициализации по месту, недоступна ОО-декомпозиция (а в этом миксере участвует около десятка классов, и кое-какая шаблонность есть, правда без претензий на МП) и т.д и т.п. Поэтому поинт не понятен совершенно, по мне С++ в стиле "С с классами" все равно гораздо мощнее С. Я бы советовал ровно наоборот, там где можно, вместо С использовать С++.

G>Для более высоких абстракций берем более подходящие языки.


Дело в вышине абстракций, а вычислительной модели. Для задачи надо брать подходящую вычислительную модель. Да, на GC многие задачи решаются проще, даже если брать языки с убогим синтаксисом просто в силу подходящей вычислительной модели.


G>Кроме того уже не за горами запуск числомолотилок на GPU, там тоже высокоуровневые языки будут более уместны, так как позволят генерить код для GPU в рантайме.


Фиг его знает, что будет. При количестве ядер, больше 16/32/64, сам факт наличия GPU будет под вопросом. В любом случае, обсуждать сегодня то, что может быть завтра, в контексте сделанной вчера задачи — юморно.
Re[38]: Работа - с чего начать: С++ или С#?
От: IID Россия  
Дата: 19.05.09 12:21
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>>>А кто такое говорил?


IID>>ты говорил =) вот здесь
Автор: gandjustas
Дата: 18.03.09
:

IID>>

G>>>Самообман — думать что C++ всегда быстрее.

G>Ну тупи. "Не всегда быстрее" = "иногда медленее". Сам себе что-то придумываешь, а потом непонятно кому доказываешь.

Примера этого "иногда медленее" я так и не увидел, между прочим.

G>В итоге по-русски можно написать "сществуют программы, для которых реализация на С++ окажется не самой быстрой", что совсем по-русски звучит как "иногда программы на С++ медленее", а не то что ты придумал.


Ой как хорошо. Т.к. мы рассуждаем о .NET-е, то ОЧЕНЬ хочется посмотреть на такую .NET программу, для которой реализация на C++ окажется не самой быстрой. И не заваливайся в сторону "всё другие языки vs C++", мы готоврим только о .NET vs C++.
kalsarikännit
Re[38]: Работа - с чего начать: С++ или С#?
От: Mamut Швеция http://dmitriid.com
Дата: 19.05.09 12:26
Оценка:
g> В итоге по-русски можно написать "сществуют программы, для которых реализация на С++ окажется не самой быстрой", что совсем по-русски звучит как "иногда программы на С++ медленее", а не то что ты придумал.


Кстати, а есть таки примеры, где это так? Вроде, где-то в КСВ приводили примеры, я сейчас не найду
avalon 1.0rc1 rev 239, zlib 1.2.3


dmitriid.comGitHubLinkedIn
Re[38]: Работа - с чего начать: С++ или С#?
От: Mamut Швеция http://dmitriid.com
Дата: 19.05.09 12:33
Оценка:
g> В итоге по-русски можно написать "сществуют программы, для которых реализация на С++ окажется не самой быстрой", что совсем по-русски звучит как "иногда программы на С++ медленее", а не то что ты придумал.


Кстати, а есть таки примеры, где это так? Вроде, где-то в КСВ приводили примеры, я сейчас не найду
avalon 1.0rc1 rev 239, zlib 1.2.3


dmitriid.comGitHubLinkedIn
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.