Re[54]: Работа - с чего начать: С++ или С#?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 20.03.09 12:42
Оценка: -1 :))
Здравствуйте, hattab, Вы писали:

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


H>>> New(Arr);

H>>> Dispose(Arr);

H>>>Pentium M 1.7GHz. Память PC2700. Время: 67ms.


C>>Если компилятор не дурак, то он вообще не станет выделять память по пусту, раз Вы ее не используете и пустой цикл тоже не станет крутить по чем зря.


C>>Впрочем, это ж Делфи.


H>Вай-вай, говнодельфи укопал мегашарпа... Смотри не лопни, от злости


Кстати, как на делфи с задачкой про все строки файла...
Re[55]: Работа - с чего начать: С++ или С#?
От: CreatorCray  
Дата: 20.03.09 12:44
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Кроме того я в тесте кроме выделения памяти померил еще и время двух миллионов проверок на попадание в границы массива и присваивания.

А оно для константных индексов разве будет проверять если размер массива тоже константа, известная еще на этапе компиляции? А как же умный JIT?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[51]: Работа - с чего начать: С++ или С#?
От: hattab  
Дата: 20.03.09 12:49
Оценка:
Здравствуйте, criosray, Вы писали:

H>>Base64 -- единственный способ передать бинарные данные в XML-RPC.


C>Так Вы сами себе злобные буратины, раз выбрали такой стандарт. Что мешает бинарные передавать обычным http stream`ом?


Почитай, что я Синклеру написал по этому поводу.

C>>>Java-like нотация записи методов (getScreenshot64) — моветон.


H>>Это негласный стандарт в XML-RPC.


C>Ой да ну? А можно ссылку на этот "негласный стандарт". Очень хочу посмотреть.


Иди на http://www.xmlrpc.com/ и смотри примеры.

C>>>В С# нет оператора :=


H>>Писал по памяти. Pascal мой основной язык.


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


Я лишь факты констатирую. Просто у пропогандистов реальность из страны ОЗ

C>>>Неиспользование using для MemoryStream — утечка ресурсов.


H>>Чего-то я не понял, а каким ресурсом, кроме собственно памяти, владеет MemoryStream?

C>1) для любого класса, реализующего IDisposable следует вызывать Close/Dispose
C>2) любой Stream по окончании работы с ним следует закрывать (помечая его тем самым closed)

Так камим все таки ресурсом, а? using он для освобождения т.н. неуправляемых ресурсов предназначен же.

C>>>Читабельность Picture.Bitmap.LoadFromStream(TXmlRpcBase64(XmlRpcServerProxy('http://127.0.0.1/').keyhole.getScreenshot64(320, 200)).AsStream); -- отвратительная.


H>>Еще раз: это тестовый пример.

C>Что-то мне подсказывает, что Ваш код выглядит не лучше этих "тестовых примеров".

Попытка перейти на личности приравнивается к сливу. Желаю удачи.
Re[55]: Работа - с чего начать: С++ или С#?
От: hattab  
Дата: 20.03.09 12:51
Оценка:
Здравствуйте, gandjustas, Вы писали:

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

G>Кроме того я в тесте кроме выделения памяти померил еще и время двух миллионов проверок на попадание в границы массива и присваивания.
G>примерно 5% времени занимает.

Не отмажешься теперь
Re[56]: Работа - с чего начать: С++ или С#?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 20.03.09 12:52
Оценка:
Здравствуйте, CreatorCray, Вы писали:

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


G>>Кроме того я в тесте кроме выделения памяти померил еще и время двух миллионов проверок на попадание в границы массива и присваивания.

CC>А оно для константных индексов разве будет проверять если размер массива тоже константа, известная еще на этапе компиляции? А как же умный JIT?
Может он так и делает. Тогда просто время миллиона присваиваний.
Re[55]: Работа - с чего начать: С++ или С#?
От: Хвост  
Дата: 20.03.09 12:53
Оценка: +4
Здравствуйте, gandjustas, Вы писали:

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


Х>>ну как же, C++ == запредельный перфоманс + надёжный и красивый код

G>И то и другое неправда.
правда, вот я прямо сейчас смотрю в реализацию гугловского V8, и вижу как ни странно запредельный перфоманс + надёжный и красивый код, а может тебе указать на библиотечку Blitz++ которая уделала фортран на вычислительных задачах (да, фортран, да, на вычислительных задачах) что не удавалось твоему перфоманс-фавориту Си? другое дело что мало кто так писать умеет, большинству проще на шарпах Linq'ом побаловаться или в WPF'е поформошлёпить )


Х>>надеюсь ты понимаешь разницу между структурой и классом в дотнете, повторяюсь — инстанцировать классы

G>Я то как раз отлично понимаю, а вы — видимо нет.
можно прямо сказать, дотнет етого не позволяет, я ето знаю, ты ето знаешь, зачем юлить?

Х>>и на посошок, или я проглядел, или ты не ответил на вопрос — сколько у тебя установлено приложений уровня "десктоп", писаных на дотнете?

G>Сколько установлено — не считал, пользуюсь двумя — paint.NET и Windows Live Writer. Это треть софта, который я ставил и пользуюсь им.
у тебя ~6 десктопных программ? клёво
музыку ты наверное не слушаешь, видео не смотришь, документы/таблицы не набираеш, программы не пишешь, гуглы ёрс не смотришь, интернеты не браузишь, скайпы не говоришь, игры не играешь, ну итд по списку 99% софта. ты просто возьми на минутку и задумайся, почему оно так в мире, не правит дотнет.
People write code, programming languages don't.
Re[55]: Работа - с чего начать: С++ или С#?
От: Erop Россия  
Дата: 20.03.09 13:10
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Кстати, как на делфи с задачкой про все строки файла...

Если вдруг ты сможешь понятно описать чего тебе надобно, старче, то она очевидно решается на ЛЮБОМ АЛГОРИТМИЧЕСКОМ ЯЗЫКЕ, даже на FORTRAN И basic!
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[56]: Работа - с чего начать: С++ или С#?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 20.03.09 13:13
Оценка: :)
Здравствуйте, Хвост, Вы писали:

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


Х>>>надеюсь ты понимаешь разницу между структурой и классом в дотнете, повторяюсь — инстанцировать классы

G>>Я то как раз отлично понимаю, а вы — видимо нет.
Х>можно прямо сказать, дотнет етого не позволяет, я ето знаю, ты ето знаешь, зачем юлить?
Ну если вы так думаете тогда объясните принципиальную разницу между классом на стеке и структурой на стеке.

Х>>>и на посошок, или я проглядел, или ты не ответил на вопрос — сколько у тебя установлено приложений уровня "десктоп", писаных на дотнете?

G>>Сколько установлено — не считал, пользуюсь двумя — paint.NET и Windows Live Writer. Это треть софта, который я ставил и пользуюсь им.
Х>у тебя ~6 десктопных программ? клёво
Х>музыку ты наверное не слушаешь, видео не смотришь, документы/таблицы не набираеш, программы не пишешь, гуглы ёрс не смотришь, интернеты не браузишь, скайпы не говоришь, игры не играешь, ну итд по списку 99% софта. ты просто возьми на минутку и задумайся, почему оно так в мире, не правит дотнет.
Дейсвительно, не 6, а 7 десктопных программ которыми я пользуюсь: браузер, почтовик, paint.net, live writer, qip, skype, vs2008.
Media Player был в комплекте, офис тоже.
Остальное запускаю редко.

В игры не играю, карты смотрю в браузере.

Кстати, сколько сайтов, по которым ты ходишь написаны на asp.net?
Re[53]: нет, ну если ты настаиваешь... ;)
От: Erop Россия  
Дата: 20.03.09 13:18
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Зачем? Для запредельного перфоманса есть С, для надежного и красивого кода есть C#, F#.

G>А С++ в этом уравнении места нет.

Нет, ну если ты настаиваешь, что быстрый код ОБЯЗАН БЫТЬ ненадёжным и некрасивым, то да, нет...
А если вдруг тебе охота чтобы и быстрый код был и надёжным и красивым и поддерживаемым, то места мало остаётся как раз для С -- только платформы, где есть дот нет, но нет хороших С++ компиляторов...
Кстати, что это за платформы?


Кстати, если так взглянуть на это дело, то окажется, что и для С# место сожмётся, так как если в твоей проге самая нагруженная часть на С++, то не ясно, зачем оболочку-то на ХиндиС делать? У ХиндиС есть неомненный плюс -- дешёвая и быстрая разработка бригадой гастарбайтеров, в смысле индусов. Если в твоём проекте есть такие компоненты, то супер, С# твой выбор...


Да, то, что между черт -- это стёб... Но в каждой шутке есть таки доля шутки...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[56]: Работа - с чего начать: С++ или С#?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 20.03.09 13:21
Оценка:
Здравствуйте, Erop, Вы писали:

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


G>>Кстати, как на делфи с задачкой про все строки файла...

E>Если вдруг ты сможешь понятно описать чего тебе надобно, старче, то она очевидно решается на ЛЮБОМ АЛГОРИТМИЧЕСКОМ ЯЗЫКЕ, даже на FORTRAN И basic!
Никто не говорил что она не решается.

Выразительность языка заключается не в возможности решить задачу, в читаемости, поддерживаемости и расширяемости этого решения. (это упрощенно)
Re[49]: Работа - с чего начать: С++ или С#?
От: Erop Россия  
Дата: 20.03.09 13:25
Оценка:
Здравствуйте, criosray, Вы писали:

C>Неиспользование using для MemoryStream — утечка ресурсов.

А как же GC?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[54]: нет, ну если ты настаиваешь... ;)
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 20.03.09 13:28
Оценка: +1
Здравствуйте, Erop, Вы писали:

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


G>>Зачем? Для запредельного перфоманса есть С, для надежного и красивого кода есть C#, F#.

G>>А С++ в этом уравнении места нет.

E>Нет, ну если ты настаиваешь, что быстрый код ОБЯЗАН БЫТЬ ненадёжным и некрасивым, то да, нет...

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

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

Я не предлагал C использовать для красивого кода.

E>Кстати, если так взглянуть на это дело, то окажется, что и для С# место сожмётся, так как если в твоей проге самая нагруженная часть на С++, то не ясно, зачем оболочку-то на ХиндиС делать? У ХиндиС есть неомненный плюс -- дешёвая и быстрая разработка бригадой гастарбайтеров, в смысле индусов. Если в твоём проекте есть такие компоненты, то супер, С# твой выбор...

Ты как-то очеь интересно говоришь о том что C# позоляет писать хороший код с малыми затратами.

E>Да, то, что между черт -- это стёб... Но в каждой шутке есть таки доля шутки...

Все что ты написал в предыдущем абзаце — правда.
Когда вместо индусов пишут нормальные программисты код у них получается гораздо лучше и быстрее, чем на С++.
И только там где не хватает производительности может быть использован C.

ЗЫ. Ты думаешь на С++ индусы не пишут?
Re[57]: Работа - с чего начать: С++ или С#?
От: Хвост  
Дата: 20.03.09 13:32
Оценка:
Здравствуйте, gandjustas, Вы писали:
G>Ну если вы так думаете тогда объясните принципиальную разницу между классом на стеке и структурой на стеке.
объясняю, struct в сишарпе ето семантически то что называется POD в С++, т.е. плоская структура данных, ни конструкторов, ни методов, ничего. Так вот, в С++ в стек можно положить как объект-инстанс класса, так и объект-инстанс POD-структуры, в сишарпе же только второе.

G>Кстати, сколько сайтов, по которым ты ходишь написаны на asp.net?

честно говоря не знаю, может пять, может десять, на вскидку только три вспомнил, включая рсдн. По ощущениям зарубежные сайты где-то 50/50 asp.net/jsp, наши ~80 — php
Кстати вот ниша веба имхо вполне подходит для .NET (и название платформы удачно подходит ), но мне кажется с развитием песочниц VPS/VDS в веб в лоу-енд сектор может пролезть и C++ (ага, да, именно ето я и сказал, C++ в вебе, какой-нибудь CMS++ ), т.к. VPS/VDS площадки дают довольно ограниченные ресурсы, и хороший производительный веб-фреймворк на С++ очень имел бы право жить.
People write code, programming languages don't.
Re[25]: Работа - с чего начать: С++ или С#?
От: Erop Россия  
Дата: 20.03.09 13:41
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Совершенно верно. И это — единственный способ писать хорошие программы.

Это тебе Бог сообщил, или сам БГ?

S>Известно. Он бы бездарно потратил больше времени на разработку программы.

Чего? Ты думаешь допереть, что для словаря надо использовать структуру, которая ищет эффективно ему понадобилось бы очень много времени?
Не, я конечно понимаю, что это ХиндиС, но не Папус-Новая-Нвинея-С, всё-таки

E>>Мне так кажется, что 2 секунды для этой программки -- ЭТО ОЧЕНЬ ОЧЕНЬ ОЧЕНЬ ДОЛГО.

S>Напомню, что цели должны быть ориентированы на потребителя, а не высосаны из пальца. Сколько, по-твоему, должна работать эта программа? Почему?
Если бы оно ориентировалось на меня как на потребителя, то 0,01 — 0,03 секунды.
Я хотел бы менять ситуацию и сразу видеть варианты в GUI интерфейсе, например...

E>>А вот, если в дело вмешиваются клиенты и конкуренты, ситуация несколько меняется...

S>Читать последнюю строчку в его статье.

Это которая "But I'm not"? Ну да, он действительно не может, потому что действует в рамках индусской парадигмы...
А теперь иди читать моё замечание про то, что если сам себе орбитр, то выиггрывать легко.
И, кстати, тема связи этой "оптимизации" со случаем, когда мы упираемся в "особенности GC" как-то всё-равно не раскрыта... Это если конечно "But I'm not", не учитывать
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[27]: Работа - с чего начать: С++ или С#?
От: Erop Россия  
Дата: 20.03.09 13:43
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>А он неявно сортирует??? Офигеть. Я как отвык от того, что для множества нужно задавать отношение частичного порядка.

S>Я надеюсь, уточнение сортировки в Case-insensitive/accent-sensitive для турецкой локали не усложнит эту безусловно прекрасную программу?

Может уважаемый MVP снизойдёт к нам, сирым и убогим и вспомнит таки азы, а уже потом будет позориться?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[58]: Работа - с чего начать: С++ или С#?
От: criosray  
Дата: 20.03.09 13:46
Оценка:
Здравствуйте, Хвост, Вы писали:

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

Х>объясняю, struct в сишарпе ето семантически то что называется POD в С++, т.е. плоская структура данных, ни конструкторов, ни методов, ничего. Так вот, в С++ в стек можно положить как объект-инстанс класса, так и объект-инстанс POD-структуры, в сишарпе же только второе.

Pavel Dvorkin, а вот Вам подтверждение моих слов: человек явно не знает, но хаит.

"A struct is a simple user-defined type, a lightweight alternative to a class. They support access modifiers, constructors, indexers, methods, fields, nested types, operators, and properties."

http://en.csharp-online.net/struct
Re[58]: Работа - с чего начать: С++ или С#?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 20.03.09 13:49
Оценка: +1 :)
Здравствуйте, Хвост, Вы писали:

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

G>>Ну если вы так думаете тогда объясните принципиальную разницу между классом на стеке и структурой на стеке.
Х>объясняю, struct в сишарпе ето семантически то что называется POD в С++, т.е. плоская структура данных, ни конструкторов, ни методов, ничего.
В структуре нет методов? Это точно на C#?

Х>Так вот, в С++ в стек можно положить как объект-инстанс класса, так и объект-инстанс POD-структуры, в сишарпе же только второе.

В C++ клас и структура — одно и тоже. В C# — разные вещи.

Вопрос возник видимо из-за непонимания этого факта.
Re[59]: Работа - с чего начать: С++ или С#?
От: NikeByNike Россия  
Дата: 20.03.09 13:52
Оценка: +1 :))
Здравствуйте, gandjustas, Вы писали:

Х>>Так вот, в С++ в стек можно положить как объект-инстанс класса, так и объект-инстанс POD-структуры, в сишарпе же только второе.

G>В C++ клас и структура — одно и тоже. В C# — разные вещи.

G>Вопрос возник видимо из-за непонимания этого факта.


Причём — тобой.
Нужно разобрать угил.
Re[59]: Работа - с чего начать: С++ или С#?
От: Хвост  
Дата: 20.03.09 14:04
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>В структуре нет методов? Это точно на C#?

ммм...статические есть, но ето немного не то, правда?

G>Вопрос возник видимо из-за непонимания этого факта.

у меня отличное понимание факта.
People write code, programming languages don't.
Re[60]: Работа - с чего начать: С++ или С#?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 20.03.09 14:08
Оценка: +1
Здравствуйте, Хвост, Вы писали:

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


G>>В структуре нет методов? Это точно на C#?

Х>ммм...статические есть, но ето немного не то, правда?
http://msdn.microsoft.com/en-us/library/ah19swz4.aspx

G>>Вопрос возник видимо из-за непонимания этого факта.

Х>у меня отличное понимание факта.
Вы показываете обратное.

ЗЫ. Вообзе говоря не верится что вы писали enterprise систему на C# и ни разу не пользовались структурой DateTime.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.