Re[39]: Работа - с чего начать: С++ или С#?
От: samius Япония http://sams-tricks.blogspot.com
Дата: 19.05.09 12:36
Оценка: 4 (2)
Здравствуйте, Mamut, Вы писали:

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



M>Кстати, а есть таки примеры, где это так? Вроде, где-то в КСВ приводили примеры, я сейчас не найду

Вот здесь на графиках видны примеры, где C++ уступает C#.
В исходниках не ковырялся
Re[31]: Работа - с чего начать: С++ или С#?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 19.05.09 12:36
Оценка: -1
Здравствуйте, vdimas, Вы писали:

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


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


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

Я имею ввиду не использование компилятора С, а неиспользование возможностей C++ — классов, шаблонов, динамической памяти и прочего.
Для числомолотилок оно и не нужно.
Re[39]: Работа - с чего начать: С++ или С#?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 19.05.09 12:39
Оценка:
Здравствуйте, IID, Вы писали:

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


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


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

IID>>>

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

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

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


IID>Ой как хорошо. Т.к. мы рассуждаем о .NET-е, то ОЧЕНЬ хочется посмотреть на такую .NET программу, для которой реализация на C++ окажется не самой быстрой. И не заваливайся в сторону "всё другие языки vs C++", мы готоврим только о .NET vs C++.


Третий раз говорю. Ключевое слово: кодогенерация.
Re[33]: Работа - с чего начать: С++ или С#?
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.05.09 12:51
Оценка: 3 (1)
Здравствуйте, IID, Вы писали:

IID>Не уводите тему в сторону. Мы сейчас рассуждаем только о скорости получившегося кода.


А тебе о скорости получаемых приложений. Она определяется не только, да и не столько скоростью выполняемого кода сколько качеством и скоростными характеристиками используемых алгоритмов.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[36]: Работа - с чего начать: С++ или С#?
От: NikeByNike Россия  
Дата: 19.05.09 12:53
Оценка: +1
Здравствуйте, gandjustas, Вы писали:

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

G>Не всегда, за счет динамической кодогенерации
При всех этих динамических компиляциях и кешированиях, Генка Риггер как то пожаловался что им скоро придётся вместе со своими продуктами продавать пакетики травы — чтобы визуально сглаживать постоянные рывки производительности

G>прога на .NET может работать быстрее аналогичной прогри на C++.

Я тебя обрадую — к С++ тоже можно приделать динамическую кодогенерацию, я это делал когда-то. Однако для С++ это не нужно он и так почти всегда близок к оптимому при прочих равных.

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

Не тебе говорить о логике

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

G>Только это будет не C++, а голый С. Все фичи, которые тут обсасываются сторонниками С++ идут лесом.
Ты не знаешь С++ иначе бы не нёс ересь про С
Нужно разобрать угил.
Re[35]: Работа - с чего начать: С++ или С#?
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.05.09 12:54
Оценка:
Здравствуйте, IID, Вы писали:

IID>Из конкретики — о увеличичении скорости написания кода (могу согласиться). Остальное — вода, зависящая от кучи факторов. Совершенно непонятно, почему код С++ лишается возможности быть качественным, иметь продуманный дизайн, хорошие алгоритмы. арианта.


Он не лишается. Просто добиться того же качества значительно дороже.
Собственно ассемблер дает еще больший простор для оптимизаций и потенциально на нем можно написать более быстрый софт. Но это еще дорожа (причем очень существенно). Посему даже такие богатые компании как MS и IBM не пользуются им.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[31]: Работа - с чего начать: С++ или С#?
От: NikeByNike Россия  
Дата: 19.05.09 12:58
Оценка:
Здравствуйте, vdimas, Вы писали:

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


Если меня память не подводит, он утверждал что применение шаблонов тормозит скорость выполнения
Нужно разобрать угил.
Re[6]: Работа - с чего начать: С++ или С#?
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.05.09 12:59
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>Вот тут все про моно да про моно. Но хоть бы кто-нибудь показал мастер-класс на оном, а то складывается впечатление, что его защитники видели его только на картинках, а те, кто его пользовал, молчат, дабы не было стыдно.


Что ты хочешь увидеть?

Компилятор Nemerle параллельно живет под двумя рантаймами: Mono и .Net. Можешь загрузить и скомпилировать. Это подойдет для "просмотра"?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[32]: Работа - с чего начать: С++ или С#?
От: FR  
Дата: 19.05.09 13:05
Оценка: +1
Здравствуйте, gandjustas, Вы писали:


G>Я имею ввиду не использование компилятора С, а неиспользование возможностей C++ — классов, шаблонов, динамической памяти и прочего.

G>Для числомолотилок оно и не нужно.

Шаблоны и классы нужны, позволяют получить более шустрый код чем чистый си.
Re[36]: Работа - с чего начать: С++ или С#?
От: FR  
Дата: 19.05.09 13:10
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Собственно ассемблер дает еще больший простор для оптимизаций и потенциально на нем можно написать более быстрый софт. Но это еще дорожа (причем очень существенно). Посему даже такие богатые компании как MS и IBM не пользуются им.


Ассемблер сейчас дает меньший простор, кроме нескольких узких случаев, и даже для них удобнее править выхлоп сишного компилятора.
К тому же ассемблер средство другого класса, трудоемкость разработки на нем (даже учитывая чудеса макроассемблеров) на порядок ниже чем на C++. Шарп и С++ по трудоемкости разработки в одном классе.
Re[37]: Работа - с чего начать: С++ или С#?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 19.05.09 13:11
Оценка: :)
Здравствуйте, NikeByNike, Вы писали:

G>>прога на .NET может работать быстрее аналогичной прогри на C++.

NBN>Я тебя обрадую — к С++ тоже можно приделать динамическую кодогенерацию, я это делал когда-то. Однако для С++ это не нужно он и так почти всегда близок к оптимому при прочих равных.

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

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

NBN>Не тебе говорить о логике
И не тебе. Так что не влазь.

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

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

NBN>Ты не знаешь С++ иначе бы не нёс ересь про С

Ты о чем? Исходники md5 отлично собираются голым C компилятором.
Re[7]: Работа - с чего начать: С++ или С#?
От: Anton Batenev Россия https://github.com/abbat
Дата: 19.05.09 13:13
Оценка:
Здравствуйте, VladD2, Вы писали:

VD> Что ты хочешь увидеть?


Мастер-класс, я же написал

VD> Компилятор Nemerle параллельно живет под двумя рантаймами: Mono и .Net. Можешь загрузить и скомпилировать. Это подойдет для "просмотра"?


Nemerle — это тот же моно, только в профиль. Но, почему-то, развивать с тобой дискуссию в этом направлении у меня нет никакого желания. Откланиваюсь заранее.
avalon 1.0rc1 rev 244, zlib 1.2.3
Re[27]: Работа - с чего начать: С++ или С#?
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.05.09 13:13
Оценка:
Здравствуйте, IID, Вы писали:

IID>Можно пример программы на .NET, которую невозможно будет обогнать программой на С++ ?


Вопрос в принципе не корректен, так как язык сам по себе не может быть быстрее или медленнее. Скажем Борлондовские компиляторы С++ в большинстве случаев порождают код более медленный чем MS .Net.

Но вот тебе забавный пример в тему:
http://tirania.org/blog/archive/2008/Nov-03.html

Ну, а главное, что есть софт который в условиях ограниченных ресурсов вообще нельзя реализовать на С++ (костьми ляжешь).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[33]: Работа - с чего начать: С++ или С#?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 19.05.09 13:14
Оценка:
Здравствуйте, FR, Вы писали:

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



G>>Я имею ввиду не использование компилятора С, а неиспользование возможностей C++ — классов, шаблонов, динамической памяти и прочего.

G>>Для числомолотилок оно и не нужно.

FR>Шаблоны и классы нужны, позволяют получить более шустрый код чем чистый си.


Пример?
Re[28]: Работа - с чего начать: С++ или С#?
От: NikeByNike Россия  
Дата: 19.05.09 13:18
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Ну, а главное, что есть софт который в условиях ограниченных ресурсов вообще нельзя реализовать на С++ (костьми ляжешь).

Оно же верно и для шарпа, поэтому я на него так и не перешёл
Игры, кроссплатформенные приложения, некоторые виды миддлеваре
Нужно разобрать угил.
Re[34]: Работа - с чего начать: С++ или С#?
От: FR  
Дата: 19.05.09 13:19
Оценка: +1 -1
Здравствуйте, gandjustas, Вы писали:

FR>>Шаблоны и классы нужны, позволяют получить более шустрый код чем чистый си.


G>Пример?


std::sort vs qsort
Re[27]: Работа - с чего начать: С++ или С#?
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.05.09 13:19
Оценка:
Здравствуйте, IID, Вы писали:

IID>P.S.: подсказка: сам CLR написан на C/С++, и скорость выполнения .NET кода это, в определённом смысле, скорость выполнения некоторой С++ программы. Которую всегда можно, как минимум, не замедлить.


Замечательная логика! Точнее ее полное отсутствие.

Из этой предпосылки можно сделать вывод, что если написать компилятор, скажем, С на Руби, то получаемые программы будут иметь "в определенном смысле" (не знаю что за этим скрывается) скорость Руби (т.е. будут тормозными).

Бред? Несомненно! Но это твой бред .
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[29]: Работа - с чего начать: С++ или С#?
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.05.09 13:20
Оценка:
Здравствуйте, IID, Вы писали:

IID>Отвечу в этом месте обоим: JIT связан по рукам и ногам временными ограничениям. У С++ компилятора свободы (времени) гораздо больше. Насколько я понимаю, кода никто не приведёт, и можно засчитывать слив ?


А чем связан NGEN? (погугли прежде чем отвечать).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: Работа - с чего начать: С++ или С#?
От: MxKazan Португалия  
Дата: 19.05.09 13:21
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

VD>> Компилятор Nemerle параллельно живет под двумя рантаймами: Mono и .Net. Можешь загрузить и скомпилировать. Это подойдет для "просмотра"?

AB>Nemerle — это тот же моно, только в профиль. Но, почему-то, развивать с тобой дискуссию в этом направлении у меня нет никакого желания. Откланиваюсь заранее.
Не, ну это как-то не хорошо с твоей стороны. Получается ты просто игнорируешь реальные примеры. Зачем тогда спрашивать
Re[28]: Работа - с чего начать: С++ или С#?
От: FR  
Дата: 19.05.09 13:24
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Но вот тебе забавный пример в тему:

VD>http://tirania.org/blog/archive/2008/Nov-03.html

VD>Ну, а главное, что есть софт который в условиях ограниченных ресурсов вообще нельзя реализовать на С++ (костьми ляжешь).


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